├── style
├── main.css
└── pages
│ ├── info.css
│ └── watch.css
├── .prettierignore
├── icons
├── dark-32.png
└── dark-48.png
├── img
├── logo-big.png
├── logo-circle.png
├── remove.svg
├── bookmark.svg
├── add.svg
└── light-bulb.svg
├── .prettierrc
├── .gitignore
├── pahe-plus@hwk.json
├── pages
├── general
│ ├── fakesite.js
│ └── random.js
├── browser.js
├── info
│ ├── blur.js
│ ├── score.js
│ └── episode.js
├── watch
│ ├── resolution.js
│ ├── lights.js
│ ├── number.js
│ ├── direct.js
│ ├── saved.js
│ └── bookmark.js
├── index.js
└── bookmark
│ └── _.js
├── package.json
├── settings
├── css
│ ├── separator.css
│ ├── page.css
│ ├── dev.css
│ ├── popup.css
│ └── settings.css
├── js
│ ├── page.js
│ ├── dev.js
│ ├── options.js
│ └── saved.js
└── conf.html
├── TODO.md
├── LICENSE
├── README.md
├── manifest.json
└── pnpm-lock.yaml
/style/main.css:
--------------------------------------------------------------------------------
1 | #rand-btn .spinner {
2 | height: 10px;
3 | }
4 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | pnpm-lock.yaml
3 | package.json
4 |
--------------------------------------------------------------------------------
/style/pages/info.css:
--------------------------------------------------------------------------------
1 | #anilist-userscores {
2 | font-size: 1rem;
3 | }
4 |
--------------------------------------------------------------------------------
/icons/dark-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Cyan903/Animepahe-plus/HEAD/icons/dark-32.png
--------------------------------------------------------------------------------
/icons/dark-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Cyan903/Animepahe-plus/HEAD/icons/dark-48.png
--------------------------------------------------------------------------------
/img/logo-big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Cyan903/Animepahe-plus/HEAD/img/logo-big.png
--------------------------------------------------------------------------------
/img/logo-circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Cyan903/Animepahe-plus/HEAD/img/logo-circle.png
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": false,
3 | "useTabs": false,
4 | "tabWidth": 4
5 | }
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # npm & node
2 | /node_modules
3 |
4 | # build
5 | /web-ext-artifacts
6 |
7 | # misc
8 | todo
9 |
--------------------------------------------------------------------------------
/pahe-plus@hwk.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pahe-plus@hwk",
3 | "description": "ignored",
4 | "type": "storage",
5 | "data": {}
6 | }
7 |
--------------------------------------------------------------------------------
/pages/general/fakesite.js:
--------------------------------------------------------------------------------
1 | // fakesite.js
2 | // fakesite-ignore
3 | //
4 | // Ignore the "Beware of fake websites"
5 | // message.
6 | //
7 |
8 | function fakesite() {
9 | const fake = document.querySelector(".close-ann-fakesite");
10 |
11 | if (fake) {
12 | fake.click();
13 | }
14 |
15 | document.cookie = "ann-fakesite";
16 | }
17 |
18 | pahe["fakesite-ignore"] = fakesite;
19 |
--------------------------------------------------------------------------------
/pages/browser.js:
--------------------------------------------------------------------------------
1 | // browser.js
2 | // Manages storage and other related
3 | // browser functions
4 | //
5 |
6 | let tabCheck = true;
7 |
8 | window.onfocus = () => (tabCheck = true);
9 | window.onblur = () => (tabCheck = false);
10 |
11 | // ensure sync.saved is stored throughout tabs
12 | browser.storage.sync.onChanged.addListener(() => {
13 | if (document.hidden || !tabCheck) {
14 | location.reload();
15 | }
16 | });
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pahe-plus",
3 | "version": "1.2.4",
4 | "description": "Additional features for animepahe.",
5 | "scripts": {
6 | "dev": "web-ext run",
7 | "build": "web-ext build --overwrite-dest",
8 | "format": "prettier . --write"
9 | },
10 | "author": "Cyan903",
11 | "license": "MIT",
12 | "devDependencies": {
13 | "prettier": "^3.2.5",
14 | "web-ext": "^7.11.0"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/pages/info/blur.js:
--------------------------------------------------------------------------------
1 | // blur.js
2 | // blur-cover
3 | //
4 | // Blurs the episode snapshots to prevent spoilers such as
5 | // seeing a character after they "died"
6 | //
7 |
8 | function blur() {
9 | const css = `
10 |
15 | `;
16 |
17 | document.head.insertAdjacentHTML("beforeend", css);
18 | }
19 |
20 | pahe["blur-cover"] = blur;
21 |
--------------------------------------------------------------------------------
/settings/css/separator.css:
--------------------------------------------------------------------------------
1 | /* https://stackoverflow.com/a/26634224 */
2 | .separator {
3 | display: flex;
4 | align-items: center;
5 | text-align: center;
6 | font-weight: bolder;
7 | }
8 |
9 | .separator::before,
10 | .separator::after {
11 | content: "";
12 | flex: 1;
13 | border-bottom: 1px solid #fff;
14 | }
15 |
16 | .separator:not(:empty)::before {
17 | margin-right: 0.25em;
18 | }
19 |
20 | .separator:not(:empty)::after {
21 | margin-left: 0.25em;
22 | }
23 |
--------------------------------------------------------------------------------
/settings/css/page.css:
--------------------------------------------------------------------------------
1 | .page {
2 | margin: auto;
3 | min-width: 400px;
4 | }
5 |
6 | .page-buttons {
7 | display: flex;
8 | justify-content: space-between;
9 | margin: 20px 0;
10 | }
11 |
12 | .page-button {
13 | width: calc(100% / 3 - 5px);
14 | padding: 5px 0;
15 | color: #d5015b;
16 | background-color: transparent;
17 | border: 1px solid #d5015b;
18 | }
19 |
20 | .page-button:hover {
21 | background-color: #d5015b;
22 | color: #000;
23 | }
24 |
25 | .page-active {
26 | font-weight: bolder;
27 | }
28 |
--------------------------------------------------------------------------------
/settings/js/page.js:
--------------------------------------------------------------------------------
1 | // page.js
2 | // Manages tabs for the popup UI.
3 | //
4 |
5 | const page = document.querySelectorAll(".page");
6 | const buttons = document.querySelectorAll(".page-button");
7 |
8 | buttons.forEach((elm) => {
9 | elm.addEventListener("click", function () {
10 | for (const p of page) p.style.display = "none";
11 | for (const b of buttons) b.classList.remove("page-active");
12 |
13 | this.classList.add("page-active");
14 | document.querySelector(`.${this.id}`).style.display = "block";
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/settings/css/dev.css:
--------------------------------------------------------------------------------
1 | .debug {
2 | display: block;
3 | border: none;
4 | background-color: transparent;
5 | color: #d5015b;
6 | font-weight: bolder;
7 | }
8 |
9 | .debug:before {
10 | content: ">>> ";
11 | }
12 |
13 | .debug:hover {
14 | text-decoration: underline;
15 | }
16 |
17 | .debug:active {
18 | opacity: 0.5;
19 | }
20 |
21 | #debug-console {
22 | background-color: #111;
23 | padding: 1em;
24 | color: rgba(255, 255, 255, 0.7);
25 | border-radius: 5px;
26 | overflow: scroll;
27 | max-width: 350px;
28 | max-height: 200px;
29 | }
30 |
--------------------------------------------------------------------------------
/settings/css/popup.css:
--------------------------------------------------------------------------------
1 | body {
2 | background-color: #000;
3 | color: #fff;
4 | font-family: "Segoe UI", Arial, sans-serif;
5 | max-width: 500px;
6 | max-height: 450px;
7 | padding: 1em;
8 | }
9 |
10 | ::selection {
11 | color: #eee;
12 | background: #d5015b;
13 | }
14 |
15 | .logo {
16 | display: block;
17 | width: 150px;
18 | height: 150px;
19 | margin: auto;
20 | }
21 |
22 | .homepage {
23 | color: rgb(133, 133, 133);
24 | float: right;
25 | font-size: 0.6em;
26 | text-decoration: none;
27 | }
28 |
29 | .homepage:hover {
30 | color: #eee;
31 | }
32 |
--------------------------------------------------------------------------------
/TODO.md:
--------------------------------------------------------------------------------
1 | ### /anime/\*
2 |
3 | - [x] Countdown latest episode
4 | - [x] Blur episode cover
5 | - [x] Average score (on anilist)
6 |
7 | ### /play/\*
8 |
9 | - [x] Show actual episode number
10 | - [x] Toggle lights
11 | - [x] Select highest quality by default (sub only)
12 | - [x] Custom bookmark for episodes
13 | - [x] Skip redirect for episode downloads
14 |
15 | ### General
16 |
17 | - [x] Disable "Beware of fake websites"
18 | - [x] Random anime button
19 | - [x] Clear saved
20 | - [x] Watch history
21 |
22 | ### Debug
23 |
24 | - [x] Wipe all local data (cookie, localStorage)
25 | - [x] Reset settings to default
26 | - [x] Hard page reload
27 |
--------------------------------------------------------------------------------
/img/remove.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/img/bookmark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
38 |
--------------------------------------------------------------------------------
/img/add.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
38 |
--------------------------------------------------------------------------------
/pages/watch/resolution.js:
--------------------------------------------------------------------------------
1 | // resolution.js
2 | // highest-resolution
3 | //
4 | // Automatically select the highest resolution. Will prefer
5 | // sub over dub.
6 | //
7 |
8 | function getHighestSub() {
9 | const options = document.querySelectorAll("#resolutionMenu button");
10 | let high = -1;
11 | let helm = null;
12 |
13 | if (!options) return;
14 |
15 | for (const source of options) {
16 | if (source.dataset.audio != "jpn") continue;
17 | if (parseInt(source.dataset.resolution) > high) {
18 | high = source.dataset.resolution;
19 | helm = source;
20 | }
21 | }
22 |
23 | return helm;
24 | }
25 |
26 | function highest() {
27 | const high = getHighestSub();
28 |
29 | if (!high) {
30 | console.warn("[pahe-plus] could not get highest sub!");
31 | return;
32 | }
33 |
34 | high.click();
35 | }
36 |
37 | pahe["highest-resolution"] = highest;
38 |
--------------------------------------------------------------------------------
/settings/css/settings.css:
--------------------------------------------------------------------------------
1 | .conf-outer {
2 | margin-bottom: 1em;
3 | }
4 |
5 | .saved-items h4 {
6 | text-align: center;
7 | margin: 100px 0;
8 | }
9 |
10 | .saved-items a {
11 | color: #eee;
12 | text-decoration: none;
13 | display: inline-block;
14 | margin-bottom: 10px;
15 | font-weight: normal !important;
16 | }
17 |
18 | .saved-items {
19 | max-height: 250px;
20 | overflow-y: scroll;
21 | font-weight: bolder;
22 | }
23 |
24 | .saved-items a:hover {
25 | color: #d5015b;
26 | }
27 |
28 | .saved-remove {
29 | float: right;
30 | position: relative;
31 | right: 20px;
32 | background-color: transparent;
33 | color: #d5015b;
34 | border: none;
35 | width: 20px;
36 | font-weight: bolder;
37 | }
38 |
39 | .saved-remove:hover {
40 | background-color: rgba(255, 255, 255, 0.05);
41 | }
42 |
43 | #purgeSaved {
44 | background-color: transparent;
45 | border: none;
46 | color: #eee;
47 | opacity: 0.5;
48 | }
49 |
50 | #purgeSaved:hover {
51 | opacity: 1;
52 | }
53 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 Cyan903
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/img/light-bulb.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Animepahe-plus
2 |
3 |   
4 |
5 | Browser extension for adding additional features to `animepahe`. Available for download on the [Firefox addon store](https://addons.mozilla.org/en-CA/firefox/addon/animepahe-plus/) with support for all `animepahe` domains.
6 |
7 | ```sh
8 | $ npm dev # test
9 | $ npm run build # build
10 | $ npm run format # clean
11 | ```
12 |
13 | ## Features
14 |
15 | Full feature list can be found in [todo.md](TODO.md).
16 |
17 | - Countdown latest episode
18 | - Average score (on anilist)
19 | - Select highest quality by default (sub only)
20 | - Disable "Beware of fake websites"
21 | - Random navbar button
22 | - Watch history
23 |
24 | ## Contributing
25 |
26 | All pull requests/issues are appreciated. You can find general information about the extension in [todo.md](TODO.md).
27 |
28 | The commit syntax is: `[+] feat: Adding something`. It isn't completely required, but it would be nice if followed.
29 |
30 | ## License
31 |
32 | [MIT](LICENSE)
33 |
--------------------------------------------------------------------------------
/settings/js/dev.js:
--------------------------------------------------------------------------------
1 | // dev.js
2 | // The debug tab. Can be used to reset
3 | // the internal storage.
4 | //
5 |
6 | const clear = document.getElementById("clear");
7 | const cookieMonster = document.getElementById("cookieMonster");
8 | const syncStorage = document.getElementById("viewStorage");
9 | const hardReload = document.getElementById("hardReload");
10 |
11 | function clearStorage() {
12 | if (confirm("Are you sure?")) {
13 | browser.storage.sync.clear();
14 | browser.tabs.reload({ bypassCache: true });
15 | location.reload();
16 | }
17 | }
18 |
19 | // prettier-ignore
20 | function takeABite() {
21 | browser.tabs.executeScript({ code: `
22 | (() => {
23 | alert("Removing all data...");
24 | localStorage.clear();
25 | sessionStorage.clear();
26 | location.reload();
27 | })();
28 | `});
29 | }
30 |
31 | function viewStorage() {
32 | const dc = document.getElementById("debug-console");
33 |
34 | dc.style.visibility =
35 | dc.style.visibility == "visible" ? "hidden" : "visible";
36 | syncStorage.innerText =
37 | dc.style.visibility == "visible"
38 | ? "Hide sync storage"
39 | : "Show sync storage";
40 | }
41 |
42 | function forceReload() {
43 | if (confirm("Are you sure?")) {
44 | browser.tabs.reload({ bypassCache: true });
45 | location.reload();
46 | }
47 | }
48 |
49 | clear.addEventListener("click", clearStorage);
50 | cookieMonster.addEventListener("click", takeABite);
51 | syncStorage.addEventListener("click", viewStorage);
52 | hardReload.addEventListener("click", forceReload);
53 |
--------------------------------------------------------------------------------
/pages/index.js:
--------------------------------------------------------------------------------
1 | // index.js
2 | // The main entry point for all scripts.
3 | // Loads storage and calls related functions.
4 | //
5 |
6 | const pahe = {};
7 | const endpoints = {
8 | info: "https://graphql.anilist.co",
9 | api: `https://${location.hostname}/api`,
10 | };
11 |
12 | const conf = {
13 | settings: {
14 | // info
15 | "anilist-score": false,
16 | "blur-cover": false,
17 | "show-upcoming": false,
18 |
19 | // watch
20 | "episode-bookmark": false,
21 | "season-number": false,
22 | "highest-resolution": false,
23 | "save-episode": false,
24 | "toggle-lights": false,
25 | "direct-links": false,
26 |
27 | // general
28 | "random-anime": false,
29 | "fakesite-ignore": false,
30 | },
31 |
32 | // saved episodes
33 | saved: [],
34 | };
35 |
36 | (async () => {
37 | // load storage
38 | const settings = await browser.storage.sync.get("settings");
39 | for (const o of Object.keys(conf.settings)) {
40 | if (
41 | Object.keys(settings).length != 0 &&
42 | typeof conf.settings[o] == "boolean"
43 | ) {
44 | conf.settings[o] = settings.settings[o];
45 | }
46 | }
47 |
48 | // load save
49 | const save = await browser.storage.sync.get("saved");
50 | if (Object.keys(save).length != 0) {
51 | conf.saved = save.saved.slice();
52 | }
53 |
54 | // execute functions
55 | for (const func of Object.keys(pahe)) {
56 | try {
57 | if (conf.settings[func]) await pahe[func]();
58 | } catch (e) {
59 | console.warn(`[pahe-plus] internal error ${e}`);
60 | }
61 | }
62 | })();
63 |
--------------------------------------------------------------------------------
/pages/watch/lights.js:
--------------------------------------------------------------------------------
1 | // lights.js
2 | // toggle-lights
3 | //
4 | // Button to dim all elements surrounding
5 | // the video player.
6 | //
7 |
8 | const lightsCSS = `
9 | #lights-overlay {
10 | z-index: 10;
11 | background-color: rgba(0, 0, 0, 0.8);
12 | width: 100vw;
13 | height: 100vh;
14 |
15 | position: fixed;
16 | top: 0;
17 | }
18 |
19 | .player {
20 | z-index: 15 !important;
21 | }
22 |
23 | .prequel,
24 | .sequel {
25 | opacity: 0.3;
26 | }
27 |
28 | #toggle-lights {
29 | z-index: 20 !important;
30 | }
31 | `;
32 |
33 | function toggleLights() {
34 | const overlay = document.getElementById("lights-overlay");
35 |
36 | // prettier-ignore
37 | if (!overlay) {
38 | document.querySelector(".theatre").insertAdjacentHTML("afterbegin", `
39 |
40 |
41 |
42 | `);
43 |
44 | this.style.backgroundColor = "yellow";
45 | return;
46 | }
47 |
48 | this.style.backgroundColor = "#6d6e2b";
49 | overlay.remove();
50 | }
51 |
52 | function insertLight() {
53 | const info = document.querySelector(".theatre-info");
54 | if (!info) return;
55 |
56 | // prettier-ignore
57 | info.insertAdjacentHTML("beforeend", `
58 |
62 | `);
63 |
64 | document.getElementById("toggle-lights").onclick = toggleLights;
65 |
66 | return true;
67 | }
68 |
69 | function lights() {
70 | if (!insertLight()) {
71 | console.warn("[pahe-plus] could not insert light button!");
72 | }
73 | }
74 |
75 | pahe["toggle-lights"] = lights;
76 |
--------------------------------------------------------------------------------
/settings/js/options.js:
--------------------------------------------------------------------------------
1 | // options.js
2 | // Manages the storage and configuration.
3 | // Keeps storage synced with other tabs/windows.
4 | //
5 |
6 | const conf = document.querySelectorAll(".conf");
7 | const config = {
8 | settings: {
9 | // info
10 | "anilist-score": false,
11 | "blur-cover": false,
12 | "show-upcoming": false,
13 |
14 | // watch
15 | "episode-bookmark": false,
16 | "season-number": false,
17 | "highest-resolution": false,
18 | "save-episode": false,
19 | "toggle-lights": false,
20 | "direct-links": false,
21 |
22 | // general
23 | "random-anime": false,
24 | "fakesite-ignore": false,
25 | },
26 |
27 | // saved episodes
28 | saved: [],
29 | };
30 |
31 | conf.forEach((elm) => {
32 | elm.addEventListener("change", async function () {
33 | config.settings[this.name] = !config.settings[this.name];
34 |
35 | browser.storage.sync.set(config);
36 | browser.tabs.reload({ bypassCache: true });
37 |
38 | respond();
39 | });
40 | });
41 |
42 | async function respond() {
43 | const db = await browser.storage.sync.get("settings");
44 | const save = await browser.storage.sync.get("saved");
45 |
46 | // load settings
47 | for (const o of Object.keys(config.settings)) {
48 | const stored = JSON.parse(JSON.stringify(db))?.settings;
49 |
50 | // assign to config
51 | config.settings[o] = Object.keys(db).length == 0 ? false : !!stored[o];
52 | document.querySelector(`input[name="${o}"]`).checked =
53 | config.settings[o];
54 | }
55 |
56 | // load save
57 | if (Object.keys(save).length != 0) {
58 | config.saved = save.saved.slice();
59 | }
60 |
61 | initSave();
62 |
63 | document.getElementById("debug-console").innerHTML = JSON.stringify(
64 | config,
65 | null,
66 | 4,
67 | );
68 | }
69 |
70 | document.addEventListener("DOMContentLoaded", respond);
71 |
--------------------------------------------------------------------------------
/pages/watch/number.js:
--------------------------------------------------------------------------------
1 | // number.js
2 | // season-number
3 | //
4 | // Set the episode number based on season, not series. Example:
5 | // AOT EP 26 -> AOT Season 2, EP 1
6 | //
7 |
8 | function seriesID() {
9 | try {
10 | return location.href.split("/play/")[1].split("/")[0];
11 | } catch (e) {
12 | console.warn("[pahe-plus]", e);
13 | return false;
14 | }
15 | }
16 |
17 | async function getEpisode(id) {
18 | const req = await fetch(
19 | `${endpoints.api}?m=release&id=${id}&sort=episode_asc&page=1`,
20 | )
21 | .then((j) => j.json())
22 | .catch((e) => {
23 | console.warn(`[pahe-plus] could not fetch ${endpoints.api}!`, e);
24 | });
25 |
26 | if (!req || !req.data) return false;
27 |
28 | return req.data[0].episode;
29 | }
30 |
31 | function thisEpisode() {
32 | try {
33 | return parseInt(
34 | document
35 | .getElementById("episodeMenu")
36 | .innerText.replace("Episode ", ""),
37 | );
38 | } catch (e) {
39 | console.warn("[pahe-plus]", e);
40 | return false;
41 | }
42 | }
43 |
44 | function addTitle(real) {
45 | const title = document.querySelector(".theatre-info > h1:nth-child(2)");
46 |
47 | if (!title) return;
48 |
49 | title.insertAdjacentText("beforeend", ` (${real})`);
50 |
51 | return true;
52 | }
53 |
54 | async function realNumber() {
55 | const id = seriesID();
56 |
57 | if (!id) {
58 | console.warn("[pahe-plus] could not get series id!");
59 | return;
60 | }
61 |
62 | const ep = await getEpisode(id);
63 | const eep = thisEpisode();
64 |
65 | if (!ep || typeof eep == "boolean") {
66 | console.warn("[pahe-plus] could not get first episode!");
67 | return;
68 | }
69 |
70 | if (ep == 1) return;
71 |
72 | if (!addTitle(eep - ep + 1)) {
73 | console.warn("[pahe-plus] failed to add episode!");
74 | }
75 | }
76 |
77 | pahe["season-number"] = realNumber;
78 |
--------------------------------------------------------------------------------
/settings/js/saved.js:
--------------------------------------------------------------------------------
1 | // saved.js
2 | // Manage saved links and update storage.
3 | //
4 |
5 | const saveList = document.querySelector(".saved-items");
6 |
7 | const clean = (s) => {
8 | return s
9 | .replace(/&/g, "&")
10 | .replace(/ {
15 | return s.length > 30 ? s.slice(0, 30) + "..." : s;
16 | };
17 |
18 | async function removeSaved() {
19 | config.saved = config.saved.filter(
20 | (i) => i.name != this.parentElement.children[0].title,
21 | );
22 |
23 | await browser.storage.sync.set({
24 | saved: config.saved.slice(),
25 | });
26 |
27 | saveList.innerHTML = null;
28 | browser.tabs.reload({ bypassCache: true });
29 | respond();
30 | }
31 |
32 | async function purgeSaved() {
33 | if (confirm("Are you sure?")) {
34 | config.saved = [];
35 |
36 | await browser.storage.sync.set({
37 | saved: [],
38 | });
39 |
40 | saveList.innerHTML = null;
41 | browser.tabs.reload({ bypassCache: true });
42 | respond();
43 | }
44 | }
45 |
46 | function initSave() {
47 | if (config.saved.length == 0) {
48 | saveList.innerHTML = "Nothing saved yet...
";
49 | document.getElementById("purgeSaved").addEventListener("click", () => {
50 | alert("Nothing to purge!");
51 | });
52 |
53 | return;
54 | }
55 |
56 | saveList.innerHTML = null;
57 |
58 | for (const obj of config.saved) {
59 | saveList.insertAdjacentHTML(
60 | "afterbegin",
61 | `
62 |
63 | ${shorten(
64 | clean(obj.name),
65 | )}
66 |
67 |
68 | `,
69 | );
70 | }
71 |
72 | document.querySelectorAll(".saved-remove").forEach((elm) => {
73 | elm.addEventListener("click", removeSaved);
74 | });
75 |
76 | document.getElementById("purgeSaved").addEventListener("click", purgeSaved);
77 | }
78 |
--------------------------------------------------------------------------------
/style/pages/watch.css:
--------------------------------------------------------------------------------
1 | .player-button {
2 | float: right;
3 | position: relative;
4 | transform: translateY(-50px);
5 | margin-left: 10px;
6 | }
7 |
8 | .pmax {
9 | height: 300px;
10 | }
11 |
12 | #player-bookmark-popout {
13 | position: absolute;
14 | width: 200px;
15 | padding: 10px;
16 | border-radius: 5px;
17 | text-align: center;
18 | background-color: #222;
19 | padding-bottom: 10px;
20 | right: 50%;
21 | transform: translateY(5px);
22 | }
23 |
24 | #player-bookmark-popout a {
25 | color: #d5015b;
26 | font-weight: bolder;
27 | font-size: 1.2em;
28 | }
29 |
30 | #player-bookmark-popout div {
31 | color: #eee;
32 | opacity: 0.8;
33 | font-size: 0.8em;
34 | }
35 |
36 | .player-button-inner {
37 | width: 20px;
38 | height: 20px;
39 | background-color: #d5015b;
40 | border-color: #d5015b;
41 | }
42 |
43 | .player-button-inner:hover {
44 | opacity: 0.9;
45 | }
46 |
47 | #save-episode {
48 | background-color: #fff;
49 | border-color: #fff;
50 | color: transparent !important;
51 | font-size: 0.9em;
52 | }
53 |
54 | #save-episode:hover {
55 | opacity: 0.8;
56 | }
57 |
58 | #save-episode:active {
59 | opacity: 0.3;
60 | }
61 |
62 | .save-active,
63 | .remove-active {
64 | animation-iteration-count: 1;
65 | animation-duration: 0.5s;
66 | position: relative;
67 | }
68 |
69 | .save-active {
70 | animation-name: smoothintro;
71 | }
72 |
73 | .remove-active {
74 | animation-name: smoothoutro;
75 | }
76 |
77 | .direct-link-item {
78 | color: #d5015b;
79 | }
80 |
81 | #pickDownload a:hover .direct-link-item {
82 | color: #fff;
83 | }
84 |
85 | /* prettier-ignore */
86 | @keyframes smoothintro {
87 | 0% { top: 3px; }
88 | 100% { top: 0px; }
89 | }
90 |
91 | /* prettier-ignore */
92 | @keyframes smoothoutro {
93 | 0% { top: 3px; }
94 | 100% { top: 0px; }
95 | }
96 |
97 | @media screen and (max-width: 600px) {
98 | .player-button {
99 | transform: none !important;
100 | margin-top: 30px;
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/pages/info/score.js:
--------------------------------------------------------------------------------
1 | // score.js
2 | // anilist-score
3 | //
4 | // Display average score/rating. Uses the
5 | // public anilist API.
6 | //
7 |
8 | function anilistID() {
9 | const id = document.querySelector(".external-links > a:nth-child(2)");
10 |
11 | if (!id) return false;
12 | if (!id.href.includes("anilist.co")) return false;
13 |
14 | return id.href.split("anilist.co/anime/")[1];
15 | }
16 |
17 | async function getAnilistScore(id) {
18 | const query = `
19 | {
20 | Media(id: ${id}) {
21 | averageScore
22 | popularity
23 | }
24 | }
25 | `;
26 |
27 | const req = await fetch(endpoints.info, {
28 | method: "POST",
29 | headers: {
30 | "Content-Type": "application/json",
31 | Accept: "application/json",
32 | },
33 |
34 | body: JSON.stringify({ query }),
35 | })
36 | .then((res) => res.json())
37 | .catch((e) => {
38 | console.warn(`[pahe-plus] could not fetch ${endpoints.info}!`, e);
39 | });
40 |
41 | if (!req || req.errors) {
42 | return false;
43 | }
44 |
45 | return req?.data?.Media;
46 | }
47 |
48 | function userScores({ averageScore, popularity }) {
49 | const title = document.querySelector(".title-wrapper");
50 |
51 | title.insertAdjacentHTML(
52 | "beforeend",
53 | `
54 | ${averageScore}% | ${popularity
55 | .toString()
56 | .replace(/\B(?=(\d{3})+(?!\d))/g, ",")} users
57 | `,
58 | );
59 | }
60 |
61 | async function score() {
62 | const aniID = anilistID();
63 |
64 | if (!aniID) {
65 | console.warn("[pahe-plus] could not grab anilist id!");
66 | return;
67 | }
68 |
69 | const scores = await getAnilistScore(aniID);
70 |
71 | if (
72 | !scores ||
73 | !Number.isInteger(scores.averageScore) ||
74 | !Number.isInteger(scores.popularity)
75 | ) {
76 | console.warn("[pahe-plus] error fetching scores!");
77 |
78 | return;
79 | }
80 |
81 | userScores(scores);
82 | }
83 |
84 | pahe["anilist-score"] = score;
85 |
--------------------------------------------------------------------------------
/pages/bookmark/_.js:
--------------------------------------------------------------------------------
1 | // _.js
2 | // _
3 | //
4 | // Files named _ will always be executed, there is no
5 | // option to disable them.
6 | //
7 |
8 | function replaceError() {
9 | const err = document.querySelector("main.text-center");
10 |
11 | if (!err) return false;
12 |
13 | err.innerHTML = `
14 | Loading...
15 |
21 | `;
22 |
23 | return true;
24 | }
25 |
26 | async function getAnimeID(id) {
27 | const cid = await fetch(`https://${location.hostname}/a/${id}`).catch(
28 | (e) => {
29 | console.warn("[pahe-plus]", e);
30 | },
31 | );
32 |
33 | if (!cid || cid.status != 200 || !cid.url.includes("/anime/")) {
34 | location.href = "/";
35 | return false;
36 | }
37 |
38 | return cid.url.split("/anime/")[1];
39 | }
40 |
41 | async function redirect(url) {
42 | let id, json;
43 |
44 | try {
45 | json = JSON.parse(atob(url));
46 | id = await getAnimeID(json.id);
47 | } catch (e) {
48 | console.warn("[pahe-plus]", e);
49 | location.href = "/";
50 |
51 | return false;
52 | }
53 |
54 | if (!id) return false;
55 |
56 | const req = await fetch(
57 | `https://${location.hostname}/api?m=release&id=${id}&sort=episode_asc&page=${json.page}`,
58 | )
59 | .then((j) => j.json())
60 | .catch((e) => {
61 | console.warn(`[pahe-plus] could not fetch API!`, e);
62 | });
63 |
64 | if (!req || !req.data) return false;
65 |
66 | const ep = req.data.map((d) => d.episode).indexOf(json.episode);
67 | const name = req.data[ep].session;
68 |
69 | location.href = `/play/${id}/${name}`;
70 |
71 | return true;
72 | }
73 |
74 | (() => {
75 | if (!replaceError()) {
76 | console.warn("[pahe-plus] failed to replace error!");
77 | return;
78 | }
79 |
80 | const u = location.href.split("/b/");
81 |
82 | if (!redirect(u[1])) {
83 | console.warn("[pahe-plus] failed to redirect!");
84 | }
85 | })();
86 |
--------------------------------------------------------------------------------
/pages/general/random.js:
--------------------------------------------------------------------------------
1 | // random.js
2 | // random-anime
3 | //
4 | // Adds a button to the navbar that picks a random
5 | // anime.
6 | //
7 |
8 | async function getAnimeList() {
9 | const req = await fetch(`https://${location.hostname}/anime`)
10 | .then((t) => t.text())
11 | .catch(() => {
12 | console.warn("[pahe-plus] could not fetch anime list!");
13 | });
14 |
15 | if (!req) return;
16 | const parser = new DOMParser(req);
17 |
18 | return [
19 | ...parser
20 | .parseFromString(req, "text/html")
21 | .querySelectorAll(".tab-content a"),
22 | ].map((a) => a.href);
23 | }
24 |
25 | async function getRandomAnime() {
26 | const list = await getAnimeList();
27 |
28 | if (!list) {
29 | console.warn("[pahe-plus] could not get anime list!");
30 | return;
31 | }
32 |
33 | return list[~~(Math.random() * list.length)];
34 | }
35 |
36 | function randButton() {
37 | const navbar = document.querySelector(".navbar-nav");
38 |
39 | if (!navbar) return;
40 |
41 | // prettier-ignore
42 | navbar.insertAdjacentHTML("beforeend", `
43 |
44 | random
45 |
46 | `);
47 |
48 | return true;
49 | }
50 |
51 | function random() {
52 | if (!randButton()) {
53 | console.warn("[pahe-plus] could not create random button!");
54 | return;
55 | }
56 |
57 | document.querySelector(".nav-link[title=random]").onclick =
58 | async function () {
59 | this.innerHTML = `
60 |
66 | `;
67 |
68 | const url = await getRandomAnime();
69 |
70 | if (!url) {
71 | console.warn("[pahe-plus] could not get random anime!");
72 | this.innerHTML = "random";
73 |
74 | return;
75 | }
76 |
77 | location.href = url;
78 | };
79 | }
80 |
81 | pahe["random-anime"] = random;
82 |
--------------------------------------------------------------------------------
/pages/watch/direct.js:
--------------------------------------------------------------------------------
1 | // direct.js
2 | // direct-links
3 | //
4 | // Skip pahe.win redirect when downloading
5 | // episodes.
6 | //
7 |
8 | function getURLS(str, lower = false) {
9 | const regexp =
10 | /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()'@:%_\+.~#?!&//=]*)/gi;
11 | const bracketsRegexp = /[()]/g;
12 | const urls = str.match(regexp);
13 |
14 | // https://github.com/huckbit/extract-urls
15 | if (urls) {
16 | return lower
17 | ? urls.map((item) => item.toLowerCase().replace(bracketsRegexp, ""))
18 | : urls.map((item) => item.replace(bracketsRegexp, ""));
19 | }
20 |
21 | return [];
22 | }
23 |
24 | async function getDirectDonwload(e) {
25 | e.preventDefault();
26 |
27 | // Get URL
28 | const dl = e.target.href;
29 |
30 | if (!dl) {
31 | console.warn("[pahe-plus] could not find url.");
32 | return;
33 | }
34 |
35 | const req = await fetch(dl)
36 | .then((t) => t.text())
37 | .catch(() => {
38 | console.warn(`[pahe-plus] could not fetch ${dl}!`);
39 | });
40 |
41 | if (!req) return;
42 |
43 | // Find location
44 | try {
45 | const urls = getURLS(req, true);
46 | const dl = urls.filter((n) => n.includes("://kwik."));
47 |
48 | if (dl.length > 0 && dl[0]) {
49 | window.open(dl[0], "_blank");
50 | return;
51 | }
52 |
53 | throw new Error("Video not found.");
54 | } catch (e) {
55 | console.warn("[pahe-plus] error parsing direct download.");
56 | console.error(e);
57 | }
58 | }
59 |
60 | function insertDownloads() {
61 | const options = document.querySelectorAll("#pickDownload a");
62 |
63 | if (!options || !options.length) {
64 | return false;
65 | }
66 |
67 | options.forEach((elm) => {
68 | elm.insertAdjacentHTML(
69 | "beforeend",
70 | ` (Direct) `,
71 | );
72 |
73 | elm.onclick = getDirectDonwload;
74 | elm.target = "";
75 | });
76 |
77 | return true;
78 | }
79 |
80 | function direct() {
81 | if (!insertDownloads()) {
82 | console.warn("[pahe-plus] could not get insert direct download links!");
83 | }
84 | }
85 |
86 | pahe["direct-links"] = direct;
87 |
--------------------------------------------------------------------------------
/pages/watch/saved.js:
--------------------------------------------------------------------------------
1 | // saved.js
2 | // save-episode
3 | //
4 | // Alternative to bookmarks, save episodes into
5 | // extension storage.
6 | //
7 |
8 | const isSaved = (title) => conf.saved.map((n) => n.name).includes(title);
9 |
10 | async function saveItem(name, url) {
11 | conf.saved.push({
12 | name,
13 | url,
14 | });
15 |
16 | await browser.storage.sync.set({
17 | saved: conf.saved.slice(),
18 | });
19 | }
20 |
21 | async function deleteItem(name) {
22 | conf.saved = conf.saved.filter((i) => i.name != name);
23 |
24 | await browser.storage.sync.set({
25 | saved: conf.saved.slice(),
26 | });
27 | }
28 |
29 | async function savedToggle(_this, title, url) {
30 | if (!isSaved(title)) {
31 | await saveItem(title, url);
32 |
33 | // prettier-ignore
34 | _this.style = `mask: url(${browser.runtime.getURL("img/remove.svg")}) no-repeat center;`;
35 | _this.classList.add("save-active");
36 | _this.classList.remove("remove-active");
37 |
38 | return;
39 | }
40 |
41 | await deleteItem(title);
42 | _this.classList.remove("save-active");
43 | _this.classList.add("remove-active");
44 |
45 | // prettier-ignore
46 | _this.style = `mask: url(${browser.runtime.getURL("img/add.svg")}) no-repeat center;`;
47 | }
48 |
49 | function saveButton(title) {
50 | const info = document.querySelector(".theatre-info");
51 | const icon = `img/${isSaved(title) ? "remove" : "add"}.svg`;
52 | if (!info) return;
53 |
54 | // prettier-ignore
55 | info.insertAdjacentHTML("beforeend", `
56 |
60 | `);
61 |
62 | document.getElementById("save-episode").onclick = async function () {
63 | const static = await getStaticIDs(getIDs());
64 |
65 | if (!static) {
66 | console.warn("[pahe-plus] could not get permalink!");
67 | return;
68 | }
69 |
70 | const mark = `https://${location.hostname}/b/${buildBookmark(
71 | static.anime_id,
72 | static.episode,
73 | static.page,
74 | )}`;
75 |
76 | await savedToggle(this, title, mark);
77 | };
78 |
79 | return true;
80 | }
81 |
82 | function saveEpisode() {
83 | const title = document.title.replace(" :: animepahe", "");
84 |
85 | if (!saveButton(title)) {
86 | console.warn("[pahe-plus] could not insert save button!");
87 | }
88 | }
89 |
90 | pahe["save-episode"] = saveEpisode;
91 |
--------------------------------------------------------------------------------
/pages/info/episode.js:
--------------------------------------------------------------------------------
1 | // episode.js
2 | // show-upcoming
3 | //
4 | // Show upcoming episodes for airing shows. Uses the
5 | // public anilist API.
6 | //
7 |
8 | function anilistID() {
9 | const id = document.querySelector(".external-links > a:nth-child(2)");
10 |
11 | if (!id) return false;
12 | if (!id.href.includes("anilist.co")) return false;
13 |
14 | return id.href.split("anilist.co/anime/")[1];
15 | }
16 |
17 | function sdhms(sec) {
18 | const seconds = parseInt(sec);
19 |
20 | return (
21 | `${Math.floor(seconds / (3600 * 24))}d ` +
22 | `${Math.floor((seconds % (3600 * 24)) / 3600)}h ` +
23 | `${Math.floor((seconds % 3600) / 60)}m`
24 | );
25 | }
26 |
27 | async function getAiringStatus(id) {
28 | const query = `
29 | {
30 | AiringSchedule(mediaId: ${id}, notYetAired: true) {
31 | airingAt,
32 | timeUntilAiring,
33 | episode
34 | }
35 | }
36 | `;
37 |
38 | const req = await fetch(endpoints.info, {
39 | method: "POST",
40 | headers: {
41 | "Content-Type": "application/json",
42 | Accept: "application/json",
43 | },
44 |
45 | body: JSON.stringify({ query }),
46 | })
47 | .then((res) => res.json())
48 | .catch((e) => {
49 | console.warn(`[pahe-plus] could not fetch ${endpoints.info}!`, e);
50 | });
51 |
52 | if (!req || req.errors) {
53 | return false;
54 | }
55 |
56 | return req?.data?.AiringSchedule;
57 | }
58 |
59 | function display(stat) {
60 | const info = document.querySelector(".anime-info");
61 | const exactDate = new Date(0);
62 |
63 | exactDate.setUTCSeconds(stat.airingAt);
64 |
65 | // prettier-ignore
66 | info.insertAdjacentHTML("afterbegin", `
67 |
68 | Next Episode:
69 | ${exactDate.toISOString().split("T")[0]} | ${sdhms(stat.timeUntilAiring)}
70 |
71 | `);
72 | }
73 |
74 | async function episode() {
75 | const aniID = anilistID();
76 |
77 | if (!aniID) {
78 | console.warn("[pahe-plus] could not grab anilist id!");
79 | return;
80 | }
81 |
82 | const status = await getAiringStatus(aniID);
83 |
84 | if (
85 | !status ||
86 | !Number.isInteger(status.airingAt) ||
87 | !Number.isInteger(status.timeUntilAiring) ||
88 | !Number.isInteger(status.episode)
89 | ) {
90 | console.warn(
91 | "[pahe-plus] error fetching airing status, anime is likely finished airing.",
92 | );
93 |
94 | return;
95 | }
96 |
97 | display(status);
98 | }
99 |
100 | pahe["show-upcoming"] = episode;
101 |
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "Additional features for animepahe.",
3 | "manifest_version": 2,
4 | "name": "Animepahe Plus",
5 | "version": "1.2.4",
6 | "homepage_url": "https://github.com/Cyan903/Animepahe-plus",
7 | "icons": {
8 | "48": "icons/dark-48.png"
9 | },
10 |
11 | "permissions": [
12 | "activeTab",
13 | "storage",
14 | "*://graphql.anilist.co/*",
15 | "*://pahe.win/*"
16 | ],
17 |
18 | "browser_action": {
19 | "default_icon": "icons/dark-32.png",
20 | "default_title": "Animepahe+",
21 | "default_popup": "settings/conf.html"
22 | },
23 |
24 | "web_accessible_resources": [
25 | "style/pages/*.css",
26 | "style/main.css",
27 | "img/*.svg",
28 | "img/*.png"
29 | ],
30 |
31 | "content_scripts": [
32 | {
33 | "matches": [
34 | "*://*.animepahe.com/*",
35 | "*://*.animepahe.org/*",
36 | "*://*.animepahe.si/*",
37 | "*://*.animepahe.ru/*"
38 | ],
39 |
40 | "run_at": "document_end",
41 | "css": ["style/main.css"],
42 | "js": [
43 | "pages/index.js",
44 | "pages/browser.js",
45 | "pages/general/random.js",
46 | "pages/general/fakesite.js"
47 | ]
48 | },
49 |
50 | {
51 | "matches": [
52 | "*://*.animepahe.com/",
53 | "*://*.animepahe.org/",
54 | "*://*.animepahe.si/*",
55 | "*://*.animepahe.ru/"
56 | ],
57 |
58 | "run_at": "document_end",
59 | "js": ["pages/info/blur.js"]
60 | },
61 |
62 | {
63 | "matches": [
64 | "*://*.animepahe.com/anime/*",
65 | "*://*.animepahe.org/anime/*",
66 | "*://*.animepahe.si/anime/*",
67 | "*://*.animepahe.ru/anime/*"
68 | ],
69 |
70 | "run_at": "document_end",
71 | "css": ["style/pages/info.css"],
72 | "js": [
73 | "pages/info/blur.js",
74 | "pages/info/episode.js",
75 | "pages/info/score.js"
76 | ]
77 | },
78 |
79 | {
80 | "matches": [
81 | "*://*.animepahe.com/play/*",
82 | "*://*.animepahe.org/play/*",
83 | "*://*.animepahe.si/play/*",
84 | "*://*.animepahe.ru/play/*"
85 | ],
86 |
87 | "run_at": "document_end",
88 | "css": ["style/pages/watch.css"],
89 | "js": [
90 | "pages/watch/number.js",
91 | "pages/watch/bookmark.js",
92 | "pages/watch/resolution.js",
93 | "pages/watch/lights.js",
94 | "pages/watch/saved.js",
95 | "pages/watch/direct.js"
96 | ]
97 | },
98 |
99 | {
100 | "matches": [
101 | "*://*.animepahe.com/b/*",
102 | "*://*.animepahe.org/b/*",
103 | "*://*.animepahe.si/b/*",
104 | "*://*.animepahe.ru/b/*"
105 | ],
106 |
107 | "run_at": "document_end",
108 | "js": ["pages/bookmark/_.js"]
109 | }
110 | ],
111 |
112 | "options_ui": {
113 | "page": "settings/conf.html",
114 | "open_in_tab": true
115 | },
116 |
117 | "browser_specific_settings": {
118 | "gecko": {
119 | "id": "pahe-plus@hwk",
120 | "strict_min_version": "58.0"
121 | }
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/pages/watch/bookmark.js:
--------------------------------------------------------------------------------
1 | // bookmark.js
2 | // episode-bookmark
3 | //
4 | // Custom bookmarks for episodes. Bookmarks are permanent and will always
5 | // bring you back to the epsiode you saved.
6 | //
7 |
8 | function getIDs() {
9 | try {
10 | const urls = location.href.split("/play/")[1].split("/");
11 | return {
12 | series: urls[0],
13 | episode: urls[1],
14 | };
15 | } catch (e) {
16 | console.warn("[pahe-plus]", e);
17 | return false;
18 | }
19 | }
20 |
21 | function buildBookmark(id, episode, page) {
22 | return btoa(
23 | JSON.stringify({
24 | id,
25 | episode,
26 | page,
27 | }),
28 | );
29 | }
30 |
31 | async function getStaticIDs({ series, episode }) {
32 | let page = 1;
33 |
34 | do {
35 | const req = await fetch(
36 | `${endpoints.api}?m=release&id=${series}&sort=episode_asc&page=${page}`,
37 | )
38 | .then((j) => j.json())
39 | .catch((e) => {
40 | console.warn(
41 | `[pahe-plus] could not fetch ${endpoints.api}!`,
42 | e,
43 | );
44 | });
45 |
46 | if (!req || page > req.last_page || !req.data) {
47 | return false;
48 | }
49 |
50 | // find episode
51 | const session = req.data.map((d) => d.session);
52 |
53 | if (session.includes(episode)) {
54 | return { ...req.data[session.indexOf(episode)], page };
55 | }
56 | } while (page++);
57 | }
58 |
59 | async function promptBookmark(ids) {
60 | const static = await getStaticIDs(ids);
61 |
62 | if (!static) {
63 | console.warn("[pahe-plus] failed to get static ids!");
64 | return;
65 | }
66 |
67 | const bookmarkHref = document.getElementById("bookmark-href");
68 |
69 | bookmarkHref.innerHTML = document.title.replace(" :: animepahe", "");
70 | bookmarkHref.href = `/b/${buildBookmark(
71 | static.anime_id,
72 | static.episode,
73 | static.page,
74 | )}`;
75 |
76 | return true;
77 | }
78 |
79 | function insertBookmark() {
80 | const info = document.querySelector(".theatre-info");
81 | const ids = getIDs();
82 |
83 | if (!info || !ids) return;
84 |
85 | // prettier-ignore
86 | info.insertAdjacentHTML("beforeend", `
87 |
94 | `);
95 |
96 | document.getElementById("ppahe-bookmark").onclick = async function () {
97 | const popout = document.getElementById("player-bookmark-popout");
98 |
99 | this.style.opacity = "0.5";
100 | this.disabled = true;
101 |
102 | popout.style.display =
103 | popout.style.display == "none" ? "block" : "none";
104 | document.getElementById("bookmark-how").innerHTML = "Loading...";
105 | document.getElementById("bookmark-href").innerHTML = `
106 |
107 |
108 |
109 |
110 |
111 |
112 | `;
113 |
114 | await promptBookmark(ids);
115 |
116 | document.getElementById("bookmark-how").innerHTML =
117 | "Drag to bookmark toolbar";
118 | this.style.opacity = "1";
119 | this.disabled = false;
120 | };
121 |
122 | return true;
123 | }
124 |
125 | function bookmark() {
126 | const ids = getIDs();
127 |
128 | if (!ids) {
129 | console.warn("[pahe-plus] could not get anime id!");
130 | return;
131 | }
132 |
133 | // don't insert if the url is invalid
134 | if (!insertBookmark()) {
135 | console.warn(
136 | "[pahe-plus] could not find proper elements... possible 404?",
137 | );
138 | }
139 | }
140 |
141 | pahe["episode-bookmark"] = bookmark;
142 |
--------------------------------------------------------------------------------
/settings/conf.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
General
22 |
36 |
37 |
Info
38 |
52 |
53 |
Watching
54 |
88 |
89 |
90 |
91 |
Saved
92 |
93 |
94 |
95 |
96 |
97 |
Debug
98 |
99 |
100 |
101 |
102 |
105 |
106 |
...
107 |
108 |
109 |
110 |
113 |
114 |
115 |
116 |
117 |
118 | github.com/Cyan903/Animepahe-plus
119 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | devDependencies:
8 | prettier:
9 | specifier: ^3.2.5
10 | version: 3.2.5
11 | web-ext:
12 | specifier: ^7.11.0
13 | version: 7.11.0
14 |
15 | packages:
16 |
17 | /@aashutoshrathi/word-wrap@1.2.6:
18 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
19 | engines: {node: '>=0.10.0'}
20 | dev: true
21 |
22 | /@babel/code-frame@7.24.2:
23 | resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
24 | engines: {node: '>=6.9.0'}
25 | dependencies:
26 | '@babel/highlight': 7.24.2
27 | picocolors: 1.0.0
28 | dev: true
29 |
30 | /@babel/helper-validator-identifier@7.22.20:
31 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
32 | engines: {node: '>=6.9.0'}
33 | dev: true
34 |
35 | /@babel/highlight@7.24.2:
36 | resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
37 | engines: {node: '>=6.9.0'}
38 | dependencies:
39 | '@babel/helper-validator-identifier': 7.22.20
40 | chalk: 2.4.2
41 | js-tokens: 4.0.0
42 | picocolors: 1.0.0
43 | dev: true
44 |
45 | /@babel/runtime@7.21.0:
46 | resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==}
47 | engines: {node: '>=6.9.0'}
48 | dependencies:
49 | regenerator-runtime: 0.13.11
50 | dev: true
51 |
52 | /@devicefarmer/adbkit-logcat@2.1.3:
53 | resolution: {integrity: sha512-yeaGFjNBc/6+svbDeul1tNHtNChw6h8pSHAt5D+JsedUrMTN7tla7B15WLDyekxsuS2XlZHRxpuC6m92wiwCNw==}
54 | engines: {node: '>= 4'}
55 | dev: true
56 |
57 | /@devicefarmer/adbkit-monkey@1.2.1:
58 | resolution: {integrity: sha512-ZzZY/b66W2Jd6NHbAhLyDWOEIBWC11VizGFk7Wx7M61JZRz7HR9Cq5P+65RKWUU7u6wgsE8Lmh9nE4Mz+U2eTg==}
59 | engines: {node: '>= 0.10.4'}
60 | dev: true
61 |
62 | /@devicefarmer/adbkit@3.2.3:
63 | resolution: {integrity: sha512-wK9rVrabs4QU0oK8Jnwi+HRBEm+s1x/o63kgthUe0y7K1bfcYmgLuQf41/adsj/5enddlSxzkJavl2EwOu+r1g==}
64 | engines: {node: '>= 0.10.4'}
65 | hasBin: true
66 | dependencies:
67 | '@devicefarmer/adbkit-logcat': 2.1.3
68 | '@devicefarmer/adbkit-monkey': 1.2.1
69 | bluebird: 3.7.2
70 | commander: 9.5.0
71 | debug: 4.3.4
72 | node-forge: 1.3.1
73 | split: 1.0.1
74 | transitivePeerDependencies:
75 | - supports-color
76 | dev: true
77 |
78 | /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
79 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
80 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
81 | peerDependencies:
82 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
83 | dependencies:
84 | eslint: 8.56.0
85 | eslint-visitor-keys: 3.4.3
86 | dev: true
87 |
88 | /@eslint-community/regexpp@4.10.0:
89 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
90 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
91 | dev: true
92 |
93 | /@eslint/eslintrc@2.1.4:
94 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
95 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
96 | dependencies:
97 | ajv: 6.12.6
98 | debug: 4.3.4
99 | espree: 9.6.1
100 | globals: 13.24.0
101 | ignore: 5.3.1
102 | import-fresh: 3.3.0
103 | js-yaml: 4.1.0
104 | minimatch: 3.1.2
105 | strip-json-comments: 3.1.1
106 | transitivePeerDependencies:
107 | - supports-color
108 | dev: true
109 |
110 | /@eslint/js@8.56.0:
111 | resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
112 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
113 | dev: true
114 |
115 | /@fluent/syntax@0.19.0:
116 | resolution: {integrity: sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==}
117 | engines: {node: '>=14.0.0', npm: '>=7.0.0'}
118 | dev: true
119 |
120 | /@humanwhocodes/config-array@0.11.14:
121 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
122 | engines: {node: '>=10.10.0'}
123 | dependencies:
124 | '@humanwhocodes/object-schema': 2.0.2
125 | debug: 4.3.4
126 | minimatch: 3.1.2
127 | transitivePeerDependencies:
128 | - supports-color
129 | dev: true
130 |
131 | /@humanwhocodes/module-importer@1.0.1:
132 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
133 | engines: {node: '>=12.22'}
134 | dev: true
135 |
136 | /@humanwhocodes/object-schema@2.0.2:
137 | resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
138 | dev: true
139 |
140 | /@isaacs/cliui@8.0.2:
141 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
142 | engines: {node: '>=12'}
143 | dependencies:
144 | string-width: 5.1.2
145 | string-width-cjs: /string-width@4.2.3
146 | strip-ansi: 7.1.0
147 | strip-ansi-cjs: /strip-ansi@6.0.1
148 | wrap-ansi: 8.1.0
149 | wrap-ansi-cjs: /wrap-ansi@7.0.0
150 | dev: true
151 |
152 | /@mdn/browser-compat-data@5.5.7:
153 | resolution: {integrity: sha512-DoHTZ/TjtNfUu9eiqJd+x3IcCQrhS+yOYU436TKUnlE36jZwNbK535D1CmTsSYdi/UcdCWNm5KRQZ9g1tlZCPw==}
154 | dev: true
155 |
156 | /@nodelib/fs.scandir@2.1.5:
157 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
158 | engines: {node: '>= 8'}
159 | dependencies:
160 | '@nodelib/fs.stat': 2.0.5
161 | run-parallel: 1.2.0
162 | dev: true
163 |
164 | /@nodelib/fs.stat@2.0.5:
165 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
166 | engines: {node: '>= 8'}
167 | dev: true
168 |
169 | /@nodelib/fs.walk@1.2.8:
170 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
171 | engines: {node: '>= 8'}
172 | dependencies:
173 | '@nodelib/fs.scandir': 2.1.5
174 | fastq: 1.17.1
175 | dev: true
176 |
177 | /@pkgjs/parseargs@0.11.0:
178 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
179 | engines: {node: '>=14'}
180 | requiresBuild: true
181 | dev: true
182 | optional: true
183 |
184 | /@pnpm/config.env-replace@1.1.0:
185 | resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
186 | engines: {node: '>=12.22.0'}
187 | dev: true
188 |
189 | /@pnpm/network.ca-file@1.0.2:
190 | resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==}
191 | engines: {node: '>=12.22.0'}
192 | dependencies:
193 | graceful-fs: 4.2.10
194 | dev: true
195 |
196 | /@pnpm/npm-conf@2.2.2:
197 | resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
198 | engines: {node: '>=12'}
199 | dependencies:
200 | '@pnpm/config.env-replace': 1.1.0
201 | '@pnpm/network.ca-file': 1.0.2
202 | config-chain: 1.1.13
203 | dev: true
204 |
205 | /@sindresorhus/is@5.6.0:
206 | resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
207 | engines: {node: '>=14.16'}
208 | dev: true
209 |
210 | /@szmarczak/http-timer@5.0.1:
211 | resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
212 | engines: {node: '>=14.16'}
213 | dependencies:
214 | defer-to-connect: 2.0.1
215 | dev: true
216 |
217 | /@types/http-cache-semantics@4.0.4:
218 | resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
219 | dev: true
220 |
221 | /@types/minimatch@3.0.5:
222 | resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
223 | dev: true
224 |
225 | /@types/node@20.11.30:
226 | resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==}
227 | dependencies:
228 | undici-types: 5.26.5
229 | dev: true
230 |
231 | /@types/yauzl@2.10.3:
232 | resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
233 | dependencies:
234 | '@types/node': 20.11.30
235 | dev: true
236 |
237 | /@ungap/structured-clone@1.2.0:
238 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
239 | dev: true
240 |
241 | /abort-controller@3.0.0:
242 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
243 | engines: {node: '>=6.5'}
244 | dependencies:
245 | event-target-shim: 5.0.1
246 | dev: true
247 |
248 | /acorn-jsx@5.3.2(acorn@8.11.3):
249 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
250 | peerDependencies:
251 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
252 | dependencies:
253 | acorn: 8.11.3
254 | dev: true
255 |
256 | /acorn@8.11.3:
257 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
258 | engines: {node: '>=0.4.0'}
259 | hasBin: true
260 | dev: true
261 |
262 | /addons-linter@6.21.0(node-fetch@3.3.1):
263 | resolution: {integrity: sha512-4GBn14BR16FZE7dog6uz+1HO6V3B+mAVxmbwxRhed2y5eyrwIW832TmEpku+5A5bbovBZ4gilXEtBsl6A1AMmg==}
264 | engines: {node: '>=16.0.0'}
265 | hasBin: true
266 | dependencies:
267 | '@fluent/syntax': 0.19.0
268 | '@mdn/browser-compat-data': 5.5.7
269 | addons-moz-compare: 1.3.0
270 | addons-scanner-utils: 9.9.0(node-fetch@3.3.1)
271 | ajv: 8.12.0
272 | chalk: 4.1.2
273 | cheerio: 1.0.0-rc.12
274 | columnify: 1.6.0
275 | common-tags: 1.8.2
276 | deepmerge: 4.3.1
277 | eslint: 8.56.0
278 | eslint-plugin-no-unsanitized: 4.0.2(eslint@8.56.0)
279 | eslint-visitor-keys: 3.4.3
280 | espree: 9.6.1
281 | esprima: 4.0.1
282 | fast-json-patch: 3.1.1
283 | glob: 10.3.10
284 | image-size: 1.1.1
285 | is-mergeable-object: 1.1.1
286 | jed: 1.1.1
287 | json-merge-patch: 1.0.2
288 | os-locale: 5.0.0
289 | pino: 8.17.2
290 | postcss: 8.4.33
291 | relaxed-json: 1.0.3
292 | semver: 7.5.4
293 | sha.js: 2.4.11
294 | source-map-support: 0.5.21
295 | tosource: 1.0.0
296 | upath: 2.0.1
297 | yargs: 17.7.2
298 | yauzl: 2.10.0
299 | transitivePeerDependencies:
300 | - body-parser
301 | - express
302 | - node-fetch
303 | - safe-compare
304 | - supports-color
305 | dev: true
306 |
307 | /addons-moz-compare@1.3.0:
308 | resolution: {integrity: sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==}
309 | dev: true
310 |
311 | /addons-scanner-utils@9.9.0(node-fetch@3.3.1):
312 | resolution: {integrity: sha512-YDP10U3sEZMuIgnjXMiAYgUU64jTbxmhpUXMlhi1nKO4Etz+ctGWoTUst7IQRoLWaY9y2r1KZDG3jALxLA1n7Q==}
313 | peerDependencies:
314 | body-parser: 1.20.2
315 | express: 4.18.2
316 | node-fetch: 2.6.11
317 | safe-compare: 1.1.4
318 | peerDependenciesMeta:
319 | body-parser:
320 | optional: true
321 | express:
322 | optional: true
323 | node-fetch:
324 | optional: true
325 | safe-compare:
326 | optional: true
327 | dependencies:
328 | '@types/yauzl': 2.10.3
329 | common-tags: 1.8.2
330 | first-chunk-stream: 3.0.0
331 | node-fetch: 3.3.1
332 | strip-bom-stream: 4.0.0
333 | upath: 2.0.1
334 | yauzl: 2.10.0
335 | dev: true
336 |
337 | /adm-zip@0.5.12:
338 | resolution: {integrity: sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==}
339 | engines: {node: '>=6.0'}
340 | dev: true
341 |
342 | /ajv@6.12.6:
343 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
344 | dependencies:
345 | fast-deep-equal: 3.1.3
346 | fast-json-stable-stringify: 2.1.0
347 | json-schema-traverse: 0.4.1
348 | uri-js: 4.4.1
349 | dev: true
350 |
351 | /ajv@8.12.0:
352 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
353 | dependencies:
354 | fast-deep-equal: 3.1.3
355 | json-schema-traverse: 1.0.0
356 | require-from-string: 2.0.2
357 | uri-js: 4.4.1
358 | dev: true
359 |
360 | /ansi-align@3.0.1:
361 | resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
362 | dependencies:
363 | string-width: 4.2.3
364 | dev: true
365 |
366 | /ansi-regex@5.0.1:
367 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
368 | engines: {node: '>=8'}
369 | dev: true
370 |
371 | /ansi-regex@6.0.1:
372 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
373 | engines: {node: '>=12'}
374 | dev: true
375 |
376 | /ansi-styles@3.2.1:
377 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
378 | engines: {node: '>=4'}
379 | dependencies:
380 | color-convert: 1.9.3
381 | dev: true
382 |
383 | /ansi-styles@4.3.0:
384 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
385 | engines: {node: '>=8'}
386 | dependencies:
387 | color-convert: 2.0.1
388 | dev: true
389 |
390 | /ansi-styles@6.2.1:
391 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
392 | engines: {node: '>=12'}
393 | dev: true
394 |
395 | /any-promise@1.3.0:
396 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
397 | dev: true
398 |
399 | /argparse@2.0.1:
400 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
401 | dev: true
402 |
403 | /array-differ@4.0.0:
404 | resolution: {integrity: sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==}
405 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
406 | dev: true
407 |
408 | /array-union@3.0.1:
409 | resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==}
410 | engines: {node: '>=12'}
411 | dev: true
412 |
413 | /asn1@0.2.6:
414 | resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==}
415 | dependencies:
416 | safer-buffer: 2.1.2
417 | dev: true
418 |
419 | /assert-plus@1.0.0:
420 | resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==}
421 | engines: {node: '>=0.8'}
422 | dev: true
423 |
424 | /async@3.2.5:
425 | resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
426 | dev: true
427 |
428 | /asynckit@0.4.0:
429 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
430 | dev: true
431 |
432 | /at-least-node@1.0.0:
433 | resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
434 | engines: {node: '>= 4.0.0'}
435 | dev: true
436 |
437 | /atomic-sleep@1.0.0:
438 | resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
439 | engines: {node: '>=8.0.0'}
440 | dev: true
441 |
442 | /aws-sign2@0.7.0:
443 | resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==}
444 | dev: true
445 |
446 | /aws4@1.12.0:
447 | resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==}
448 | dev: true
449 |
450 | /balanced-match@1.0.2:
451 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
452 | dev: true
453 |
454 | /base64-js@1.5.1:
455 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
456 | dev: true
457 |
458 | /bcrypt-pbkdf@1.0.2:
459 | resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==}
460 | dependencies:
461 | tweetnacl: 0.14.5
462 | dev: true
463 |
464 | /bluebird@3.7.2:
465 | resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
466 | dev: true
467 |
468 | /boolbase@1.0.0:
469 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
470 | dev: true
471 |
472 | /boxen@7.1.1:
473 | resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==}
474 | engines: {node: '>=14.16'}
475 | dependencies:
476 | ansi-align: 3.0.1
477 | camelcase: 7.0.1
478 | chalk: 5.3.0
479 | cli-boxes: 3.0.0
480 | string-width: 5.1.2
481 | type-fest: 2.19.0
482 | widest-line: 4.0.1
483 | wrap-ansi: 8.1.0
484 | dev: true
485 |
486 | /brace-expansion@1.1.11:
487 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
488 | dependencies:
489 | balanced-match: 1.0.2
490 | concat-map: 0.0.1
491 | dev: true
492 |
493 | /brace-expansion@2.0.1:
494 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
495 | dependencies:
496 | balanced-match: 1.0.2
497 | dev: true
498 |
499 | /buffer-crc32@0.2.13:
500 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
501 | dev: true
502 |
503 | /buffer-equal-constant-time@1.0.1:
504 | resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
505 | dev: true
506 |
507 | /buffer-from@1.1.2:
508 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
509 | dev: true
510 |
511 | /buffer@6.0.3:
512 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
513 | dependencies:
514 | base64-js: 1.5.1
515 | ieee754: 1.2.1
516 | dev: true
517 |
518 | /bunyan@1.8.15:
519 | resolution: {integrity: sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==}
520 | engines: {'0': node >=0.10.0}
521 | hasBin: true
522 | optionalDependencies:
523 | dtrace-provider: 0.8.8
524 | moment: 2.30.1
525 | mv: 2.1.1
526 | safe-json-stringify: 1.2.0
527 | dev: true
528 |
529 | /cacheable-lookup@7.0.0:
530 | resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
531 | engines: {node: '>=14.16'}
532 | dev: true
533 |
534 | /cacheable-request@10.2.14:
535 | resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
536 | engines: {node: '>=14.16'}
537 | dependencies:
538 | '@types/http-cache-semantics': 4.0.4
539 | get-stream: 6.0.1
540 | http-cache-semantics: 4.1.1
541 | keyv: 4.5.4
542 | mimic-response: 4.0.0
543 | normalize-url: 8.0.1
544 | responselike: 3.0.0
545 | dev: true
546 |
547 | /callsites@3.1.0:
548 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
549 | engines: {node: '>=6'}
550 | dev: true
551 |
552 | /camelcase@7.0.1:
553 | resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
554 | engines: {node: '>=14.16'}
555 | dev: true
556 |
557 | /caseless@0.12.0:
558 | resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
559 | dev: true
560 |
561 | /chalk@2.4.2:
562 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
563 | engines: {node: '>=4'}
564 | dependencies:
565 | ansi-styles: 3.2.1
566 | escape-string-regexp: 1.0.5
567 | supports-color: 5.5.0
568 | dev: true
569 |
570 | /chalk@4.1.2:
571 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
572 | engines: {node: '>=10'}
573 | dependencies:
574 | ansi-styles: 4.3.0
575 | supports-color: 7.2.0
576 | dev: true
577 |
578 | /chalk@5.3.0:
579 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
580 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
581 | dev: true
582 |
583 | /cheerio-select@2.1.0:
584 | resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
585 | dependencies:
586 | boolbase: 1.0.0
587 | css-select: 5.1.0
588 | css-what: 6.1.0
589 | domelementtype: 2.3.0
590 | domhandler: 5.0.3
591 | domutils: 3.1.0
592 | dev: true
593 |
594 | /cheerio@1.0.0-rc.12:
595 | resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
596 | engines: {node: '>= 6'}
597 | dependencies:
598 | cheerio-select: 2.1.0
599 | dom-serializer: 2.0.0
600 | domhandler: 5.0.3
601 | domutils: 3.1.0
602 | htmlparser2: 8.0.2
603 | parse5: 7.1.2
604 | parse5-htmlparser2-tree-adapter: 7.0.0
605 | dev: true
606 |
607 | /chrome-launcher@0.15.1:
608 | resolution: {integrity: sha512-UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==}
609 | engines: {node: '>=12.13.0'}
610 | hasBin: true
611 | dependencies:
612 | '@types/node': 20.11.30
613 | escape-string-regexp: 4.0.0
614 | is-wsl: 2.2.0
615 | lighthouse-logger: 1.4.2
616 | transitivePeerDependencies:
617 | - supports-color
618 | dev: true
619 |
620 | /ci-info@3.9.0:
621 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
622 | engines: {node: '>=8'}
623 | dev: true
624 |
625 | /cli-boxes@3.0.0:
626 | resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
627 | engines: {node: '>=10'}
628 | dev: true
629 |
630 | /cliui@8.0.1:
631 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
632 | engines: {node: '>=12'}
633 | dependencies:
634 | string-width: 4.2.3
635 | strip-ansi: 6.0.1
636 | wrap-ansi: 7.0.0
637 | dev: true
638 |
639 | /clone@1.0.4:
640 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
641 | engines: {node: '>=0.8'}
642 | dev: true
643 |
644 | /color-convert@1.9.3:
645 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
646 | dependencies:
647 | color-name: 1.1.3
648 | dev: true
649 |
650 | /color-convert@2.0.1:
651 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
652 | engines: {node: '>=7.0.0'}
653 | dependencies:
654 | color-name: 1.1.4
655 | dev: true
656 |
657 | /color-name@1.1.3:
658 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
659 | dev: true
660 |
661 | /color-name@1.1.4:
662 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
663 | dev: true
664 |
665 | /columnify@1.6.0:
666 | resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==}
667 | engines: {node: '>=8.0.0'}
668 | dependencies:
669 | strip-ansi: 6.0.1
670 | wcwidth: 1.0.1
671 | dev: true
672 |
673 | /combined-stream@1.0.8:
674 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
675 | engines: {node: '>= 0.8'}
676 | dependencies:
677 | delayed-stream: 1.0.0
678 | dev: true
679 |
680 | /commander@2.20.3:
681 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
682 | dev: true
683 |
684 | /commander@2.9.0:
685 | resolution: {integrity: sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==}
686 | engines: {node: '>= 0.6.x'}
687 | dependencies:
688 | graceful-readlink: 1.0.1
689 | dev: true
690 |
691 | /commander@9.5.0:
692 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
693 | engines: {node: ^12.20.0 || >=14}
694 | dev: true
695 |
696 | /common-tags@1.8.2:
697 | resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==}
698 | engines: {node: '>=4.0.0'}
699 | dev: true
700 |
701 | /concat-map@0.0.1:
702 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
703 | dev: true
704 |
705 | /concat-stream@1.6.2:
706 | resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
707 | engines: {'0': node >= 0.8}
708 | dependencies:
709 | buffer-from: 1.1.2
710 | inherits: 2.0.4
711 | readable-stream: 2.3.8
712 | typedarray: 0.0.6
713 | dev: true
714 |
715 | /config-chain@1.1.13:
716 | resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
717 | dependencies:
718 | ini: 1.3.8
719 | proto-list: 1.2.4
720 | dev: true
721 |
722 | /configstore@6.0.0:
723 | resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==}
724 | engines: {node: '>=12'}
725 | dependencies:
726 | dot-prop: 6.0.1
727 | graceful-fs: 4.2.11
728 | unique-string: 3.0.0
729 | write-file-atomic: 3.0.3
730 | xdg-basedir: 5.1.0
731 | dev: true
732 |
733 | /core-js@3.29.0:
734 | resolution: {integrity: sha512-VG23vuEisJNkGl6XQmFJd3rEG/so/CNatqeE+7uZAwTSwFeB/qaO0be8xZYUNWprJ/GIwL8aMt9cj1kvbpTZhg==}
735 | requiresBuild: true
736 | dev: true
737 |
738 | /core-util-is@1.0.2:
739 | resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
740 | dev: true
741 |
742 | /core-util-is@1.0.3:
743 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
744 | dev: true
745 |
746 | /cross-spawn@7.0.3:
747 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
748 | engines: {node: '>= 8'}
749 | dependencies:
750 | path-key: 3.1.1
751 | shebang-command: 2.0.0
752 | which: 2.0.2
753 | dev: true
754 |
755 | /crypto-random-string@4.0.0:
756 | resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
757 | engines: {node: '>=12'}
758 | dependencies:
759 | type-fest: 1.4.0
760 | dev: true
761 |
762 | /css-select@5.1.0:
763 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
764 | dependencies:
765 | boolbase: 1.0.0
766 | css-what: 6.1.0
767 | domhandler: 5.0.3
768 | domutils: 3.1.0
769 | nth-check: 2.1.1
770 | dev: true
771 |
772 | /css-what@6.1.0:
773 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
774 | engines: {node: '>= 6'}
775 | dev: true
776 |
777 | /dashdash@1.14.1:
778 | resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==}
779 | engines: {node: '>=0.10'}
780 | dependencies:
781 | assert-plus: 1.0.0
782 | dev: true
783 |
784 | /data-uri-to-buffer@4.0.1:
785 | resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
786 | engines: {node: '>= 12'}
787 | dev: true
788 |
789 | /debounce@1.2.1:
790 | resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
791 | dev: true
792 |
793 | /debug@2.6.9:
794 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
795 | peerDependencies:
796 | supports-color: '*'
797 | peerDependenciesMeta:
798 | supports-color:
799 | optional: true
800 | dependencies:
801 | ms: 2.0.0
802 | dev: true
803 |
804 | /debug@4.3.4:
805 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
806 | engines: {node: '>=6.0'}
807 | peerDependencies:
808 | supports-color: '*'
809 | peerDependenciesMeta:
810 | supports-color:
811 | optional: true
812 | dependencies:
813 | ms: 2.1.2
814 | dev: true
815 |
816 | /decamelize@6.0.0:
817 | resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==}
818 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
819 | dev: true
820 |
821 | /decompress-response@6.0.0:
822 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
823 | engines: {node: '>=10'}
824 | dependencies:
825 | mimic-response: 3.1.0
826 | dev: true
827 |
828 | /deep-extend@0.6.0:
829 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
830 | engines: {node: '>=4.0.0'}
831 | dev: true
832 |
833 | /deep-is@0.1.4:
834 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
835 | dev: true
836 |
837 | /deepcopy@2.1.0:
838 | resolution: {integrity: sha512-8cZeTb1ZKC3bdSCP6XOM1IsTczIO73fdqtwa2B0N15eAz7gmyhQo+mc5gnFuulsgN3vIQYmTgbmQVKalH1dKvQ==}
839 | dependencies:
840 | type-detect: 4.0.8
841 | dev: true
842 |
843 | /deepmerge@4.3.1:
844 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
845 | engines: {node: '>=0.10.0'}
846 | dev: true
847 |
848 | /defaults@1.0.4:
849 | resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
850 | dependencies:
851 | clone: 1.0.4
852 | dev: true
853 |
854 | /defer-to-connect@2.0.1:
855 | resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
856 | engines: {node: '>=10'}
857 | dev: true
858 |
859 | /define-lazy-prop@2.0.0:
860 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
861 | engines: {node: '>=8'}
862 | dev: true
863 |
864 | /delayed-stream@1.0.0:
865 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
866 | engines: {node: '>=0.4.0'}
867 | dev: true
868 |
869 | /doctrine@3.0.0:
870 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
871 | engines: {node: '>=6.0.0'}
872 | dependencies:
873 | esutils: 2.0.3
874 | dev: true
875 |
876 | /dom-serializer@2.0.0:
877 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
878 | dependencies:
879 | domelementtype: 2.3.0
880 | domhandler: 5.0.3
881 | entities: 4.5.0
882 | dev: true
883 |
884 | /domelementtype@2.3.0:
885 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
886 | dev: true
887 |
888 | /domhandler@5.0.3:
889 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
890 | engines: {node: '>= 4'}
891 | dependencies:
892 | domelementtype: 2.3.0
893 | dev: true
894 |
895 | /domutils@3.1.0:
896 | resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
897 | dependencies:
898 | dom-serializer: 2.0.0
899 | domelementtype: 2.3.0
900 | domhandler: 5.0.3
901 | dev: true
902 |
903 | /dot-prop@6.0.1:
904 | resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
905 | engines: {node: '>=10'}
906 | dependencies:
907 | is-obj: 2.0.0
908 | dev: true
909 |
910 | /dtrace-provider@0.8.8:
911 | resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==}
912 | engines: {node: '>=0.10'}
913 | requiresBuild: true
914 | dependencies:
915 | nan: 2.19.0
916 | dev: true
917 | optional: true
918 |
919 | /eastasianwidth@0.2.0:
920 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
921 | dev: true
922 |
923 | /ecc-jsbn@0.1.2:
924 | resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==}
925 | dependencies:
926 | jsbn: 0.1.1
927 | safer-buffer: 2.1.2
928 | dev: true
929 |
930 | /ecdsa-sig-formatter@1.0.11:
931 | resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
932 | dependencies:
933 | safe-buffer: 5.2.1
934 | dev: true
935 |
936 | /emoji-regex@8.0.0:
937 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
938 | dev: true
939 |
940 | /emoji-regex@9.2.2:
941 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
942 | dev: true
943 |
944 | /end-of-stream@1.4.4:
945 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
946 | dependencies:
947 | once: 1.4.0
948 | dev: true
949 |
950 | /entities@4.5.0:
951 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
952 | engines: {node: '>=0.12'}
953 | dev: true
954 |
955 | /error-ex@1.3.2:
956 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
957 | dependencies:
958 | is-arrayish: 0.2.1
959 | dev: true
960 |
961 | /es6-error@4.1.1:
962 | resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
963 | dev: true
964 |
965 | /es6-promisify@7.0.0:
966 | resolution: {integrity: sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==}
967 | engines: {node: '>=6'}
968 | dev: true
969 |
970 | /escalade@3.1.2:
971 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
972 | engines: {node: '>=6'}
973 | dev: true
974 |
975 | /escape-goat@4.0.0:
976 | resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
977 | engines: {node: '>=12'}
978 | dev: true
979 |
980 | /escape-string-regexp@1.0.5:
981 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
982 | engines: {node: '>=0.8.0'}
983 | dev: true
984 |
985 | /escape-string-regexp@4.0.0:
986 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
987 | engines: {node: '>=10'}
988 | dev: true
989 |
990 | /eslint-plugin-no-unsanitized@4.0.2(eslint@8.56.0):
991 | resolution: {integrity: sha512-Pry0S9YmHoz8NCEMRQh7N0Yexh2MYCNPIlrV52hTmS7qXnTghWsjXouF08bgsrrZqaW9tt1ZiK3j5NEmPE+EjQ==}
992 | peerDependencies:
993 | eslint: ^6 || ^7 || ^8
994 | dependencies:
995 | eslint: 8.56.0
996 | dev: true
997 |
998 | /eslint-scope@7.2.2:
999 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
1000 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1001 | dependencies:
1002 | esrecurse: 4.3.0
1003 | estraverse: 5.3.0
1004 | dev: true
1005 |
1006 | /eslint-visitor-keys@3.4.3:
1007 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
1008 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1009 | dev: true
1010 |
1011 | /eslint@8.56.0:
1012 | resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
1013 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1014 | hasBin: true
1015 | dependencies:
1016 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
1017 | '@eslint-community/regexpp': 4.10.0
1018 | '@eslint/eslintrc': 2.1.4
1019 | '@eslint/js': 8.56.0
1020 | '@humanwhocodes/config-array': 0.11.14
1021 | '@humanwhocodes/module-importer': 1.0.1
1022 | '@nodelib/fs.walk': 1.2.8
1023 | '@ungap/structured-clone': 1.2.0
1024 | ajv: 6.12.6
1025 | chalk: 4.1.2
1026 | cross-spawn: 7.0.3
1027 | debug: 4.3.4
1028 | doctrine: 3.0.0
1029 | escape-string-regexp: 4.0.0
1030 | eslint-scope: 7.2.2
1031 | eslint-visitor-keys: 3.4.3
1032 | espree: 9.6.1
1033 | esquery: 1.5.0
1034 | esutils: 2.0.3
1035 | fast-deep-equal: 3.1.3
1036 | file-entry-cache: 6.0.1
1037 | find-up: 5.0.0
1038 | glob-parent: 6.0.2
1039 | globals: 13.24.0
1040 | graphemer: 1.4.0
1041 | ignore: 5.3.1
1042 | imurmurhash: 0.1.4
1043 | is-glob: 4.0.3
1044 | is-path-inside: 3.0.3
1045 | js-yaml: 4.1.0
1046 | json-stable-stringify-without-jsonify: 1.0.1
1047 | levn: 0.4.1
1048 | lodash.merge: 4.6.2
1049 | minimatch: 3.1.2
1050 | natural-compare: 1.4.0
1051 | optionator: 0.9.3
1052 | strip-ansi: 6.0.1
1053 | text-table: 0.2.0
1054 | transitivePeerDependencies:
1055 | - supports-color
1056 | dev: true
1057 |
1058 | /espree@9.6.1:
1059 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
1060 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1061 | dependencies:
1062 | acorn: 8.11.3
1063 | acorn-jsx: 5.3.2(acorn@8.11.3)
1064 | eslint-visitor-keys: 3.4.3
1065 | dev: true
1066 |
1067 | /esprima@4.0.1:
1068 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
1069 | engines: {node: '>=4'}
1070 | hasBin: true
1071 | dev: true
1072 |
1073 | /esquery@1.5.0:
1074 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
1075 | engines: {node: '>=0.10'}
1076 | dependencies:
1077 | estraverse: 5.3.0
1078 | dev: true
1079 |
1080 | /esrecurse@4.3.0:
1081 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1082 | engines: {node: '>=4.0'}
1083 | dependencies:
1084 | estraverse: 5.3.0
1085 | dev: true
1086 |
1087 | /estraverse@5.3.0:
1088 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1089 | engines: {node: '>=4.0'}
1090 | dev: true
1091 |
1092 | /esutils@2.0.3:
1093 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1094 | engines: {node: '>=0.10.0'}
1095 | dev: true
1096 |
1097 | /event-target-shim@5.0.1:
1098 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
1099 | engines: {node: '>=6'}
1100 | dev: true
1101 |
1102 | /events@3.3.0:
1103 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
1104 | engines: {node: '>=0.8.x'}
1105 | dev: true
1106 |
1107 | /execa@4.1.0:
1108 | resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==}
1109 | engines: {node: '>=10'}
1110 | dependencies:
1111 | cross-spawn: 7.0.3
1112 | get-stream: 5.2.0
1113 | human-signals: 1.1.1
1114 | is-stream: 2.0.1
1115 | merge-stream: 2.0.0
1116 | npm-run-path: 4.0.1
1117 | onetime: 5.1.2
1118 | signal-exit: 3.0.7
1119 | strip-final-newline: 2.0.0
1120 | dev: true
1121 |
1122 | /extend@3.0.2:
1123 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
1124 | dev: true
1125 |
1126 | /extsprintf@1.3.0:
1127 | resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==}
1128 | engines: {'0': node >=0.6.0}
1129 | dev: true
1130 |
1131 | /fast-deep-equal@3.1.3:
1132 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1133 | dev: true
1134 |
1135 | /fast-json-patch@3.1.1:
1136 | resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==}
1137 | dev: true
1138 |
1139 | /fast-json-stable-stringify@2.1.0:
1140 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1141 | dev: true
1142 |
1143 | /fast-levenshtein@2.0.6:
1144 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1145 | dev: true
1146 |
1147 | /fast-redact@3.5.0:
1148 | resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
1149 | engines: {node: '>=6'}
1150 | dev: true
1151 |
1152 | /fastq@1.17.1:
1153 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
1154 | dependencies:
1155 | reusify: 1.0.4
1156 | dev: true
1157 |
1158 | /fd-slicer@1.1.0:
1159 | resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
1160 | dependencies:
1161 | pend: 1.2.0
1162 | dev: true
1163 |
1164 | /fetch-blob@3.2.0:
1165 | resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
1166 | engines: {node: ^12.20 || >= 14.13}
1167 | dependencies:
1168 | node-domexception: 1.0.0
1169 | web-streams-polyfill: 3.3.3
1170 | dev: true
1171 |
1172 | /file-entry-cache@6.0.1:
1173 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1174 | engines: {node: ^10.12.0 || >=12.0.0}
1175 | dependencies:
1176 | flat-cache: 3.2.0
1177 | dev: true
1178 |
1179 | /find-up@5.0.0:
1180 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1181 | engines: {node: '>=10'}
1182 | dependencies:
1183 | locate-path: 6.0.0
1184 | path-exists: 4.0.0
1185 | dev: true
1186 |
1187 | /firefox-profile@4.3.2:
1188 | resolution: {integrity: sha512-/C+Eqa0YgIsQT2p66p7Ygzqe7NlE/GNTbhw2SBCm5V3OsWDPITNdTPEcH2Q2fe7eMpYYNPKdUcuVioZBZiR6kA==}
1189 | hasBin: true
1190 | dependencies:
1191 | adm-zip: 0.5.12
1192 | fs-extra: 9.0.1
1193 | ini: 2.0.0
1194 | minimist: 1.2.8
1195 | xml2js: 0.5.0
1196 | dev: true
1197 |
1198 | /first-chunk-stream@3.0.0:
1199 | resolution: {integrity: sha512-LNRvR4hr/S8cXXkIY5pTgVP7L3tq6LlYWcg9nWBuW7o1NMxKZo6oOVa/6GIekMGI0Iw7uC+HWimMe9u/VAeKqw==}
1200 | engines: {node: '>=8'}
1201 | dev: true
1202 |
1203 | /flat-cache@3.2.0:
1204 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
1205 | engines: {node: ^10.12.0 || >=12.0.0}
1206 | dependencies:
1207 | flatted: 3.3.1
1208 | keyv: 4.5.4
1209 | rimraf: 3.0.2
1210 | dev: true
1211 |
1212 | /flatted@3.3.1:
1213 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
1214 | dev: true
1215 |
1216 | /foreground-child@3.1.1:
1217 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
1218 | engines: {node: '>=14'}
1219 | dependencies:
1220 | cross-spawn: 7.0.3
1221 | signal-exit: 4.1.0
1222 | dev: true
1223 |
1224 | /forever-agent@0.6.1:
1225 | resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==}
1226 | dev: true
1227 |
1228 | /form-data-encoder@2.1.4:
1229 | resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
1230 | engines: {node: '>= 14.17'}
1231 | dev: true
1232 |
1233 | /form-data@2.3.3:
1234 | resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==}
1235 | engines: {node: '>= 0.12'}
1236 | dependencies:
1237 | asynckit: 0.4.0
1238 | combined-stream: 1.0.8
1239 | mime-types: 2.1.35
1240 | dev: true
1241 |
1242 | /formdata-polyfill@4.0.10:
1243 | resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
1244 | engines: {node: '>=12.20.0'}
1245 | dependencies:
1246 | fetch-blob: 3.2.0
1247 | dev: true
1248 |
1249 | /fs-extra@11.1.0:
1250 | resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==}
1251 | engines: {node: '>=14.14'}
1252 | dependencies:
1253 | graceful-fs: 4.2.11
1254 | jsonfile: 6.1.0
1255 | universalify: 2.0.1
1256 | dev: true
1257 |
1258 | /fs-extra@9.0.1:
1259 | resolution: {integrity: sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==}
1260 | engines: {node: '>=10'}
1261 | dependencies:
1262 | at-least-node: 1.0.0
1263 | graceful-fs: 4.2.11
1264 | jsonfile: 6.1.0
1265 | universalify: 1.0.0
1266 | dev: true
1267 |
1268 | /fs.realpath@1.0.0:
1269 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1270 | dev: true
1271 |
1272 | /fx-runner@1.4.0:
1273 | resolution: {integrity: sha512-rci1g6U0rdTg6bAaBboP7XdRu01dzTAaKXxFf+PUqGuCv6Xu7o8NZdY1D5MvKGIjb6EdS1g3VlXOgksir1uGkg==}
1274 | hasBin: true
1275 | dependencies:
1276 | commander: 2.9.0
1277 | shell-quote: 1.7.3
1278 | spawn-sync: 1.0.15
1279 | when: 3.7.7
1280 | which: 1.2.4
1281 | winreg: 0.0.12
1282 | dev: true
1283 |
1284 | /get-caller-file@2.0.5:
1285 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
1286 | engines: {node: 6.* || 8.* || >= 10.*}
1287 | dev: true
1288 |
1289 | /get-stream@5.2.0:
1290 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
1291 | engines: {node: '>=8'}
1292 | dependencies:
1293 | pump: 3.0.0
1294 | dev: true
1295 |
1296 | /get-stream@6.0.1:
1297 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
1298 | engines: {node: '>=10'}
1299 | dev: true
1300 |
1301 | /getpass@0.1.7:
1302 | resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==}
1303 | dependencies:
1304 | assert-plus: 1.0.0
1305 | dev: true
1306 |
1307 | /glob-parent@6.0.2:
1308 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1309 | engines: {node: '>=10.13.0'}
1310 | dependencies:
1311 | is-glob: 4.0.3
1312 | dev: true
1313 |
1314 | /glob-to-regexp@0.4.1:
1315 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
1316 | dev: true
1317 |
1318 | /glob@10.3.10:
1319 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
1320 | engines: {node: '>=16 || 14 >=14.17'}
1321 | hasBin: true
1322 | dependencies:
1323 | foreground-child: 3.1.1
1324 | jackspeak: 2.3.6
1325 | minimatch: 9.0.3
1326 | minipass: 7.0.4
1327 | path-scurry: 1.10.1
1328 | dev: true
1329 |
1330 | /glob@6.0.4:
1331 | resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==}
1332 | requiresBuild: true
1333 | dependencies:
1334 | inflight: 1.0.6
1335 | inherits: 2.0.4
1336 | minimatch: 3.1.2
1337 | once: 1.4.0
1338 | path-is-absolute: 1.0.1
1339 | dev: true
1340 | optional: true
1341 |
1342 | /glob@7.2.3:
1343 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1344 | dependencies:
1345 | fs.realpath: 1.0.0
1346 | inflight: 1.0.6
1347 | inherits: 2.0.4
1348 | minimatch: 3.1.2
1349 | once: 1.4.0
1350 | path-is-absolute: 1.0.1
1351 | dev: true
1352 |
1353 | /global-dirs@3.0.1:
1354 | resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
1355 | engines: {node: '>=10'}
1356 | dependencies:
1357 | ini: 2.0.0
1358 | dev: true
1359 |
1360 | /globals@13.24.0:
1361 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
1362 | engines: {node: '>=8'}
1363 | dependencies:
1364 | type-fest: 0.20.2
1365 | dev: true
1366 |
1367 | /got@12.6.1:
1368 | resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
1369 | engines: {node: '>=14.16'}
1370 | dependencies:
1371 | '@sindresorhus/is': 5.6.0
1372 | '@szmarczak/http-timer': 5.0.1
1373 | cacheable-lookup: 7.0.0
1374 | cacheable-request: 10.2.14
1375 | decompress-response: 6.0.0
1376 | form-data-encoder: 2.1.4
1377 | get-stream: 6.0.1
1378 | http2-wrapper: 2.2.1
1379 | lowercase-keys: 3.0.0
1380 | p-cancelable: 3.0.0
1381 | responselike: 3.0.0
1382 | dev: true
1383 |
1384 | /graceful-fs@4.2.10:
1385 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
1386 | dev: true
1387 |
1388 | /graceful-fs@4.2.11:
1389 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1390 | dev: true
1391 |
1392 | /graceful-readlink@1.0.1:
1393 | resolution: {integrity: sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==}
1394 | dev: true
1395 |
1396 | /graphemer@1.4.0:
1397 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1398 | dev: true
1399 |
1400 | /growly@1.3.0:
1401 | resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==}
1402 | dev: true
1403 |
1404 | /har-schema@2.0.0:
1405 | resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==}
1406 | engines: {node: '>=4'}
1407 | dev: true
1408 |
1409 | /har-validator@5.1.5:
1410 | resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==}
1411 | engines: {node: '>=6'}
1412 | deprecated: this library is no longer supported
1413 | dependencies:
1414 | ajv: 6.12.6
1415 | har-schema: 2.0.0
1416 | dev: true
1417 |
1418 | /has-flag@3.0.0:
1419 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
1420 | engines: {node: '>=4'}
1421 | dev: true
1422 |
1423 | /has-flag@4.0.0:
1424 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1425 | engines: {node: '>=8'}
1426 | dev: true
1427 |
1428 | /has-yarn@3.0.0:
1429 | resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
1430 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1431 | dev: true
1432 |
1433 | /htmlparser2@8.0.2:
1434 | resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
1435 | dependencies:
1436 | domelementtype: 2.3.0
1437 | domhandler: 5.0.3
1438 | domutils: 3.1.0
1439 | entities: 4.5.0
1440 | dev: true
1441 |
1442 | /http-cache-semantics@4.1.1:
1443 | resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
1444 | dev: true
1445 |
1446 | /http-signature@1.2.0:
1447 | resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==}
1448 | engines: {node: '>=0.8', npm: '>=1.3.7'}
1449 | dependencies:
1450 | assert-plus: 1.0.0
1451 | jsprim: 1.4.2
1452 | sshpk: 1.18.0
1453 | dev: true
1454 |
1455 | /http2-wrapper@2.2.1:
1456 | resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
1457 | engines: {node: '>=10.19.0'}
1458 | dependencies:
1459 | quick-lru: 5.1.1
1460 | resolve-alpn: 1.2.1
1461 | dev: true
1462 |
1463 | /human-signals@1.1.1:
1464 | resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
1465 | engines: {node: '>=8.12.0'}
1466 | dev: true
1467 |
1468 | /ieee754@1.2.1:
1469 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
1470 | dev: true
1471 |
1472 | /ignore@5.3.1:
1473 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
1474 | engines: {node: '>= 4'}
1475 | dev: true
1476 |
1477 | /image-size@1.1.1:
1478 | resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
1479 | engines: {node: '>=16.x'}
1480 | hasBin: true
1481 | dependencies:
1482 | queue: 6.0.2
1483 | dev: true
1484 |
1485 | /immediate@3.0.6:
1486 | resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
1487 | dev: true
1488 |
1489 | /import-fresh@3.3.0:
1490 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1491 | engines: {node: '>=6'}
1492 | dependencies:
1493 | parent-module: 1.0.1
1494 | resolve-from: 4.0.0
1495 | dev: true
1496 |
1497 | /import-lazy@4.0.0:
1498 | resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
1499 | engines: {node: '>=8'}
1500 | dev: true
1501 |
1502 | /imurmurhash@0.1.4:
1503 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1504 | engines: {node: '>=0.8.19'}
1505 | dev: true
1506 |
1507 | /inflight@1.0.6:
1508 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1509 | dependencies:
1510 | once: 1.4.0
1511 | wrappy: 1.0.2
1512 | dev: true
1513 |
1514 | /inherits@2.0.4:
1515 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1516 | dev: true
1517 |
1518 | /ini@1.3.8:
1519 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
1520 | dev: true
1521 |
1522 | /ini@2.0.0:
1523 | resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
1524 | engines: {node: '>=10'}
1525 | dev: true
1526 |
1527 | /invert-kv@3.0.1:
1528 | resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==}
1529 | engines: {node: '>=8'}
1530 | dev: true
1531 |
1532 | /is-absolute@0.1.7:
1533 | resolution: {integrity: sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==}
1534 | engines: {node: '>=0.10.0'}
1535 | dependencies:
1536 | is-relative: 0.1.3
1537 | dev: true
1538 |
1539 | /is-arrayish@0.2.1:
1540 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
1541 | dev: true
1542 |
1543 | /is-ci@3.0.1:
1544 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
1545 | hasBin: true
1546 | dependencies:
1547 | ci-info: 3.9.0
1548 | dev: true
1549 |
1550 | /is-docker@2.2.1:
1551 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
1552 | engines: {node: '>=8'}
1553 | hasBin: true
1554 | dev: true
1555 |
1556 | /is-extglob@2.1.1:
1557 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1558 | engines: {node: '>=0.10.0'}
1559 | dev: true
1560 |
1561 | /is-fullwidth-code-point@3.0.0:
1562 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1563 | engines: {node: '>=8'}
1564 | dev: true
1565 |
1566 | /is-glob@4.0.3:
1567 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1568 | engines: {node: '>=0.10.0'}
1569 | dependencies:
1570 | is-extglob: 2.1.1
1571 | dev: true
1572 |
1573 | /is-installed-globally@0.4.0:
1574 | resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
1575 | engines: {node: '>=10'}
1576 | dependencies:
1577 | global-dirs: 3.0.1
1578 | is-path-inside: 3.0.3
1579 | dev: true
1580 |
1581 | /is-mergeable-object@1.1.1:
1582 | resolution: {integrity: sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==}
1583 | dev: true
1584 |
1585 | /is-npm@6.0.0:
1586 | resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==}
1587 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1588 | dev: true
1589 |
1590 | /is-obj@2.0.0:
1591 | resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
1592 | engines: {node: '>=8'}
1593 | dev: true
1594 |
1595 | /is-path-inside@3.0.3:
1596 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1597 | engines: {node: '>=8'}
1598 | dev: true
1599 |
1600 | /is-relative@0.1.3:
1601 | resolution: {integrity: sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==}
1602 | engines: {node: '>=0.10.0'}
1603 | dev: true
1604 |
1605 | /is-stream@2.0.1:
1606 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
1607 | engines: {node: '>=8'}
1608 | dev: true
1609 |
1610 | /is-typedarray@1.0.0:
1611 | resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
1612 | dev: true
1613 |
1614 | /is-utf8@0.2.1:
1615 | resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
1616 | dev: true
1617 |
1618 | /is-wsl@2.2.0:
1619 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
1620 | engines: {node: '>=8'}
1621 | dependencies:
1622 | is-docker: 2.2.1
1623 | dev: true
1624 |
1625 | /is-yarn-global@0.4.1:
1626 | resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
1627 | engines: {node: '>=12'}
1628 | dev: true
1629 |
1630 | /isarray@1.0.0:
1631 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
1632 | dev: true
1633 |
1634 | /isexe@1.1.2:
1635 | resolution: {integrity: sha512-d2eJzK691yZwPHcv1LbeAOa91yMJ9QmfTgSO1oXB65ezVhXQsxBac2vEB4bMVms9cGzaA99n6V2viHMq82VLDw==}
1636 | dev: true
1637 |
1638 | /isexe@2.0.0:
1639 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1640 | dev: true
1641 |
1642 | /isstream@0.1.2:
1643 | resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
1644 | dev: true
1645 |
1646 | /jackspeak@2.3.6:
1647 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
1648 | engines: {node: '>=14'}
1649 | dependencies:
1650 | '@isaacs/cliui': 8.0.2
1651 | optionalDependencies:
1652 | '@pkgjs/parseargs': 0.11.0
1653 | dev: true
1654 |
1655 | /jed@1.1.1:
1656 | resolution: {integrity: sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==}
1657 | dev: true
1658 |
1659 | /jose@4.13.1:
1660 | resolution: {integrity: sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==}
1661 | dev: true
1662 |
1663 | /js-tokens@4.0.0:
1664 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1665 | dev: true
1666 |
1667 | /js-yaml@4.1.0:
1668 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1669 | hasBin: true
1670 | dependencies:
1671 | argparse: 2.0.1
1672 | dev: true
1673 |
1674 | /jsbn@0.1.1:
1675 | resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
1676 | dev: true
1677 |
1678 | /json-buffer@3.0.1:
1679 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1680 | dev: true
1681 |
1682 | /json-merge-patch@1.0.2:
1683 | resolution: {integrity: sha512-M6Vp2GN9L7cfuMXiWOmHj9bEFbeC250iVtcKQbqVgEsDVYnIsrNsbU+h/Y/PkbBQCtEa4Bez+Ebv0zfbC8ObLg==}
1684 | dependencies:
1685 | fast-deep-equal: 3.1.3
1686 | dev: true
1687 |
1688 | /json-parse-even-better-errors@2.3.1:
1689 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
1690 | dev: true
1691 |
1692 | /json-schema-traverse@0.4.1:
1693 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1694 | dev: true
1695 |
1696 | /json-schema-traverse@1.0.0:
1697 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
1698 | dev: true
1699 |
1700 | /json-schema@0.4.0:
1701 | resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
1702 | dev: true
1703 |
1704 | /json-stable-stringify-without-jsonify@1.0.1:
1705 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1706 | dev: true
1707 |
1708 | /json-stringify-safe@5.0.1:
1709 | resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
1710 | dev: true
1711 |
1712 | /jsonfile@6.1.0:
1713 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
1714 | dependencies:
1715 | universalify: 2.0.1
1716 | optionalDependencies:
1717 | graceful-fs: 4.2.11
1718 | dev: true
1719 |
1720 | /jsonwebtoken@9.0.0:
1721 | resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==}
1722 | engines: {node: '>=12', npm: '>=6'}
1723 | dependencies:
1724 | jws: 3.2.2
1725 | lodash: 4.17.21
1726 | ms: 2.1.3
1727 | semver: 7.6.0
1728 | dev: true
1729 |
1730 | /jsprim@1.4.2:
1731 | resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==}
1732 | engines: {node: '>=0.6.0'}
1733 | dependencies:
1734 | assert-plus: 1.0.0
1735 | extsprintf: 1.3.0
1736 | json-schema: 0.4.0
1737 | verror: 1.10.0
1738 | dev: true
1739 |
1740 | /jszip@3.10.1:
1741 | resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
1742 | dependencies:
1743 | lie: 3.3.0
1744 | pako: 1.0.11
1745 | readable-stream: 2.3.8
1746 | setimmediate: 1.0.5
1747 | dev: true
1748 |
1749 | /jwa@1.4.1:
1750 | resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==}
1751 | dependencies:
1752 | buffer-equal-constant-time: 1.0.1
1753 | ecdsa-sig-formatter: 1.0.11
1754 | safe-buffer: 5.2.1
1755 | dev: true
1756 |
1757 | /jws@3.2.2:
1758 | resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
1759 | dependencies:
1760 | jwa: 1.4.1
1761 | safe-buffer: 5.2.1
1762 | dev: true
1763 |
1764 | /keyv@4.5.4:
1765 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1766 | dependencies:
1767 | json-buffer: 3.0.1
1768 | dev: true
1769 |
1770 | /latest-version@7.0.0:
1771 | resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==}
1772 | engines: {node: '>=14.16'}
1773 | dependencies:
1774 | package-json: 8.1.1
1775 | dev: true
1776 |
1777 | /lcid@3.1.1:
1778 | resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==}
1779 | engines: {node: '>=8'}
1780 | dependencies:
1781 | invert-kv: 3.0.1
1782 | dev: true
1783 |
1784 | /levn@0.4.1:
1785 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1786 | engines: {node: '>= 0.8.0'}
1787 | dependencies:
1788 | prelude-ls: 1.2.1
1789 | type-check: 0.4.0
1790 | dev: true
1791 |
1792 | /lie@3.3.0:
1793 | resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
1794 | dependencies:
1795 | immediate: 3.0.6
1796 | dev: true
1797 |
1798 | /lighthouse-logger@1.4.2:
1799 | resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==}
1800 | dependencies:
1801 | debug: 2.6.9
1802 | marky: 1.2.5
1803 | transitivePeerDependencies:
1804 | - supports-color
1805 | dev: true
1806 |
1807 | /lines-and-columns@2.0.4:
1808 | resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==}
1809 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1810 | dev: true
1811 |
1812 | /locate-path@6.0.0:
1813 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1814 | engines: {node: '>=10'}
1815 | dependencies:
1816 | p-locate: 5.0.0
1817 | dev: true
1818 |
1819 | /lodash.merge@4.6.2:
1820 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1821 | dev: true
1822 |
1823 | /lodash@4.17.21:
1824 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
1825 | dev: true
1826 |
1827 | /lowercase-keys@3.0.0:
1828 | resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
1829 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1830 | dev: true
1831 |
1832 | /lru-cache@10.2.0:
1833 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
1834 | engines: {node: 14 || >=16.14}
1835 | dev: true
1836 |
1837 | /lru-cache@6.0.0:
1838 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1839 | engines: {node: '>=10'}
1840 | dependencies:
1841 | yallist: 4.0.0
1842 | dev: true
1843 |
1844 | /make-error@1.3.6:
1845 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
1846 | dev: true
1847 |
1848 | /map-age-cleaner@0.1.3:
1849 | resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
1850 | engines: {node: '>=6'}
1851 | dependencies:
1852 | p-defer: 1.0.0
1853 | dev: true
1854 |
1855 | /marky@1.2.5:
1856 | resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==}
1857 | dev: true
1858 |
1859 | /mem@5.1.1:
1860 | resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==}
1861 | engines: {node: '>=8'}
1862 | dependencies:
1863 | map-age-cleaner: 0.1.3
1864 | mimic-fn: 2.1.0
1865 | p-is-promise: 2.1.0
1866 | dev: true
1867 |
1868 | /merge-stream@2.0.0:
1869 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
1870 | dev: true
1871 |
1872 | /mime-db@1.52.0:
1873 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
1874 | engines: {node: '>= 0.6'}
1875 | dev: true
1876 |
1877 | /mime-types@2.1.35:
1878 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
1879 | engines: {node: '>= 0.6'}
1880 | dependencies:
1881 | mime-db: 1.52.0
1882 | dev: true
1883 |
1884 | /mimic-fn@2.1.0:
1885 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
1886 | engines: {node: '>=6'}
1887 | dev: true
1888 |
1889 | /mimic-response@3.1.0:
1890 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
1891 | engines: {node: '>=10'}
1892 | dev: true
1893 |
1894 | /mimic-response@4.0.0:
1895 | resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
1896 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1897 | dev: true
1898 |
1899 | /minimatch@3.1.2:
1900 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1901 | dependencies:
1902 | brace-expansion: 1.1.11
1903 | dev: true
1904 |
1905 | /minimatch@9.0.3:
1906 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
1907 | engines: {node: '>=16 || 14 >=14.17'}
1908 | dependencies:
1909 | brace-expansion: 2.0.1
1910 | dev: true
1911 |
1912 | /minimist@1.2.8:
1913 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
1914 | dev: true
1915 |
1916 | /minipass@7.0.4:
1917 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
1918 | engines: {node: '>=16 || 14 >=14.17'}
1919 | dev: true
1920 |
1921 | /mkdirp@0.5.6:
1922 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
1923 | hasBin: true
1924 | requiresBuild: true
1925 | dependencies:
1926 | minimist: 1.2.8
1927 | dev: true
1928 | optional: true
1929 |
1930 | /mkdirp@1.0.4:
1931 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
1932 | engines: {node: '>=10'}
1933 | hasBin: true
1934 | dev: true
1935 |
1936 | /moment@2.30.1:
1937 | resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
1938 | requiresBuild: true
1939 | dev: true
1940 | optional: true
1941 |
1942 | /ms@2.0.0:
1943 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
1944 | dev: true
1945 |
1946 | /ms@2.1.2:
1947 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1948 | dev: true
1949 |
1950 | /ms@2.1.3:
1951 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1952 | dev: true
1953 |
1954 | /multimatch@6.0.0:
1955 | resolution: {integrity: sha512-I7tSVxHGPlmPN/enE3mS1aOSo6bWBfls+3HmuEeCUBCE7gWnm3cBXCBkpurzFjVRwC6Kld8lLaZ1Iv5vOcjvcQ==}
1956 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1957 | dependencies:
1958 | '@types/minimatch': 3.0.5
1959 | array-differ: 4.0.0
1960 | array-union: 3.0.1
1961 | minimatch: 3.1.2
1962 | dev: true
1963 |
1964 | /mv@2.1.1:
1965 | resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==}
1966 | engines: {node: '>=0.8.0'}
1967 | requiresBuild: true
1968 | dependencies:
1969 | mkdirp: 0.5.6
1970 | ncp: 2.0.0
1971 | rimraf: 2.4.5
1972 | dev: true
1973 | optional: true
1974 |
1975 | /mz@2.7.0:
1976 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1977 | dependencies:
1978 | any-promise: 1.3.0
1979 | object-assign: 4.1.1
1980 | thenify-all: 1.6.0
1981 | dev: true
1982 |
1983 | /nan@2.19.0:
1984 | resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==}
1985 | requiresBuild: true
1986 | dev: true
1987 | optional: true
1988 |
1989 | /nanoid@3.3.7:
1990 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
1991 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1992 | hasBin: true
1993 | dev: true
1994 |
1995 | /natural-compare@1.4.0:
1996 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1997 | dev: true
1998 |
1999 | /ncp@2.0.0:
2000 | resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==}
2001 | hasBin: true
2002 | requiresBuild: true
2003 | dev: true
2004 | optional: true
2005 |
2006 | /node-domexception@1.0.0:
2007 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
2008 | engines: {node: '>=10.5.0'}
2009 | dev: true
2010 |
2011 | /node-fetch@3.3.1:
2012 | resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==}
2013 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2014 | dependencies:
2015 | data-uri-to-buffer: 4.0.1
2016 | fetch-blob: 3.2.0
2017 | formdata-polyfill: 4.0.10
2018 | dev: true
2019 |
2020 | /node-forge@1.3.1:
2021 | resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
2022 | engines: {node: '>= 6.13.0'}
2023 | dev: true
2024 |
2025 | /node-notifier@10.0.1:
2026 | resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==}
2027 | dependencies:
2028 | growly: 1.3.0
2029 | is-wsl: 2.2.0
2030 | semver: 7.6.0
2031 | shellwords: 0.1.1
2032 | uuid: 8.3.2
2033 | which: 2.0.2
2034 | dev: true
2035 |
2036 | /normalize-url@8.0.1:
2037 | resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
2038 | engines: {node: '>=14.16'}
2039 | dev: true
2040 |
2041 | /npm-run-path@4.0.1:
2042 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
2043 | engines: {node: '>=8'}
2044 | dependencies:
2045 | path-key: 3.1.1
2046 | dev: true
2047 |
2048 | /nth-check@2.1.1:
2049 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
2050 | dependencies:
2051 | boolbase: 1.0.0
2052 | dev: true
2053 |
2054 | /oauth-sign@0.9.0:
2055 | resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==}
2056 | dev: true
2057 |
2058 | /object-assign@4.1.1:
2059 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
2060 | engines: {node: '>=0.10.0'}
2061 | dev: true
2062 |
2063 | /on-exit-leak-free@2.1.2:
2064 | resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
2065 | engines: {node: '>=14.0.0'}
2066 | dev: true
2067 |
2068 | /once@1.4.0:
2069 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
2070 | dependencies:
2071 | wrappy: 1.0.2
2072 | dev: true
2073 |
2074 | /onetime@5.1.2:
2075 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
2076 | engines: {node: '>=6'}
2077 | dependencies:
2078 | mimic-fn: 2.1.0
2079 | dev: true
2080 |
2081 | /open@8.4.2:
2082 | resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
2083 | engines: {node: '>=12'}
2084 | dependencies:
2085 | define-lazy-prop: 2.0.0
2086 | is-docker: 2.2.1
2087 | is-wsl: 2.2.0
2088 | dev: true
2089 |
2090 | /optionator@0.9.3:
2091 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
2092 | engines: {node: '>= 0.8.0'}
2093 | dependencies:
2094 | '@aashutoshrathi/word-wrap': 1.2.6
2095 | deep-is: 0.1.4
2096 | fast-levenshtein: 2.0.6
2097 | levn: 0.4.1
2098 | prelude-ls: 1.2.1
2099 | type-check: 0.4.0
2100 | dev: true
2101 |
2102 | /os-locale@5.0.0:
2103 | resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==}
2104 | engines: {node: '>=10'}
2105 | dependencies:
2106 | execa: 4.1.0
2107 | lcid: 3.1.1
2108 | mem: 5.1.1
2109 | dev: true
2110 |
2111 | /os-shim@0.1.3:
2112 | resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==}
2113 | engines: {node: '>= 0.4.0'}
2114 | dev: true
2115 |
2116 | /p-cancelable@3.0.0:
2117 | resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
2118 | engines: {node: '>=12.20'}
2119 | dev: true
2120 |
2121 | /p-defer@1.0.0:
2122 | resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
2123 | engines: {node: '>=4'}
2124 | dev: true
2125 |
2126 | /p-is-promise@2.1.0:
2127 | resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==}
2128 | engines: {node: '>=6'}
2129 | dev: true
2130 |
2131 | /p-limit@3.1.0:
2132 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
2133 | engines: {node: '>=10'}
2134 | dependencies:
2135 | yocto-queue: 0.1.0
2136 | dev: true
2137 |
2138 | /p-locate@5.0.0:
2139 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
2140 | engines: {node: '>=10'}
2141 | dependencies:
2142 | p-limit: 3.1.0
2143 | dev: true
2144 |
2145 | /package-json@8.1.1:
2146 | resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
2147 | engines: {node: '>=14.16'}
2148 | dependencies:
2149 | got: 12.6.1
2150 | registry-auth-token: 5.0.2
2151 | registry-url: 6.0.1
2152 | semver: 7.6.0
2153 | dev: true
2154 |
2155 | /pako@1.0.11:
2156 | resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
2157 | dev: true
2158 |
2159 | /parent-module@1.0.1:
2160 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
2161 | engines: {node: '>=6'}
2162 | dependencies:
2163 | callsites: 3.1.0
2164 | dev: true
2165 |
2166 | /parse-json@6.0.2:
2167 | resolution: {integrity: sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==}
2168 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2169 | dependencies:
2170 | '@babel/code-frame': 7.24.2
2171 | error-ex: 1.3.2
2172 | json-parse-even-better-errors: 2.3.1
2173 | lines-and-columns: 2.0.4
2174 | dev: true
2175 |
2176 | /parse5-htmlparser2-tree-adapter@7.0.0:
2177 | resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
2178 | dependencies:
2179 | domhandler: 5.0.3
2180 | parse5: 7.1.2
2181 | dev: true
2182 |
2183 | /parse5@7.1.2:
2184 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
2185 | dependencies:
2186 | entities: 4.5.0
2187 | dev: true
2188 |
2189 | /path-exists@4.0.0:
2190 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
2191 | engines: {node: '>=8'}
2192 | dev: true
2193 |
2194 | /path-is-absolute@1.0.1:
2195 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
2196 | engines: {node: '>=0.10.0'}
2197 | dev: true
2198 |
2199 | /path-key@3.1.1:
2200 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
2201 | engines: {node: '>=8'}
2202 | dev: true
2203 |
2204 | /path-scurry@1.10.1:
2205 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
2206 | engines: {node: '>=16 || 14 >=14.17'}
2207 | dependencies:
2208 | lru-cache: 10.2.0
2209 | minipass: 7.0.4
2210 | dev: true
2211 |
2212 | /pend@1.2.0:
2213 | resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
2214 | dev: true
2215 |
2216 | /performance-now@2.1.0:
2217 | resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
2218 | dev: true
2219 |
2220 | /picocolors@1.0.0:
2221 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
2222 | dev: true
2223 |
2224 | /pino-abstract-transport@1.1.0:
2225 | resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==}
2226 | dependencies:
2227 | readable-stream: 4.5.2
2228 | split2: 4.2.0
2229 | dev: true
2230 |
2231 | /pino-std-serializers@6.2.2:
2232 | resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==}
2233 | dev: true
2234 |
2235 | /pino@8.17.2:
2236 | resolution: {integrity: sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==}
2237 | hasBin: true
2238 | dependencies:
2239 | atomic-sleep: 1.0.0
2240 | fast-redact: 3.5.0
2241 | on-exit-leak-free: 2.1.2
2242 | pino-abstract-transport: 1.1.0
2243 | pino-std-serializers: 6.2.2
2244 | process-warning: 3.0.0
2245 | quick-format-unescaped: 4.0.4
2246 | real-require: 0.2.0
2247 | safe-stable-stringify: 2.4.3
2248 | sonic-boom: 3.8.0
2249 | thread-stream: 2.4.1
2250 | dev: true
2251 |
2252 | /postcss@8.4.33:
2253 | resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
2254 | engines: {node: ^10 || ^12 || >=14}
2255 | dependencies:
2256 | nanoid: 3.3.7
2257 | picocolors: 1.0.0
2258 | source-map-js: 1.2.0
2259 | dev: true
2260 |
2261 | /prelude-ls@1.2.1:
2262 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
2263 | engines: {node: '>= 0.8.0'}
2264 | dev: true
2265 |
2266 | /prettier@3.2.5:
2267 | resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
2268 | engines: {node: '>=14'}
2269 | hasBin: true
2270 | dev: true
2271 |
2272 | /process-nextick-args@2.0.1:
2273 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
2274 | dev: true
2275 |
2276 | /process-warning@3.0.0:
2277 | resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
2278 | dev: true
2279 |
2280 | /process@0.11.10:
2281 | resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
2282 | engines: {node: '>= 0.6.0'}
2283 | dev: true
2284 |
2285 | /promise-toolbox@0.21.0:
2286 | resolution: {integrity: sha512-NV8aTmpwrZv+Iys54sSFOBx3tuVaOBvvrft5PNppnxy9xpU/akHbaWIril22AB22zaPgrgwKdD0KsrM0ptUtpg==}
2287 | engines: {node: '>=6'}
2288 | dependencies:
2289 | make-error: 1.3.6
2290 | dev: true
2291 |
2292 | /proto-list@1.2.4:
2293 | resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
2294 | dev: true
2295 |
2296 | /psl@1.9.0:
2297 | resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
2298 | dev: true
2299 |
2300 | /pump@3.0.0:
2301 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
2302 | dependencies:
2303 | end-of-stream: 1.4.4
2304 | once: 1.4.0
2305 | dev: true
2306 |
2307 | /punycode@2.3.1:
2308 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
2309 | engines: {node: '>=6'}
2310 | dev: true
2311 |
2312 | /pupa@3.1.0:
2313 | resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
2314 | engines: {node: '>=12.20'}
2315 | dependencies:
2316 | escape-goat: 4.0.0
2317 | dev: true
2318 |
2319 | /qs@6.5.3:
2320 | resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==}
2321 | engines: {node: '>=0.6'}
2322 | dev: true
2323 |
2324 | /queue-microtask@1.2.3:
2325 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
2326 | dev: true
2327 |
2328 | /queue@6.0.2:
2329 | resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
2330 | dependencies:
2331 | inherits: 2.0.4
2332 | dev: true
2333 |
2334 | /quick-format-unescaped@4.0.4:
2335 | resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
2336 | dev: true
2337 |
2338 | /quick-lru@5.1.1:
2339 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
2340 | engines: {node: '>=10'}
2341 | dev: true
2342 |
2343 | /rc@1.2.8:
2344 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
2345 | hasBin: true
2346 | dependencies:
2347 | deep-extend: 0.6.0
2348 | ini: 1.3.8
2349 | minimist: 1.2.8
2350 | strip-json-comments: 2.0.1
2351 | dev: true
2352 |
2353 | /readable-stream@2.3.8:
2354 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
2355 | dependencies:
2356 | core-util-is: 1.0.3
2357 | inherits: 2.0.4
2358 | isarray: 1.0.0
2359 | process-nextick-args: 2.0.1
2360 | safe-buffer: 5.1.2
2361 | string_decoder: 1.1.1
2362 | util-deprecate: 1.0.2
2363 | dev: true
2364 |
2365 | /readable-stream@4.5.2:
2366 | resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
2367 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2368 | dependencies:
2369 | abort-controller: 3.0.0
2370 | buffer: 6.0.3
2371 | events: 3.3.0
2372 | process: 0.11.10
2373 | string_decoder: 1.3.0
2374 | dev: true
2375 |
2376 | /real-require@0.2.0:
2377 | resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
2378 | engines: {node: '>= 12.13.0'}
2379 | dev: true
2380 |
2381 | /regenerator-runtime@0.13.11:
2382 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
2383 | dev: true
2384 |
2385 | /registry-auth-token@5.0.2:
2386 | resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==}
2387 | engines: {node: '>=14'}
2388 | dependencies:
2389 | '@pnpm/npm-conf': 2.2.2
2390 | dev: true
2391 |
2392 | /registry-url@6.0.1:
2393 | resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
2394 | engines: {node: '>=12'}
2395 | dependencies:
2396 | rc: 1.2.8
2397 | dev: true
2398 |
2399 | /relaxed-json@1.0.3:
2400 | resolution: {integrity: sha512-b7wGPo7o2KE/g7SqkJDDbav6zmrEeP4TK2VpITU72J/M949TLe/23y/ZHJo+pskcGM52xIfFoT9hydwmgr1AEg==}
2401 | engines: {node: '>= 0.10.0'}
2402 | hasBin: true
2403 | dependencies:
2404 | chalk: 2.4.2
2405 | commander: 2.20.3
2406 | dev: true
2407 |
2408 | /request@2.88.2:
2409 | resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==}
2410 | engines: {node: '>= 6'}
2411 | deprecated: request has been deprecated, see https://github.com/request/request/issues/3142
2412 | dependencies:
2413 | aws-sign2: 0.7.0
2414 | aws4: 1.12.0
2415 | caseless: 0.12.0
2416 | combined-stream: 1.0.8
2417 | extend: 3.0.2
2418 | forever-agent: 0.6.1
2419 | form-data: 2.3.3
2420 | har-validator: 5.1.5
2421 | http-signature: 1.2.0
2422 | is-typedarray: 1.0.0
2423 | isstream: 0.1.2
2424 | json-stringify-safe: 5.0.1
2425 | mime-types: 2.1.35
2426 | oauth-sign: 0.9.0
2427 | performance-now: 2.1.0
2428 | qs: 6.5.3
2429 | safe-buffer: 5.2.1
2430 | tough-cookie: 2.5.0
2431 | tunnel-agent: 0.6.0
2432 | uuid: 3.4.0
2433 | dev: true
2434 |
2435 | /require-directory@2.1.1:
2436 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
2437 | engines: {node: '>=0.10.0'}
2438 | dev: true
2439 |
2440 | /require-from-string@2.0.2:
2441 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
2442 | engines: {node: '>=0.10.0'}
2443 | dev: true
2444 |
2445 | /resolve-alpn@1.2.1:
2446 | resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
2447 | dev: true
2448 |
2449 | /resolve-from@4.0.0:
2450 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
2451 | engines: {node: '>=4'}
2452 | dev: true
2453 |
2454 | /responselike@3.0.0:
2455 | resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
2456 | engines: {node: '>=14.16'}
2457 | dependencies:
2458 | lowercase-keys: 3.0.0
2459 | dev: true
2460 |
2461 | /reusify@1.0.4:
2462 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
2463 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
2464 | dev: true
2465 |
2466 | /rimraf@2.4.5:
2467 | resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==}
2468 | hasBin: true
2469 | requiresBuild: true
2470 | dependencies:
2471 | glob: 6.0.4
2472 | dev: true
2473 | optional: true
2474 |
2475 | /rimraf@3.0.2:
2476 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
2477 | hasBin: true
2478 | dependencies:
2479 | glob: 7.2.3
2480 | dev: true
2481 |
2482 | /run-parallel@1.2.0:
2483 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2484 | dependencies:
2485 | queue-microtask: 1.2.3
2486 | dev: true
2487 |
2488 | /safe-buffer@5.1.2:
2489 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
2490 | dev: true
2491 |
2492 | /safe-buffer@5.2.1:
2493 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
2494 | dev: true
2495 |
2496 | /safe-json-stringify@1.2.0:
2497 | resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==}
2498 | requiresBuild: true
2499 | dev: true
2500 | optional: true
2501 |
2502 | /safe-stable-stringify@2.4.3:
2503 | resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
2504 | engines: {node: '>=10'}
2505 | dev: true
2506 |
2507 | /safer-buffer@2.1.2:
2508 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
2509 | dev: true
2510 |
2511 | /sax@1.3.0:
2512 | resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
2513 | dev: true
2514 |
2515 | /semver-diff@4.0.0:
2516 | resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
2517 | engines: {node: '>=12'}
2518 | dependencies:
2519 | semver: 7.6.0
2520 | dev: true
2521 |
2522 | /semver@7.5.4:
2523 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
2524 | engines: {node: '>=10'}
2525 | hasBin: true
2526 | dependencies:
2527 | lru-cache: 6.0.0
2528 | dev: true
2529 |
2530 | /semver@7.6.0:
2531 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
2532 | engines: {node: '>=10'}
2533 | hasBin: true
2534 | dependencies:
2535 | lru-cache: 6.0.0
2536 | dev: true
2537 |
2538 | /setimmediate@1.0.5:
2539 | resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
2540 | dev: true
2541 |
2542 | /sha.js@2.4.11:
2543 | resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==}
2544 | hasBin: true
2545 | dependencies:
2546 | inherits: 2.0.4
2547 | safe-buffer: 5.2.1
2548 | dev: true
2549 |
2550 | /shebang-command@2.0.0:
2551 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
2552 | engines: {node: '>=8'}
2553 | dependencies:
2554 | shebang-regex: 3.0.0
2555 | dev: true
2556 |
2557 | /shebang-regex@3.0.0:
2558 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
2559 | engines: {node: '>=8'}
2560 | dev: true
2561 |
2562 | /shell-quote@1.7.3:
2563 | resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==}
2564 | dev: true
2565 |
2566 | /shellwords@0.1.1:
2567 | resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==}
2568 | dev: true
2569 |
2570 | /sign-addon@5.3.0:
2571 | resolution: {integrity: sha512-7nHlCzhQgVMLBNiXVEgbG/raq48awOW0lYMN5uo1BaB3mp0+k8M8pvDwbfTlr3apcxZJsk9HQsAW1POwoJugpQ==}
2572 | deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
2573 | dependencies:
2574 | common-tags: 1.8.2
2575 | core-js: 3.29.0
2576 | deepcopy: 2.1.0
2577 | es6-error: 4.1.1
2578 | es6-promisify: 7.0.0
2579 | jsonwebtoken: 9.0.0
2580 | mz: 2.7.0
2581 | request: 2.88.2
2582 | source-map-support: 0.5.21
2583 | stream-to-promise: 3.0.0
2584 | dev: true
2585 |
2586 | /signal-exit@3.0.7:
2587 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
2588 | dev: true
2589 |
2590 | /signal-exit@4.1.0:
2591 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
2592 | engines: {node: '>=14'}
2593 | dev: true
2594 |
2595 | /sonic-boom@3.8.0:
2596 | resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==}
2597 | dependencies:
2598 | atomic-sleep: 1.0.0
2599 | dev: true
2600 |
2601 | /source-map-js@1.2.0:
2602 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
2603 | engines: {node: '>=0.10.0'}
2604 | dev: true
2605 |
2606 | /source-map-support@0.5.21:
2607 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
2608 | dependencies:
2609 | buffer-from: 1.1.2
2610 | source-map: 0.6.1
2611 | dev: true
2612 |
2613 | /source-map@0.6.1:
2614 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
2615 | engines: {node: '>=0.10.0'}
2616 | dev: true
2617 |
2618 | /spawn-sync@1.0.15:
2619 | resolution: {integrity: sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==}
2620 | requiresBuild: true
2621 | dependencies:
2622 | concat-stream: 1.6.2
2623 | os-shim: 0.1.3
2624 | dev: true
2625 |
2626 | /split2@4.2.0:
2627 | resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
2628 | engines: {node: '>= 10.x'}
2629 | dev: true
2630 |
2631 | /split@1.0.1:
2632 | resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==}
2633 | dependencies:
2634 | through: 2.3.8
2635 | dev: true
2636 |
2637 | /sshpk@1.18.0:
2638 | resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==}
2639 | engines: {node: '>=0.10.0'}
2640 | hasBin: true
2641 | dependencies:
2642 | asn1: 0.2.6
2643 | assert-plus: 1.0.0
2644 | bcrypt-pbkdf: 1.0.2
2645 | dashdash: 1.14.1
2646 | ecc-jsbn: 0.1.2
2647 | getpass: 0.1.7
2648 | jsbn: 0.1.1
2649 | safer-buffer: 2.1.2
2650 | tweetnacl: 0.14.5
2651 | dev: true
2652 |
2653 | /stream-to-array@2.3.0:
2654 | resolution: {integrity: sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==}
2655 | dependencies:
2656 | any-promise: 1.3.0
2657 | dev: true
2658 |
2659 | /stream-to-promise@3.0.0:
2660 | resolution: {integrity: sha512-h+7wLeFiYegOdgTfTxjRsrT7/Op7grnKEIHWgaO1RTHwcwk7xRreMr3S8XpDfDMesSxzgM2V4CxNCFAGo6ssnA==}
2661 | engines: {node: '>= 10'}
2662 | dependencies:
2663 | any-promise: 1.3.0
2664 | end-of-stream: 1.4.4
2665 | stream-to-array: 2.3.0
2666 | dev: true
2667 |
2668 | /string-width@4.2.3:
2669 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
2670 | engines: {node: '>=8'}
2671 | dependencies:
2672 | emoji-regex: 8.0.0
2673 | is-fullwidth-code-point: 3.0.0
2674 | strip-ansi: 6.0.1
2675 | dev: true
2676 |
2677 | /string-width@5.1.2:
2678 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
2679 | engines: {node: '>=12'}
2680 | dependencies:
2681 | eastasianwidth: 0.2.0
2682 | emoji-regex: 9.2.2
2683 | strip-ansi: 7.1.0
2684 | dev: true
2685 |
2686 | /string_decoder@1.1.1:
2687 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
2688 | dependencies:
2689 | safe-buffer: 5.1.2
2690 | dev: true
2691 |
2692 | /string_decoder@1.3.0:
2693 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
2694 | dependencies:
2695 | safe-buffer: 5.2.1
2696 | dev: true
2697 |
2698 | /strip-ansi@6.0.1:
2699 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
2700 | engines: {node: '>=8'}
2701 | dependencies:
2702 | ansi-regex: 5.0.1
2703 | dev: true
2704 |
2705 | /strip-ansi@7.1.0:
2706 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
2707 | engines: {node: '>=12'}
2708 | dependencies:
2709 | ansi-regex: 6.0.1
2710 | dev: true
2711 |
2712 | /strip-bom-buf@2.0.0:
2713 | resolution: {integrity: sha512-gLFNHucd6gzb8jMsl5QmZ3QgnUJmp7qn4uUSHNwEXumAp7YizoGYw19ZUVfuq4aBOQUtyn2k8X/CwzWB73W2lQ==}
2714 | engines: {node: '>=8'}
2715 | dependencies:
2716 | is-utf8: 0.2.1
2717 | dev: true
2718 |
2719 | /strip-bom-stream@4.0.0:
2720 | resolution: {integrity: sha512-0ApK3iAkHv6WbgLICw/J4nhwHeDZsBxIIsOD+gHgZICL6SeJ0S9f/WZqemka9cjkTyMN5geId6e8U5WGFAn3cQ==}
2721 | engines: {node: '>=8'}
2722 | dependencies:
2723 | first-chunk-stream: 3.0.0
2724 | strip-bom-buf: 2.0.0
2725 | dev: true
2726 |
2727 | /strip-bom@5.0.0:
2728 | resolution: {integrity: sha512-p+byADHF7SzEcVnLvc/r3uognM1hUhObuHXxJcgLCfD194XAkaLbjq3Wzb0N5G2tgIjH0dgT708Z51QxMeu60A==}
2729 | engines: {node: '>=12'}
2730 | dev: true
2731 |
2732 | /strip-final-newline@2.0.0:
2733 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
2734 | engines: {node: '>=6'}
2735 | dev: true
2736 |
2737 | /strip-json-comments@2.0.1:
2738 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
2739 | engines: {node: '>=0.10.0'}
2740 | dev: true
2741 |
2742 | /strip-json-comments@3.1.1:
2743 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
2744 | engines: {node: '>=8'}
2745 | dev: true
2746 |
2747 | /strip-json-comments@5.0.0:
2748 | resolution: {integrity: sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==}
2749 | engines: {node: '>=14.16'}
2750 | dev: true
2751 |
2752 | /supports-color@5.5.0:
2753 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
2754 | engines: {node: '>=4'}
2755 | dependencies:
2756 | has-flag: 3.0.0
2757 | dev: true
2758 |
2759 | /supports-color@7.2.0:
2760 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
2761 | engines: {node: '>=8'}
2762 | dependencies:
2763 | has-flag: 4.0.0
2764 | dev: true
2765 |
2766 | /text-table@0.2.0:
2767 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
2768 | dev: true
2769 |
2770 | /thenify-all@1.6.0:
2771 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
2772 | engines: {node: '>=0.8'}
2773 | dependencies:
2774 | thenify: 3.3.1
2775 | dev: true
2776 |
2777 | /thenify@3.3.1:
2778 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
2779 | dependencies:
2780 | any-promise: 1.3.0
2781 | dev: true
2782 |
2783 | /thread-stream@2.4.1:
2784 | resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==}
2785 | dependencies:
2786 | real-require: 0.2.0
2787 | dev: true
2788 |
2789 | /through@2.3.8:
2790 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
2791 | dev: true
2792 |
2793 | /tmp@0.2.1:
2794 | resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==}
2795 | engines: {node: '>=8.17.0'}
2796 | dependencies:
2797 | rimraf: 3.0.2
2798 | dev: true
2799 |
2800 | /tosource@1.0.0:
2801 | resolution: {integrity: sha512-N6g8eQ1eerw6Y1pBhdgkubWIiPFwXa2POSUrlL8jth5CyyEWNWzoGKRkO3CaO7Jx27hlJP54muB3btIAbx4MPg==}
2802 | engines: {node: '>=0.4.0'}
2803 | dev: true
2804 |
2805 | /tough-cookie@2.5.0:
2806 | resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==}
2807 | engines: {node: '>=0.8'}
2808 | dependencies:
2809 | psl: 1.9.0
2810 | punycode: 2.3.1
2811 | dev: true
2812 |
2813 | /tunnel-agent@0.6.0:
2814 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
2815 | dependencies:
2816 | safe-buffer: 5.2.1
2817 | dev: true
2818 |
2819 | /tweetnacl@0.14.5:
2820 | resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==}
2821 | dev: true
2822 |
2823 | /type-check@0.4.0:
2824 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
2825 | engines: {node: '>= 0.8.0'}
2826 | dependencies:
2827 | prelude-ls: 1.2.1
2828 | dev: true
2829 |
2830 | /type-detect@4.0.8:
2831 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
2832 | engines: {node: '>=4'}
2833 | dev: true
2834 |
2835 | /type-fest@0.20.2:
2836 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
2837 | engines: {node: '>=10'}
2838 | dev: true
2839 |
2840 | /type-fest@1.4.0:
2841 | resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
2842 | engines: {node: '>=10'}
2843 | dev: true
2844 |
2845 | /type-fest@2.19.0:
2846 | resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
2847 | engines: {node: '>=12.20'}
2848 | dev: true
2849 |
2850 | /typedarray-to-buffer@3.1.5:
2851 | resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
2852 | dependencies:
2853 | is-typedarray: 1.0.0
2854 | dev: true
2855 |
2856 | /typedarray@0.0.6:
2857 | resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
2858 | dev: true
2859 |
2860 | /undici-types@5.26.5:
2861 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
2862 | dev: true
2863 |
2864 | /unique-string@3.0.0:
2865 | resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
2866 | engines: {node: '>=12'}
2867 | dependencies:
2868 | crypto-random-string: 4.0.0
2869 | dev: true
2870 |
2871 | /universalify@1.0.0:
2872 | resolution: {integrity: sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==}
2873 | engines: {node: '>= 10.0.0'}
2874 | dev: true
2875 |
2876 | /universalify@2.0.1:
2877 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
2878 | engines: {node: '>= 10.0.0'}
2879 | dev: true
2880 |
2881 | /upath@2.0.1:
2882 | resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
2883 | engines: {node: '>=4'}
2884 | dev: true
2885 |
2886 | /update-notifier@6.0.2:
2887 | resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
2888 | engines: {node: '>=14.16'}
2889 | dependencies:
2890 | boxen: 7.1.1
2891 | chalk: 5.3.0
2892 | configstore: 6.0.0
2893 | has-yarn: 3.0.0
2894 | import-lazy: 4.0.0
2895 | is-ci: 3.0.1
2896 | is-installed-globally: 0.4.0
2897 | is-npm: 6.0.0
2898 | is-yarn-global: 0.4.1
2899 | latest-version: 7.0.0
2900 | pupa: 3.1.0
2901 | semver: 7.6.0
2902 | semver-diff: 4.0.0
2903 | xdg-basedir: 5.1.0
2904 | dev: true
2905 |
2906 | /uri-js@4.4.1:
2907 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
2908 | dependencies:
2909 | punycode: 2.3.1
2910 | dev: true
2911 |
2912 | /util-deprecate@1.0.2:
2913 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
2914 | dev: true
2915 |
2916 | /uuid@3.4.0:
2917 | resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
2918 | 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.
2919 | hasBin: true
2920 | dev: true
2921 |
2922 | /uuid@8.3.2:
2923 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
2924 | hasBin: true
2925 | dev: true
2926 |
2927 | /verror@1.10.0:
2928 | resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==}
2929 | engines: {'0': node >=0.6.0}
2930 | dependencies:
2931 | assert-plus: 1.0.0
2932 | core-util-is: 1.0.2
2933 | extsprintf: 1.3.0
2934 | dev: true
2935 |
2936 | /watchpack@2.4.0:
2937 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
2938 | engines: {node: '>=10.13.0'}
2939 | dependencies:
2940 | glob-to-regexp: 0.4.1
2941 | graceful-fs: 4.2.11
2942 | dev: true
2943 |
2944 | /wcwidth@1.0.1:
2945 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
2946 | dependencies:
2947 | defaults: 1.0.4
2948 | dev: true
2949 |
2950 | /web-ext@7.11.0:
2951 | resolution: {integrity: sha512-EG6YXHITNDJB/h6Rc5FF08eMoN45sZPBBIIlEraBzxJ0RdJZ8Z3xvUUawbDwt+mowfv9X0XRWlLSwdWbRKgojg==}
2952 | engines: {node: '>=14.0.0', npm: '>=6.9.0'}
2953 | hasBin: true
2954 | dependencies:
2955 | '@babel/runtime': 7.21.0
2956 | '@devicefarmer/adbkit': 3.2.3
2957 | addons-linter: 6.21.0(node-fetch@3.3.1)
2958 | bunyan: 1.8.15
2959 | camelcase: 7.0.1
2960 | chrome-launcher: 0.15.1
2961 | debounce: 1.2.1
2962 | decamelize: 6.0.0
2963 | es6-error: 4.1.1
2964 | firefox-profile: 4.3.2
2965 | fs-extra: 11.1.0
2966 | fx-runner: 1.4.0
2967 | import-fresh: 3.3.0
2968 | jose: 4.13.1
2969 | mkdirp: 1.0.4
2970 | multimatch: 6.0.0
2971 | mz: 2.7.0
2972 | node-fetch: 3.3.1
2973 | node-notifier: 10.0.1
2974 | open: 8.4.2
2975 | parse-json: 6.0.2
2976 | promise-toolbox: 0.21.0
2977 | sign-addon: 5.3.0
2978 | source-map-support: 0.5.21
2979 | strip-bom: 5.0.0
2980 | strip-json-comments: 5.0.0
2981 | tmp: 0.2.1
2982 | update-notifier: 6.0.2
2983 | watchpack: 2.4.0
2984 | ws: 8.13.0
2985 | yargs: 17.7.1
2986 | zip-dir: 2.0.0
2987 | transitivePeerDependencies:
2988 | - body-parser
2989 | - bufferutil
2990 | - express
2991 | - safe-compare
2992 | - supports-color
2993 | - utf-8-validate
2994 | dev: true
2995 |
2996 | /web-streams-polyfill@3.3.3:
2997 | resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
2998 | engines: {node: '>= 8'}
2999 | dev: true
3000 |
3001 | /when@3.7.7:
3002 | resolution: {integrity: sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==}
3003 | dev: true
3004 |
3005 | /which@1.2.4:
3006 | resolution: {integrity: sha512-zDRAqDSBudazdfM9zpiI30Fu9ve47htYXcGi3ln0wfKu2a7SmrT6F3VDoYONu//48V8Vz4TdCRNPjtvyRO3yBA==}
3007 | hasBin: true
3008 | dependencies:
3009 | is-absolute: 0.1.7
3010 | isexe: 1.1.2
3011 | dev: true
3012 |
3013 | /which@2.0.2:
3014 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
3015 | engines: {node: '>= 8'}
3016 | hasBin: true
3017 | dependencies:
3018 | isexe: 2.0.0
3019 | dev: true
3020 |
3021 | /widest-line@4.0.1:
3022 | resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
3023 | engines: {node: '>=12'}
3024 | dependencies:
3025 | string-width: 5.1.2
3026 | dev: true
3027 |
3028 | /winreg@0.0.12:
3029 | resolution: {integrity: sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==}
3030 | dev: true
3031 |
3032 | /wrap-ansi@7.0.0:
3033 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
3034 | engines: {node: '>=10'}
3035 | dependencies:
3036 | ansi-styles: 4.3.0
3037 | string-width: 4.2.3
3038 | strip-ansi: 6.0.1
3039 | dev: true
3040 |
3041 | /wrap-ansi@8.1.0:
3042 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
3043 | engines: {node: '>=12'}
3044 | dependencies:
3045 | ansi-styles: 6.2.1
3046 | string-width: 5.1.2
3047 | strip-ansi: 7.1.0
3048 | dev: true
3049 |
3050 | /wrappy@1.0.2:
3051 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
3052 | dev: true
3053 |
3054 | /write-file-atomic@3.0.3:
3055 | resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
3056 | dependencies:
3057 | imurmurhash: 0.1.4
3058 | is-typedarray: 1.0.0
3059 | signal-exit: 3.0.7
3060 | typedarray-to-buffer: 3.1.5
3061 | dev: true
3062 |
3063 | /ws@8.13.0:
3064 | resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
3065 | engines: {node: '>=10.0.0'}
3066 | peerDependencies:
3067 | bufferutil: ^4.0.1
3068 | utf-8-validate: '>=5.0.2'
3069 | peerDependenciesMeta:
3070 | bufferutil:
3071 | optional: true
3072 | utf-8-validate:
3073 | optional: true
3074 | dev: true
3075 |
3076 | /xdg-basedir@5.1.0:
3077 | resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
3078 | engines: {node: '>=12'}
3079 | dev: true
3080 |
3081 | /xml2js@0.5.0:
3082 | resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==}
3083 | engines: {node: '>=4.0.0'}
3084 | dependencies:
3085 | sax: 1.3.0
3086 | xmlbuilder: 11.0.1
3087 | dev: true
3088 |
3089 | /xmlbuilder@11.0.1:
3090 | resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
3091 | engines: {node: '>=4.0'}
3092 | dev: true
3093 |
3094 | /y18n@5.0.8:
3095 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
3096 | engines: {node: '>=10'}
3097 | dev: true
3098 |
3099 | /yallist@4.0.0:
3100 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
3101 | dev: true
3102 |
3103 | /yargs-parser@21.1.1:
3104 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
3105 | engines: {node: '>=12'}
3106 | dev: true
3107 |
3108 | /yargs@17.7.1:
3109 | resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==}
3110 | engines: {node: '>=12'}
3111 | dependencies:
3112 | cliui: 8.0.1
3113 | escalade: 3.1.2
3114 | get-caller-file: 2.0.5
3115 | require-directory: 2.1.1
3116 | string-width: 4.2.3
3117 | y18n: 5.0.8
3118 | yargs-parser: 21.1.1
3119 | dev: true
3120 |
3121 | /yargs@17.7.2:
3122 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
3123 | engines: {node: '>=12'}
3124 | dependencies:
3125 | cliui: 8.0.1
3126 | escalade: 3.1.2
3127 | get-caller-file: 2.0.5
3128 | require-directory: 2.1.1
3129 | string-width: 4.2.3
3130 | y18n: 5.0.8
3131 | yargs-parser: 21.1.1
3132 | dev: true
3133 |
3134 | /yauzl@2.10.0:
3135 | resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
3136 | dependencies:
3137 | buffer-crc32: 0.2.13
3138 | fd-slicer: 1.1.0
3139 | dev: true
3140 |
3141 | /yocto-queue@0.1.0:
3142 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
3143 | engines: {node: '>=10'}
3144 | dev: true
3145 |
3146 | /zip-dir@2.0.0:
3147 | resolution: {integrity: sha512-uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==}
3148 | dependencies:
3149 | async: 3.2.5
3150 | jszip: 3.10.1
3151 | dev: true
3152 |
--------------------------------------------------------------------------------