From 7a47d66546c255ecbc73d76f28e64c7b2ec0b982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20PENHO=C3=8BT?= Date: Mon, 14 Mar 2022 18:17:54 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9placement=20scripts=20et=20fichiers=20po?= =?UTF-8?q?ur=20s=C3=A9parer=20l'admin=20du=20site=20public?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 26 +- config/illustrations.js | 2 +- config/main.js | 2 +- config/questionnaires.js | 8 +- controllers/questionnaire.js | 4 +- front/{ => admin}/package-lock.json | 0 front/admin/package.json | 36 + front/{ => admin}/src/config/general.js | 0 front/{ => admin}/src/connection.js | 17 +- front/{ => admin}/src/deconnection.js | 6 +- front/{ => admin}/src/homeManager.js | 21 +- front/{ => admin}/src/manageGroups.js | 17 +- front/{ => admin}/src/manageQuestionnaires.js | 74 +- front/{ => admin}/src/manageUsers.js | 17 +- front/{ => admin}/src/tools/clientstorage.js | 0 front/{ => admin}/src/tools/dom.js | 2 +- front/{ => admin}/src/tools/everywhere.js | 8 - front/{ => admin}/src/tools/forms.js | 2 +- front/{ => admin}/src/tools/url.js | 2 +- front/{ => admin}/src/tools/users.js | 10 +- front/{ => admin}/src/tools/webportage.js | 0 front/{ => admin}/webpack.config.js | 18 +- .../admin => admin/www}/gestion-groups.html | 34 +- .../admin => admin/www}/gestion-quizs.html | 35 +- .../www}/gestion-utilisateurs.html | 34 +- front/admin/www/gestion.html | 42 + .../www}/img/404-notfound.png | Bin .../www}/img/android-icon-192x192.png | Bin .../www}/img/apple-icon-57x57.png | Bin .../www}/img/favicon-32x32.png | Bin front/{public => admin/www}/img/favicon.ico | Bin front/{public/admin => admin/www}/index.html | 37 +- front/admin/www/sortie.html | 29 + .../www}/themes/default/404.html | 0 .../default/CSS/grids-responsive-min.css | 0 .../www}/themes/default/CSS/layout.css | 0 .../www}/themes/default/CSS/pure-min.css | 0 .../www}/themes/default/CSS/wikilerni.css | 0 .../www}/themes/default/a-propos.html | 0 .../www}/themes/default/accueil.html | 0 .../www}/themes/default/aurevoir.html | 0 .../www}/themes/default/compte.html | 0 .../www}/themes/default/connexion.html | 0 .../www}/themes/default/gestion-quizs.html | 0 .../themes/default/gestion-utilisateurs.html | 0 .../www}/themes/default/gestion.html | 0 .../www}/themes/default/index.html | 0 .../www}/themes/default/inscription.html | 0 .../www}/themes/default/login.html | 0 .../www}/themes/default/newlogin.html | 0 .../www}/themes/default/sortie.html | 0 .../www}/themes/default/stop-mail.html | 0 .../www}/themes/default/validation.html | 0 .../www}/themes/wikilerni/css/style.css | 0 .../wikilerni/img/background-texture.png | Bin .../www}/themes/wikilerni/img/correct-min.png | Bin .../www}/themes/wikilerni/img/diaspora.png | Bin .../admin/www/themes/wikilerni/img/email.png | Bin 0 -> 811 bytes .../www}/themes/wikilerni/img/facebook.png | Bin .../www}/themes/wikilerni/img/linkedin.png | Bin .../www}/themes/wikilerni/img/pinterest.png | Bin .../themes/wikilerni/img/time-required-3.png | Bin .../wikilerni/img/time-required-long.png | Bin .../wikilerni/img/time-required-medium.png | Bin .../wikilerni/img/time-required-short.png | Bin .../www}/themes/wikilerni/img/twitter.png | Bin .../wikilerni/img/wikilerni-purple-2-128.png | Bin .../wikilerni/img/wikilerni-purple-2-512.png | Bin .../www}/themes/wikilerni/img/wrong-min.png | Bin .../webfonts/Bold/Millimetre-Bold_web.woff | Bin .../webfonts/Light/Millimetre-Light_web.woff | Bin .../Regular/Millimetre-Regular_web.eot | Bin .../Regular/Millimetre-Regular_web.otf | Bin .../Regular/Millimetre-Regular_web.ttf | Bin .../Regular/Millimetre-Regular_web.woff | Bin .../Regular/Millimetre-Regular_web.woff2 | Bin front/public/.htaccess | 50 - front/public/admin/gestion.html | 58 - front/public/admin/sortie.html | 44 - front/public/package-lock.json | 10513 ++++++++++++++++ front/{ => public}/package.json | 2 +- front/public/src/config/general.js | 18 + front/public/src/index.js | 6 + front/{ => public}/src/paymentPage.js | 24 +- front/{ => public}/src/quiz.js | 9 +- front/{ => public}/src/tools/answers.js | 6 +- front/public/src/tools/clientstorage.js | 34 + front/public/src/tools/dom.js | 34 + front/public/src/tools/everywhere.js | 6 + front/public/src/tools/forms.js | 51 + front/{ => public}/src/tools/matomo.js | 2 +- front/public/src/tools/webportage.js | 41 + front/public/webpack.config.js | 37 + front/public/{ => www}/404.html | 1 - front/public/www/WikiLerni-pub.asc | 35 + front/public/{ => www}/a-propos.html | 0 front/public/{ => www}/contact.html | 1 - front/public/{ => www}/credits.html | 1 - front/public/{ => www}/donnees.html | 1 - front/public/www/img/404-notfound.png | Bin 0 -> 189680 bytes front/public/www/img/android-icon-192x192.png | Bin 0 -> 50360 bytes front/public/www/img/apple-icon-57x57.png | Bin 0 -> 4904 bytes front/public/{ => www}/img/e-mail.png | Bin front/public/www/img/favicon-32x32.png | Bin 0 -> 1935 bytes front/public/www/img/favicon.ico | Bin 0 -> 1150 bytes front/public/{ => www}/img/tirelire.jpg | Bin front/public/{ => www}/merci.html | 1 - .../{ => www}/participer-financement.html | 1 - front/public/{ => www}/robots.txt | 0 front/src/accountUser.js | 260 - front/src/deleteValidation.js | 69 - front/src/groupElement.js | 138 - front/src/homeUser.js | 237 - front/src/index.js | 36 - front/src/loginLink.js | 92 - front/src/newLoginValidation.js | 69 - front/src/subscribe.js | 139 - front/src/subscribeValidation.js | 203 - front/src/unsubscribe.js | 56 - 119 files changed, 11013 insertions(+), 1745 deletions(-) rename front/{ => admin}/package-lock.json (100%) create mode 100644 front/admin/package.json rename front/{ => admin}/src/config/general.js (100%) rename front/{ => admin}/src/connection.js (93%) rename front/{ => admin}/src/deconnection.js (78%) rename front/{ => admin}/src/homeManager.js (91%) rename front/{ => admin}/src/manageGroups.js (94%) rename front/{ => admin}/src/manageQuestionnaires.js (90%) rename front/{ => admin}/src/manageUsers.js (97%) rename front/{ => admin}/src/tools/clientstorage.js (100%) rename front/{ => admin}/src/tools/dom.js (95%) rename front/{ => admin}/src/tools/everywhere.js (55%) rename front/{ => admin}/src/tools/forms.js (96%) rename front/{ => admin}/src/tools/url.js (90%) rename front/{ => admin}/src/tools/users.js (95%) rename front/{ => admin}/src/tools/webportage.js (100%) rename front/{ => admin}/webpack.config.js (52%) rename front/{public/admin => admin/www}/gestion-groups.html (69%) rename front/{public/admin => admin/www}/gestion-quizs.html (90%) rename front/{public/admin => admin/www}/gestion-utilisateurs.html (82%) create mode 100644 front/admin/www/gestion.html rename front/{public => admin/www}/img/404-notfound.png (100%) rename front/{public => admin/www}/img/android-icon-192x192.png (100%) rename front/{public => admin/www}/img/apple-icon-57x57.png (100%) rename front/{public => admin/www}/img/favicon-32x32.png (100%) rename front/{public => admin/www}/img/favicon.ico (100%) rename front/{public/admin => admin/www}/index.html (50%) create mode 100644 front/admin/www/sortie.html rename front/{public => admin/www}/themes/default/404.html (100%) rename front/{public => admin/www}/themes/default/CSS/grids-responsive-min.css (100%) rename front/{public => admin/www}/themes/default/CSS/layout.css (100%) rename front/{public => admin/www}/themes/default/CSS/pure-min.css (100%) rename front/{public => admin/www}/themes/default/CSS/wikilerni.css (100%) rename front/{public => admin/www}/themes/default/a-propos.html (100%) rename front/{public => admin/www}/themes/default/accueil.html (100%) rename front/{public => admin/www}/themes/default/aurevoir.html (100%) rename front/{public => admin/www}/themes/default/compte.html (100%) rename front/{public => admin/www}/themes/default/connexion.html (100%) rename front/{public => admin/www}/themes/default/gestion-quizs.html (100%) rename front/{public => admin/www}/themes/default/gestion-utilisateurs.html (100%) rename front/{public => admin/www}/themes/default/gestion.html (100%) rename front/{public => admin/www}/themes/default/index.html (100%) rename front/{public => admin/www}/themes/default/inscription.html (100%) rename front/{public => admin/www}/themes/default/login.html (100%) rename front/{public => admin/www}/themes/default/newlogin.html (100%) rename front/{public => admin/www}/themes/default/sortie.html (100%) rename front/{public => admin/www}/themes/default/stop-mail.html (100%) rename front/{public => admin/www}/themes/default/validation.html (100%) rename front/{public => admin/www}/themes/wikilerni/css/style.css (100%) rename front/{public => admin/www}/themes/wikilerni/img/background-texture.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/correct-min.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/diaspora.png (100%) create mode 100644 front/admin/www/themes/wikilerni/img/email.png rename front/{public => admin/www}/themes/wikilerni/img/facebook.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/linkedin.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/pinterest.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/time-required-3.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/time-required-long.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/time-required-medium.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/time-required-short.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/twitter.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/wikilerni-purple-2-128.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/wikilerni-purple-2-512.png (100%) rename front/{public => admin/www}/themes/wikilerni/img/wrong-min.png (100%) rename front/{public => admin/www}/themes/wikilerni/webfonts/Bold/Millimetre-Bold_web.woff (100%) rename front/{public => admin/www}/themes/wikilerni/webfonts/Light/Millimetre-Light_web.woff (100%) rename front/{public => admin/www}/themes/wikilerni/webfonts/Regular/Millimetre-Regular_web.eot (100%) rename front/{public => admin/www}/themes/wikilerni/webfonts/Regular/Millimetre-Regular_web.otf (100%) rename front/{public => admin/www}/themes/wikilerni/webfonts/Regular/Millimetre-Regular_web.ttf (100%) rename front/{public => admin/www}/themes/wikilerni/webfonts/Regular/Millimetre-Regular_web.woff (100%) rename front/{public => admin/www}/themes/wikilerni/webfonts/Regular/Millimetre-Regular_web.woff2 (100%) delete mode 100644 front/public/.htaccess delete mode 100644 front/public/admin/gestion.html delete mode 100644 front/public/admin/sortie.html create mode 100644 front/public/package-lock.json rename front/{ => public}/package.json (92%) create mode 100644 front/public/src/config/general.js create mode 100644 front/public/src/index.js rename front/{ => public}/src/paymentPage.js (69%) rename front/{ => public}/src/quiz.js (96%) rename front/{ => public}/src/tools/answers.js (98%) create mode 100644 front/public/src/tools/clientstorage.js create mode 100644 front/public/src/tools/dom.js create mode 100644 front/public/src/tools/everywhere.js create mode 100644 front/public/src/tools/forms.js rename front/{ => public}/src/tools/matomo.js (95%) create mode 100644 front/public/src/tools/webportage.js create mode 100644 front/public/webpack.config.js rename front/public/{ => www}/404.html (96%) create mode 100644 front/public/www/WikiLerni-pub.asc rename front/public/{ => www}/a-propos.html (100%) rename front/public/{ => www}/contact.html (96%) rename front/public/{ => www}/credits.html (97%) rename front/public/{ => www}/donnees.html (98%) create mode 100644 front/public/www/img/404-notfound.png create mode 100644 front/public/www/img/android-icon-192x192.png create mode 100644 front/public/www/img/apple-icon-57x57.png rename front/public/{ => www}/img/e-mail.png (100%) create mode 100644 front/public/www/img/favicon-32x32.png create mode 100755 front/public/www/img/favicon.ico rename front/public/{ => www}/img/tirelire.jpg (100%) rename front/public/{ => www}/merci.html (96%) rename front/public/{ => www}/participer-financement.html (98%) rename front/public/{ => www}/robots.txt (100%) delete mode 100644 front/src/accountUser.js delete mode 100644 front/src/deleteValidation.js delete mode 100644 front/src/groupElement.js delete mode 100644 front/src/homeUser.js delete mode 100644 front/src/index.js delete mode 100644 front/src/loginLink.js delete mode 100644 front/src/newLoginValidation.js delete mode 100644 front/src/subscribe.js delete mode 100644 front/src/subscribeValidation.js delete mode 100644 front/src/unsubscribe.js diff --git a/.gitignore b/.gitignore index d165798..1ebcb4d 100644 --- a/.gitignore +++ b/.gitignore @@ -15,17 +15,17 @@ nodemon.json /front/node_modules/ /front/webpack.config* -/front/public/.htaccess* -/front/public/.htpasswd +/front/public/www/.htaccess* +/front/public/www/.htpasswd !/front/webpack.config.js -/front/public/img/quizs/ -/front/public/JS/* -/front/public/quiz/ -/front/public/quizs/ -/front/public/themes/ -/front/public/index.html -/front/public/CGV-CGU.html -/front/public/mentions-legales.html -/front/public/robots-*.txt -/front/public/WikiLerni-pub.asc -/front/public/*.xml \ No newline at end of file +/front/public/www/img/quizs/ +/front/*/www/JS/* +/front/public/www/quiz/ +/front/public/www/quizs/ +/front/public/www/themes/ +/front/public/www/index.html +/front/public/www/CGV-CGU.html +/front/public/www/mentions-legales.html +/front/*/robots-*.txt +/front/*/WikiLerni-pub.asc +/front/public/www/*.xml \ No newline at end of file diff --git a/config/illustrations.js b/config/illustrations.js index 4e0cdac..27f4216 100644 --- a/config/illustrations.js +++ b/config/illustrations.js @@ -14,5 +14,5 @@ module.exports = }, // files upload tempory dir dirIllustrationsTmp : "temp", - dirIllustrations: "front/public/img/quizs" + dirIllustrations: "front/public/www/img/quizs" }; \ No newline at end of file diff --git a/config/main.js b/config/main.js index f93a283..893c533 100644 --- a/config/main.js +++ b/config/main.js @@ -9,7 +9,7 @@ instance.tokenPrivateKey=process.env.TOKEN_PRIVATE_KEY; instance.maxLoginFail=parseInt(process.env.MAX_LOGIN_FAILS,10); instance.loginFailTimeInMinutes=parseInt(process.env.LOGIN_FAIL_TIME_IN_MINUTES,10); instance.dirCache="datas"; -instance.dirHTML="front/public"; +instance.dirHTML="front/public/www"; instance.dirTmp="datas/tmp"; instance.dirTmpLogin="datas/tmp/logins"; diff --git a/config/questionnaires.js b/config/questionnaires.js index f0767e9..f433ab3 100644 --- a/config/questionnaires.js +++ b/config/questionnaires.js @@ -56,10 +56,10 @@ module.exports = dirCacheTags : "datas/questionnaires/tags", dirCacheUsersQuestionnaires : "datas/users/questionnaires", // Emplacement des fichiers HTML générés : - dirHTMLGroups : "front/public/quiz/gp", - dirHTMLQuestionnaires : "front/public/quiz", - dirHTMLNews : "front/public/quizs", - dirHTMLTags : "front/public/quizs", + dirHTMLGroups : "front/public/www/quiz/gp", + dirHTMLQuestionnaires : "front/public/www/quiz", + dirHTMLNews : "front/public/www/quizs", + dirHTMLTags : "front/public/www/quizs", // Idem mais pour urls : dirWebGroups : "quiz/gp", dirWebQuestionnaires : "quiz", diff --git a/controllers/questionnaire.js b/controllers/questionnaire.js index 53649b9..694546a 100644 --- a/controllers/questionnaire.js +++ b/controllers/questionnaire.js @@ -407,7 +407,6 @@ exports.checkQuestionnairesNeedToBePublished = async (req, res, next) => const creaQuestionnaireJson = async (id) => { const db=require("../models/index"); - console.log("j'arrive ici avec "+id); const Questionnaire=await db["Questionnaire"].findByPk(id); if(Questionnaire) { @@ -543,6 +542,9 @@ const creaQuestionnaireHTML = async (id, preview=false) => // deux possibilités : // -- si élément d'un groupe de quiz : juste le texte sans les questions // -- si quiz automone : toutes les infos + + console.log("je passe par ici pour créer le fichier du quiz "+id); + const questionnaire=await searchQuestionnaireById(id, true); if(!questionnaire) return false; diff --git a/front/package-lock.json b/front/admin/package-lock.json similarity index 100% rename from front/package-lock.json rename to front/admin/package-lock.json diff --git a/front/admin/package.json b/front/admin/package.json new file mode 100644 index 0000000..5828ec1 --- /dev/null +++ b/front/admin/package.json @@ -0,0 +1,36 @@ +{ + "name": "wikilerni", + "version": "0.2.0", + "description": "Admin pages of WikiLerni web application", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "webpack --mode production", + "start": "webpack serve --no-live-reload" + }, + "repository": { + "type": "git", + "url": "https://forge.chapril.org/Fab_Blab/WikiLerni" + }, + "keywords": [ + "quiz", + "wikipédia", + "questionnaire", + "e-learning" + ], + "author": "Fabrice PENHOËT", + "license": "GPL-3.0-or-later", + "devDependencies": { + "@babel/core": "^7.15.5", + "@babel/preset-env": "^7.15.6", + "@webpack-cli/serve": "^1.5.2", + "babel-loader": "^8.2.2", + "babel-polyfill": "^6.26.0", + "webpack": "^5.56.1", + "webpack-cli": "^4.8.0", + "webpack-dev-server": "^4.3.0" + }, + "browserslist": [ + "> 1%" + ] +} \ No newline at end of file diff --git a/front/src/config/general.js b/front/admin/src/config/general.js similarity index 100% rename from front/src/config/general.js rename to front/admin/src/config/general.js diff --git a/front/src/connection.js b/front/admin/src/connection.js similarity index 93% rename from front/src/connection.js rename to front/admin/src/connection.js index 8cca535..dcb0e50 100644 --- a/front/src/connection.js +++ b/front/admin/src/connection.js @@ -6,24 +6,23 @@ /// Le connexion peut se faire directement ici via la saisie d'un mot de passe ou via l'envoi d'un token par e-mail. // Fichier de configuration tirés du backend : -import { apiUrl, availableLangs, siteUrl, theme } from "../../config/instance.js"; +import { apiUrl, availableLangs, siteUrl, theme } from "../../../config/instance.js"; const lang=availableLangs[0]; -import { connectionRoute, getLoginLinkRoute, userRoutes } from "../../config/users.js"; -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); +import { connectionRoute, getLoginLinkRoute, userRoutes } from "../../../config/users.js"; +const configTemplate = require("../../../views/"+theme+"/config/"+lang+".js"); // Importation des fonctions utiles au script : import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; import { helloDev } from "./tools/everywhere.js"; import { getDatasFromInputs } from "./tools/forms.js"; -import { isEmpty } from "../../tools/main"; -import { loadMatomo } from "./tools/matomo.js"; +import { isEmpty } from "../../../tools/main"; import { checkAnswerDatas, checkSession, getTimeDifference, setSession } from "./tools/users.js"; // Dictionnaires : -const { serverError } = require("../../lang/"+lang+"/general"); -const { alreadyConnected, needChooseLoginWay } = require("../../lang/"+lang+"/user"); +const { serverError } = require("../../../lang/"+lang+"/general"); +const { alreadyConnected, needChooseLoginWay } = require("../../../lang/"+lang+"/user"); // Principaux éléments du DOM manipulés : const myForm = document.getElementById("connection"); @@ -43,11 +42,11 @@ const initialise = async () => saveLocaly("message", { message: alreadyConnected, color:"info" });// pour l'afficher sur la page suivante const user=getLocaly("user", true); const homePage=user.status+"HomePage"; - window.location.assign("/"+configTemplate[homePage]); + console.log("./"+configTemplate[homePage]); + window.location.assign("./"+configTemplate[homePage]); } else { - loadMatomo(); myForm.style.display="block"; if(!isEmpty(getLocaly("message"))) { diff --git a/front/src/deconnection.js b/front/admin/src/deconnection.js similarity index 78% rename from front/src/deconnection.js rename to front/admin/src/deconnection.js index 639f5e9..f35edc4 100644 --- a/front/src/deconnection.js +++ b/front/admin/src/deconnection.js @@ -3,7 +3,7 @@ /// On se contente ici de supprimer la session stockée côté client // Fichier de configuration côté client : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; +import { apiUrl, availableLangs, theme } from "../../../config/instance.js"; const lang=availableLangs[0]; // Importation des fonctions utile au script : @@ -12,8 +12,8 @@ import { addElement } from "./tools/dom.js"; import { helloDev } from "./tools/everywhere.js"; // Dictionnaires : -const { serverError } = require("../../lang/"+lang+"/general"); -const { byebyeMessage } = require("../../lang/"+lang+"/user"); +const { serverError } = require("../../../lang/"+lang+"/general"); +const { byebyeMessage } = require("../../../lang/"+lang+"/user"); const divResponse = document.getElementById("response"); diff --git a/front/src/homeManager.js b/front/admin/src/homeManager.js similarity index 91% rename from front/src/homeManager.js rename to front/admin/src/homeManager.js index 9eaa431..2874e47 100644 --- a/front/src/homeManager.js +++ b/front/admin/src/homeManager.js @@ -9,24 +9,24 @@ /// Temporairement, c'est ici aussi que l'on peut régénérer tout le HTML -> à terme dans homeAdmin ! // Fichier de configuration côté client : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; +import { apiUrl, availableLangs, theme } from "../../../config/instance.js"; const lang=availableLangs[0]; -import { getAdminStats, userRoutes } from "../../config/users.js"; -import { getListNextQuestionnaires, questionnaireRoutes, regenerateHTML } from "../../config/questionnaires.js"; -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); +import { getAdminStats, userRoutes } from "../../../config/users.js"; +import { getListNextQuestionnaires, questionnaireRoutes, regenerateHTML } from "../../../config/questionnaires.js"; +const configTemplate = require("../../../views/"+theme+"/config/"+lang+".js"); // Fonctions utiles au script : import { getLocaly, removeLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; -import { dateFormat, isEmpty, replaceAll } from "../../tools/main"; +import { helloDev } from "./tools/everywhere.js"; +import { dateFormat, isEmpty, replaceAll } from "../../../tools/main"; import { checkSession } from "./tools/users.js"; // Dictionnaires : -const { notAllowed, serverError, statsAdmin } = require("../../lang/"+lang+"/general"); -const { nextDateWithoutQuestionnaire, nextQuestionnairesList, questionnaireNeedBeCompleted } = require("../../lang/"+lang+"/questionnaire"); -const { welcomeMessage } = require("../../lang/"+lang+"/user"); +const { notAllowed, serverError, statsAdmin } = require("../../../lang/"+lang+"/general"); +const { nextDateWithoutQuestionnaire, nextQuestionnairesList, questionnaireNeedBeCompleted } = require("../../../lang/"+lang+"/questionnaire"); +const { welcomeMessage } = require("../../../lang/"+lang+"/user"); // Principaux éléments du DOM manipulés : const divMain = document.getElementById("main-content"); @@ -45,7 +45,6 @@ const initialise = async () => if(isConnected) { const user=getLocaly("user", true); - updateAccountLink(user.status, configTemplate); addElement(divMessage, "h2", welcomeMessage.replace("#NAME", user.name)); divMain.style.display="block"; if(!isEmpty(getLocaly("message"))) @@ -143,4 +142,4 @@ const initialise = async () => console.error(e); } } -initialise(); \ No newline at end of file +initialise(); \ No newline at end of file diff --git a/front/src/manageGroups.js b/front/admin/src/manageGroups.js similarity index 94% rename from front/src/manageGroups.js rename to front/admin/src/manageGroups.js index 4410697..aa554f7 100644 --- a/front/src/manageGroups.js +++ b/front/admin/src/manageGroups.js @@ -6,24 +6,24 @@ /// Si pas d'id passé par l'url, on affiche un formulaire vide permettant d'en saisir un nouveau. // Fichiers de configuration : -import { apiUrl, availableLangs, siteUrl, theme } from "../../config/instance.js"; +import { apiUrl, availableLangs, siteUrl, theme } from "../../../config/instance.js"; const lang=availableLangs[0]; -const configQuestionnaires = require("../../config/questionnaires.js"); -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); +const configQuestionnaires = require("../../../config/questionnaires.js"); +const configTemplate = require("../../../views/"+theme+"/config/"+lang+".js"); // Fonctions : import { getLocaly, removeLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; +import { helloDev } from "./tools/everywhere.js"; import { empyForm, getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; -import { dateFormat, isEmpty, replaceAll } from "../../tools/main"; +import { dateFormat, isEmpty, replaceAll } from "../../../tools/main"; import { getUrlParams } from "./tools/url.js"; import { checkSession } from "./tools/users.js"; // Dictionnaires : -const { addOkMessage, serverError } = require("../../lang/"+lang+"/general"); -const { groupQuestionnairesList, groupQuestionnairesListWithout, infosGroupForAdmin, searchWithoutResult } = require("../../lang/"+lang+"/group"); -const { needBeConnected } = require("../../lang/"+lang+"/user"); +const { addOkMessage, serverError } = require("../../../lang/"+lang+"/general"); +const { groupQuestionnairesList, groupQuestionnairesListWithout, infosGroupForAdmin, searchWithoutResult } = require("../../../lang/"+lang+"/group"); +const { needBeConnected } = require("../../../lang/"+lang+"/user"); // Principaux éléments du DOM manipulés : const btnNewGroup = document.getElementById("wantNewGroup"); @@ -116,7 +116,6 @@ const initialise = async () => if(isConnected) { const user=getLocaly("user", true); - updateAccountLink(user.status, configTemplate);// lien "Compte" menu header template divMain.style.display="block"; if(!isEmpty(getLocaly("message"))) { diff --git a/front/src/manageQuestionnaires.js b/front/admin/src/manageQuestionnaires.js similarity index 90% rename from front/src/manageQuestionnaires.js rename to front/admin/src/manageQuestionnaires.js index 0e888e2..01be07d 100644 --- a/front/src/manageQuestionnaires.js +++ b/front/admin/src/manageQuestionnaires.js @@ -7,30 +7,30 @@ /// Si pas d'id passé par l'url, on affiche un formulaire vide permettant de saisir un nouveau quiz. // Fichiers de configuration : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; +import { apiUrl, availableLangs, theme } from "../../../config/instance.js"; const lang=availableLangs[0]; -const config = require("../../config/instance.js"); -const configIllustrations = require("../../config/illustrations.js"); -const configLinks = require("../../config/links.js"); -const configQuestionnaires = require("../../config/questionnaires.js"); -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); +const config = require("../../../config/instance.js"); +const configIllustrations = require("../../../config/illustrations.js"); +const configLinks = require("../../../config/links.js"); +const configQuestionnaires = require("../../../config/questionnaires.js"); +const configTemplate = require("../../../views/"+theme+"/config/"+lang+".js"); // Fonctions : import { getLocaly, removeLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; +import { helloDev } from "./tools/everywhere.js"; import { empyAndHideForm, getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; -import { dateFormat, isEmpty } from "../../tools/main"; +import { dateFormat, isEmpty } from "../../../tools/main"; import { getUrlParams } from "./tools/url.js"; import { checkSession } from "./tools/users.js"; // Dictionnaires : -const { addOkMessage, deleteBtnTxt, serverError, updateBtnTxt } = require("../../lang/"+lang+"/general"); -const { addIllustrationTxt, defaultAlt, introNoIllustration, introTitleForIllustration } = require("../../lang/"+lang+"/illustration"); -const { addLinkTxt, defaultValueForLink, introNoLink, introTitleForLink } = require("../../lang/"+lang+"/link"); -const { addQuestionTxt, introNoQuestion, introTitleForQuestion } = require("../../lang/"+lang+"/question"); -const { needGroupIfRank, nextDateWithoutQuestionnaire, nextQuestionnairesList, questionnaireNeedBeCompleted, searchQuestionnaireWithNoResult } = require("../../lang/"+lang+"/questionnaire"); -const { needBeConnected } = require("../../lang/"+lang+"/user"); +const { addOkMessage, deleteBtnTxt, serverError, updateBtnTxt } = require("../../../lang/"+lang+"/general"); +const { addIllustrationTxt, defaultAlt, introNoIllustration, introTitleForIllustration } = require("../../../lang/"+lang+"/illustration"); +const { addLinkTxt, defaultValueForLink, introNoLink, introTitleForLink } = require("../../../lang/"+lang+"/link"); +const { addQuestionTxt, introNoQuestion, introTitleForQuestion } = require("../../../lang/"+lang+"/question"); +const { needGroupIfRank, nextDateWithoutQuestionnaire, nextQuestionnairesList, questionnaireNeedBeCompleted, searchQuestionnaireWithNoResult } = require("../../../lang/"+lang+"/questionnaire"); +const { needBeConnected } = require("../../../lang/"+lang+"/user"); // Principaux éléments du DOM manipulés : const btnNewQuestionnaire = document.getElementById("wantNewQuestionnaire"); @@ -196,7 +196,7 @@ const showIllustrationInfos = (Illustrations, token) => addElement(divIllustrations, "h2", introTitleForIllustration); let listIllustrations=""; for(let i in Illustrations) - listIllustrations+="
  • "+defaultAlt+"
    "+updateBtnTxt+" "+deleteBtnTxt+"
  • "; + listIllustrations+="
  • "+defaultAlt+"
    "+updateBtnTxt+" "+deleteBtnTxt+"
  • "; if(listIllustrations === "") listIllustrations="
  • "+introNoIllustration+"
  • "; addElement(divIllustrations, "ul", listIllustrations, "", [], "", false);// ! à intégrer d'abord dans le DOM pour pouvoir ajouter les Listeners ensuite @@ -457,48 +457,6 @@ const showFormQuestionnaireInfos = (id, token) => xhrGetInfos.send(); } -/* -// Affiche les questionnaires bientôt publiés. -const showNextQuestionnaires = (token) => -{ - const xhrNextQuestionnaires = new XMLHttpRequest(); - xhrNextQuestionnaires.open("GET", apiUrl+configQuestionnaires.questionnaireRoutes+configQuestionnaires.getListNextQuestionnaires); - xhrNextQuestionnaires.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && Array.isArray(response.questionnaires)) - { - let listHTML="", dayStr, optionsDayStr = { weekday: 'long'}; - for(let i in response.questionnaires) - { - dayStr=new Intl.DateTimeFormat(lang, optionsDayStr).format(new Date(response.questionnaires[i].datePublishing)); - listHTML+="
  • "+dayStr+" "+dateFormat(response.questionnaires[i].datePublishing, "fr")+": "+response.questionnaires[i].title+""; - if(response.questionnaires[i].isPublishable===false) - listHTML+=" ("+questionnaireNeedBeCompleted+")
  • "; - listHTML+=""; - } - if(response.questionnaires.length!==0) - addElement(divQuestionnaires, "h3", nextQuestionnairesList.replace("#NB", response.questionnaires.length)); - addElement(helpPublishingAt, "em", nextDateWithoutQuestionnaire+dateFormat(new Date(response.dateNeeded), "fr")); - addElement(divQuestionnaires, "ul", listHTML, "", "", "", false); - for(let i in response.questionnaires) - { - document.getElementById("questionnaire_"+response.questionnaires[i].id).addEventListener("click", function(e) - { - e.preventDefault(); - showFormQuestionnaireInfos(e.target.id.split("_")[1], token); - window.location.assign("#questionnaires"); - }); - } - }// ajouter gestion erreurs reçues du serveur ? - } - } - xhrNextQuestionnaires.setRequestHeader("Authorization", "Bearer "+token); - xhrNextQuestionnaires.send(); -}*/ - const initialise = async () => { try @@ -513,8 +471,6 @@ const initialise = async () => removeLocaly("message"); } const user=getLocaly("user", true); - /// Mise à jour du lien "compte" du header (plus utile) - /// updateAccountLink(user.status, configTemplate); // Initialisation des formulaires : setAttributesToInputs(configQuestionnaires, formSearch); setAttributesToInputs(configQuestionnaires.Questionnaire, formQuestionnaire); diff --git a/front/src/manageUsers.js b/front/admin/src/manageUsers.js similarity index 97% rename from front/src/manageUsers.js rename to front/admin/src/manageUsers.js index 67cd370..d462542 100644 --- a/front/src/manageUsers.js +++ b/front/admin/src/manageUsers.js @@ -10,24 +10,24 @@ /// - attribution d'un parrain à un utilisateur (via un moteur de recherche). Déjà prévu par le contrôleur. // Fichier de configuration côté client : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; +import { apiUrl, availableLangs, theme } from "../../../config/instance.js"; const lang=availableLangs[0]; -const configUsers = require("../../config/users.js"); -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); +const configUsers = require("../../../config/users.js"); +const configTemplate = require("../../../views/"+theme+"/config/"+lang+".js"); // Fonctions utiles au script : import { getLocaly, removeLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; +import { helloDev } from "./tools/everywhere.js"; import { empyForm, getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; -import { dateFormat, getPassword, isEmpty, replaceAll } from "../../tools/main"; +import { dateFormat, getPassword, isEmpty, replaceAll } from "../../../tools/main"; import { getUrlParams } from "./tools/url.js"; import { checkSession } from "./tools/users.js"; // Dictionnaires : -const { addOkMessage, serverError } = require("../../lang/"+lang+"/general"); -const { infosAdminGodfather, infosAdminNbGodChilds, infosUserForAdmin, needBeConnected, searchUsersWithoutResult } = require("../../lang/"+lang+"/user"); -const { infosExpiratedAdmin, infosNbDaysAdmin, infosPaymentsAdmin, isNotValided } = require("../../lang/"+lang+"/subscription"); +const { addOkMessage, serverError } = require("../../../lang/"+lang+"/general"); +const { infosAdminGodfather, infosAdminNbGodChilds, infosUserForAdmin, needBeConnected, searchUsersWithoutResult } = require("../../../lang/"+lang+"/user"); +const { infosExpiratedAdmin, infosNbDaysAdmin, infosPaymentsAdmin, isNotValided } = require("../../../lang/"+lang+"/subscription"); // Principaux éléments du DOM manipulés : const divMain = document.getElementById("main-content"); @@ -56,7 +56,6 @@ const initialise = async () => if(isConnected) { const user=getLocaly("user", true); - updateAccountLink(user.status, configTemplate); divMain.style.display="block"; if(!isEmpty(getLocaly("message"))) { diff --git a/front/src/tools/clientstorage.js b/front/admin/src/tools/clientstorage.js similarity index 100% rename from front/src/tools/clientstorage.js rename to front/admin/src/tools/clientstorage.js diff --git a/front/src/tools/dom.js b/front/admin/src/tools/dom.js similarity index 95% rename from front/src/tools/dom.js rename to front/admin/src/tools/dom.js index 4758e7f..c42cccc 100644 --- a/front/src/tools/dom.js +++ b/front/admin/src/tools/dom.js @@ -1,4 +1,4 @@ -import { isEmpty } from "../../../tools/main"; +import { isEmpty } from "../../../../tools/main"; // Fonction associant les attributs fournis à un champ de formulaire export const addElement = (eltParent, eltType, eltContent="", eltId="", eltClass=[], eltAttributes={}, replace=true) => diff --git a/front/src/tools/everywhere.js b/front/admin/src/tools/everywhere.js similarity index 55% rename from front/src/tools/everywhere.js rename to front/admin/src/tools/everywhere.js index dc22468..67f90c7 100644 --- a/front/src/tools/everywhere.js +++ b/front/admin/src/tools/everywhere.js @@ -3,12 +3,4 @@ export const helloDev = () => { console.log("**** Hello les devs :-)\nLe code source de WikiLerni est libre et vous pouvez le trouver à cette adresse :\nhttps://forge.chapril.org/Fab_Blab/WikiLerni\nBonne lecture ! ****"); return true; -} - -export const updateAccountLink = (status, configTemplate) => -{ - //const link=document.getElementById("accountHeadLink"); - //const homePage=status+"HomePage"; - //link.href="/"+configTemplate[homePage]; - //console.log("je suis connecté"); } \ No newline at end of file diff --git a/front/src/tools/forms.js b/front/admin/src/tools/forms.js similarity index 96% rename from front/src/tools/forms.js rename to front/admin/src/tools/forms.js index c3df966..88efe4a 100644 --- a/front/src/tools/forms.js +++ b/front/admin/src/tools/forms.js @@ -1,4 +1,4 @@ -import { isEmpty } from "../../../tools/main"; +import { isEmpty } from "../../../../tools/main"; // Fonction associant les attributs fournis à un champ de formulaire export const setAttributesToInputs = (inputsConf, myForm) => diff --git a/front/src/tools/url.js b/front/admin/src/tools/url.js similarity index 90% rename from front/src/tools/url.js rename to front/admin/src/tools/url.js index 38b9ca9..c4ff6e8 100644 --- a/front/src/tools/url.js +++ b/front/admin/src/tools/url.js @@ -1,4 +1,4 @@ -import { isEmpty } from "../../../tools/main"; +import { isEmpty } from "../../../../tools/main"; // Fonction récupérant les paramètres passés par l'url export const getUrlParams = () => diff --git a/front/src/tools/users.js b/front/admin/src/tools/users.js similarity index 95% rename from front/src/tools/users.js rename to front/admin/src/tools/users.js index 8611102..009493f 100644 --- a/front/src/tools/users.js +++ b/front/admin/src/tools/users.js @@ -1,12 +1,12 @@ -import { apiUrl, availableLangs, siteUrl, theme } from "../../../config/instance.js"; +import { apiUrl, availableLangs, siteUrl, theme } from "../../../../config/instance.js"; const lang=availableLangs[0]; -const configTemplate = require("../../../views/"+theme+"/config/"+lang+".js"); +const configTemplate = require("../../../../views/"+theme+"/config/"+lang+".js"); -import { checkLoginRoute, timeDifferenceMax, timeDifferenceMin, userRoutes } from "../../../config/users.js"; +import { checkLoginRoute, timeDifferenceMax, timeDifferenceMin, userRoutes } from "../../../../config/users.js"; -import { getLocaly, removeLocaly, saveLocaly } from "./clientstorage.js"; -import { isEmpty } from "../../../tools/main"; +import { getLocaly, removeLocaly, saveLocaly } from "../tools/clientstorage.js"; +import { isEmpty } from "../../../../tools/main"; export const getTimeDifference = () => { diff --git a/front/src/tools/webportage.js b/front/admin/src/tools/webportage.js similarity index 100% rename from front/src/tools/webportage.js rename to front/admin/src/tools/webportage.js diff --git a/front/webpack.config.js b/front/admin/webpack.config.js similarity index 52% rename from front/webpack.config.js rename to front/admin/webpack.config.js index 30a47ce..bd594d8 100644 --- a/front/webpack.config.js +++ b/front/admin/webpack.config.js @@ -5,29 +5,17 @@ module.exports = mode: "development", entry: { - accountUser: "./src/accountUser.js", connection: "./src/connection.js", deconnection: "./src/deconnection.js", - deleteValidation: "./src/deleteValidation.js", - groupElement: "./src/groupElement.js", homeManager: "./src/homeManager.js", - homeUser: "./src/homeUser.js", - index: "./src/index.js", - loginLink: "./src/loginLink.js", manageGroups: "./src/manageGroups.js", manageQuestionnaires: "./src/manageQuestionnaires.js", manageUsers: "./src/manageUsers.js", - newLoginValidation: "./src/newLoginValidation.js", - paymentPage: "./src/paymentPage.js", - polyfill: "babel-polyfill", - quiz: "./src/quiz.js", - subscribe: "./src/subscribe.js", - subscribeValidation: "./src/subscribeValidation.js", - unsubscribe: "./src/unsubscribe.js" + polyfill: "babel-polyfill" }, output: { - path: path.resolve(__dirname, "public"), + path: path.resolve(__dirname, "www"), filename: "JS/[name].app.js", }, module: @@ -47,6 +35,6 @@ module.exports = }, devServer: { - static: path.resolve(__dirname, "./public") + static: path.resolve(__dirname, "./www") }, }; \ No newline at end of file diff --git a/front/public/admin/gestion-groups.html b/front/admin/www/gestion-groups.html similarity index 69% rename from front/public/admin/gestion-groups.html rename to front/admin/www/gestion-groups.html index f1a219c..90413ae 100644 --- a/front/public/admin/gestion-groups.html +++ b/front/admin/www/gestion-groups.html @@ -6,21 +6,21 @@ Gestion des groupes de quizs - - - - + + + +
    - WikiLerni (logo) + WikiLerni (logo)
    @@ -28,13 +28,6 @@
    - -

    Les groupes de quizs

    @@ -68,14 +61,5 @@
    - \ No newline at end of file diff --git a/front/public/admin/gestion-quizs.html b/front/admin/www/gestion-quizs.html similarity index 90% rename from front/public/admin/gestion-quizs.html rename to front/admin/www/gestion-quizs.html index ba69caf..681068f 100644 --- a/front/public/admin/gestion-quizs.html +++ b/front/admin/www/gestion-quizs.html @@ -6,21 +6,21 @@ Gestion des quizs - - - - + + + +
    - WikiLerni (logo) + WikiLerni (logo)
    @@ -28,13 +28,6 @@
    - -

    Les quizs

    @@ -179,14 +172,6 @@
    - + \ No newline at end of file diff --git a/front/public/admin/gestion-utilisateurs.html b/front/admin/www/gestion-utilisateurs.html similarity index 82% rename from front/public/admin/gestion-utilisateurs.html rename to front/admin/www/gestion-utilisateurs.html index b943b8c..b7454bd 100644 --- a/front/public/admin/gestion-utilisateurs.html +++ b/front/admin/www/gestion-utilisateurs.html @@ -6,21 +6,21 @@ Gestion des abonnés - - - - + + + +
    - WikiLerni (logo) + WikiLerni (logo)
    @@ -28,13 +28,6 @@
    - -

    Les abonnés

    @@ -119,14 +112,5 @@
    - \ No newline at end of file diff --git a/front/admin/www/gestion.html b/front/admin/www/gestion.html new file mode 100644 index 0000000..9d68118 --- /dev/null +++ b/front/admin/www/gestion.html @@ -0,0 +1,42 @@ + + + + + + + + Mon WikiLerni + + + + + + + + + +
    + WikiLerni (logo) + +
    + +
    + +
    + + + +
    + + + \ No newline at end of file diff --git a/front/public/img/404-notfound.png b/front/admin/www/img/404-notfound.png similarity index 100% rename from front/public/img/404-notfound.png rename to front/admin/www/img/404-notfound.png diff --git a/front/public/img/android-icon-192x192.png b/front/admin/www/img/android-icon-192x192.png similarity index 100% rename from front/public/img/android-icon-192x192.png rename to front/admin/www/img/android-icon-192x192.png diff --git a/front/public/img/apple-icon-57x57.png b/front/admin/www/img/apple-icon-57x57.png similarity index 100% rename from front/public/img/apple-icon-57x57.png rename to front/admin/www/img/apple-icon-57x57.png diff --git a/front/public/img/favicon-32x32.png b/front/admin/www/img/favicon-32x32.png similarity index 100% rename from front/public/img/favicon-32x32.png rename to front/admin/www/img/favicon-32x32.png diff --git a/front/public/img/favicon.ico b/front/admin/www/img/favicon.ico similarity index 100% rename from front/public/img/favicon.ico rename to front/admin/www/img/favicon.ico diff --git a/front/public/admin/index.html b/front/admin/www/index.html similarity index 50% rename from front/public/admin/index.html rename to front/admin/www/index.html index 1f0edbf..d628784 100644 --- a/front/public/admin/index.html +++ b/front/admin/www/index.html @@ -6,26 +6,20 @@ Se connecter à WikiLerni - - - - + + + +
    - WikiLerni (logo) - + WikiLerni (logo)
    - Logo WikiLerni + Logo WikiLerni

    Cultivons notre jardin !

    @@ -57,25 +51,6 @@
    - -
    Pas encore de compte ? Créez-le en cliquant ici.
    - -
    -

    Besoin d’aide ?

    -

    Si vous avez oublié votre mot de passe, il vous suffit de cocher la case « Je souhaite recevoir un lien de connexion par e-mail ». Un lien valide pendant une courte durée vous permettra de vous connecter au site.

    -

    Si vous ne vous souvenez pas non plus de l’adresse e-mail utilisée sur ce site ou que vous n’y avez plus accès, vous pouvez me contacter, en fournissant des informations permettant de vous identifier.

    -

    La case « Je souhaite ne pas avoir à me connecter à chaque fois. » vous permettra de rester connecté jusqu’à 6 mois, pour peu que vous utilisiez le même navigateur internet sur le même ordinateur.

    -
    - - \ No newline at end of file diff --git a/front/admin/www/sortie.html b/front/admin/www/sortie.html new file mode 100644 index 0000000..2142917 --- /dev/null +++ b/front/admin/www/sortie.html @@ -0,0 +1,29 @@ + + + + + + + Déconnexion WikiLerni + + + + + + + + + +
    + WikiLerni (logo) +
    + +
    + Logo WikiLerni +

    Cultivons notre jardin !

    +

    Au revoir !

    +

    Si vous voyez ce message, c’est qu’un problème a été rencontré durant la déconnexion.

    +
    + + + \ No newline at end of file diff --git a/front/public/themes/default/404.html b/front/admin/www/themes/default/404.html similarity index 100% rename from front/public/themes/default/404.html rename to front/admin/www/themes/default/404.html diff --git a/front/public/themes/default/CSS/grids-responsive-min.css b/front/admin/www/themes/default/CSS/grids-responsive-min.css similarity index 100% rename from front/public/themes/default/CSS/grids-responsive-min.css rename to front/admin/www/themes/default/CSS/grids-responsive-min.css diff --git a/front/public/themes/default/CSS/layout.css b/front/admin/www/themes/default/CSS/layout.css similarity index 100% rename from front/public/themes/default/CSS/layout.css rename to front/admin/www/themes/default/CSS/layout.css diff --git a/front/public/themes/default/CSS/pure-min.css b/front/admin/www/themes/default/CSS/pure-min.css similarity index 100% rename from front/public/themes/default/CSS/pure-min.css rename to front/admin/www/themes/default/CSS/pure-min.css diff --git a/front/public/themes/default/CSS/wikilerni.css b/front/admin/www/themes/default/CSS/wikilerni.css similarity index 100% rename from front/public/themes/default/CSS/wikilerni.css rename to front/admin/www/themes/default/CSS/wikilerni.css diff --git a/front/public/themes/default/a-propos.html b/front/admin/www/themes/default/a-propos.html similarity index 100% rename from front/public/themes/default/a-propos.html rename to front/admin/www/themes/default/a-propos.html diff --git a/front/public/themes/default/accueil.html b/front/admin/www/themes/default/accueil.html similarity index 100% rename from front/public/themes/default/accueil.html rename to front/admin/www/themes/default/accueil.html diff --git a/front/public/themes/default/aurevoir.html b/front/admin/www/themes/default/aurevoir.html similarity index 100% rename from front/public/themes/default/aurevoir.html rename to front/admin/www/themes/default/aurevoir.html diff --git a/front/public/themes/default/compte.html b/front/admin/www/themes/default/compte.html similarity index 100% rename from front/public/themes/default/compte.html rename to front/admin/www/themes/default/compte.html diff --git a/front/public/themes/default/connexion.html b/front/admin/www/themes/default/connexion.html similarity index 100% rename from front/public/themes/default/connexion.html rename to front/admin/www/themes/default/connexion.html diff --git a/front/public/themes/default/gestion-quizs.html b/front/admin/www/themes/default/gestion-quizs.html similarity index 100% rename from front/public/themes/default/gestion-quizs.html rename to front/admin/www/themes/default/gestion-quizs.html diff --git a/front/public/themes/default/gestion-utilisateurs.html b/front/admin/www/themes/default/gestion-utilisateurs.html similarity index 100% rename from front/public/themes/default/gestion-utilisateurs.html rename to front/admin/www/themes/default/gestion-utilisateurs.html diff --git a/front/public/themes/default/gestion.html b/front/admin/www/themes/default/gestion.html similarity index 100% rename from front/public/themes/default/gestion.html rename to front/admin/www/themes/default/gestion.html diff --git a/front/public/themes/default/index.html b/front/admin/www/themes/default/index.html similarity index 100% rename from front/public/themes/default/index.html rename to front/admin/www/themes/default/index.html diff --git a/front/public/themes/default/inscription.html b/front/admin/www/themes/default/inscription.html similarity index 100% rename from front/public/themes/default/inscription.html rename to front/admin/www/themes/default/inscription.html diff --git a/front/public/themes/default/login.html b/front/admin/www/themes/default/login.html similarity index 100% rename from front/public/themes/default/login.html rename to front/admin/www/themes/default/login.html diff --git a/front/public/themes/default/newlogin.html b/front/admin/www/themes/default/newlogin.html similarity index 100% rename from front/public/themes/default/newlogin.html rename to front/admin/www/themes/default/newlogin.html diff --git a/front/public/themes/default/sortie.html b/front/admin/www/themes/default/sortie.html similarity index 100% rename from front/public/themes/default/sortie.html rename to front/admin/www/themes/default/sortie.html diff --git a/front/public/themes/default/stop-mail.html b/front/admin/www/themes/default/stop-mail.html similarity index 100% rename from front/public/themes/default/stop-mail.html rename to front/admin/www/themes/default/stop-mail.html diff --git a/front/public/themes/default/validation.html b/front/admin/www/themes/default/validation.html similarity index 100% rename from front/public/themes/default/validation.html rename to front/admin/www/themes/default/validation.html diff --git a/front/public/themes/wikilerni/css/style.css b/front/admin/www/themes/wikilerni/css/style.css similarity index 100% rename from front/public/themes/wikilerni/css/style.css rename to front/admin/www/themes/wikilerni/css/style.css diff --git a/front/public/themes/wikilerni/img/background-texture.png b/front/admin/www/themes/wikilerni/img/background-texture.png similarity index 100% rename from front/public/themes/wikilerni/img/background-texture.png rename to front/admin/www/themes/wikilerni/img/background-texture.png diff --git a/front/public/themes/wikilerni/img/correct-min.png b/front/admin/www/themes/wikilerni/img/correct-min.png similarity index 100% rename from front/public/themes/wikilerni/img/correct-min.png rename to front/admin/www/themes/wikilerni/img/correct-min.png diff --git a/front/public/themes/wikilerni/img/diaspora.png b/front/admin/www/themes/wikilerni/img/diaspora.png similarity index 100% rename from front/public/themes/wikilerni/img/diaspora.png rename to front/admin/www/themes/wikilerni/img/diaspora.png diff --git a/front/admin/www/themes/wikilerni/img/email.png b/front/admin/www/themes/wikilerni/img/email.png new file mode 100644 index 0000000000000000000000000000000000000000..de99b82bd09facc0f1f8efa92309a38a4c30047f GIT binary patch literal 811 zcmV+`1JwM9P)231SddRvxWcw0=P*; zK~z}7?UylYB2f^>f9swEw31w*;1-I=f`Zs>V{-`Bg4zg{eu-RtwY61J`vn9$!9r|A z1zA=sY{ZKML{T(0A<;b=4>nM?vO z9*@y9?XST#O=CPB1CUH68I4Bo(}8Zci(weJ-EJn6$^KMcGhNr2OeVP9ZVbbq+wGo4 zh}!Koi9`YsVK^KTi^cxf6N|+d4u^;ci9~{SyM0jXfzt+a=Ft0)d;=ko_a>^qcVu_z)Ug+f69$z(DjBC=dA#q0GR z-066|URf@eA|jH>WCV~xp&%k6#bWW<-d9gRL`bDl)a&)Vu-LYJa9wTN-V0Z~UMH1G zAtHyDAe+t7Y&HS#`~55yi=(A@u~^{u`vGV+n`E=u!%H9{GM~>yRn>Plo~o+Kd_LcQ z_hkvbyhU|=ea+L;)7krjX8`Ngi671^giuHQ^Z0)lv{seICMzc%Vy$W0b p-!263 -order allow,deny -deny from all - - -# erreur 404 -ErrorDocument 404 /404.html \ No newline at end of file diff --git a/front/public/admin/gestion.html b/front/public/admin/gestion.html deleted file mode 100644 index 41f82ff..0000000 --- a/front/public/admin/gestion.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - Mon WikiLerni - - - - - - - - - -
    - WikiLerni (logo) - -
    - -
    - -
    - - - - - -
    - - - - \ No newline at end of file diff --git a/front/public/admin/sortie.html b/front/public/admin/sortie.html deleted file mode 100644 index 0bbf7a9..0000000 --- a/front/public/admin/sortie.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - Déconnexion WikiLerni - - - - - - - - - -
    - WikiLerni (logo) - -
    - -
    - Logo WikiLerni -

    Cultivons notre jardin !

    -

    Au revoir !

    -

    Si vous voyez ce message, c’est qu’un problème a été rencontré durant la déconnexion.
    N’hésitez pas à nous prévenir si le problème persiste.

    -
    - - - - \ No newline at end of file diff --git a/front/public/package-lock.json b/front/public/package-lock.json new file mode 100644 index 0000000..f979067 --- /dev/null +++ b/front/public/package-lock.json @@ -0,0 +1,10513 @@ +{ + "name": "wikilerni", + "version": "0.2.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "wikilerni", + "version": "0.2.0", + "license": "GPL-3.0-or-later", + "devDependencies": { + "@babel/core": "^7.15.5", + "@babel/preset-env": "^7.15.6", + "@webpack-cli/serve": "^1.5.2", + "babel-loader": "^8.2.2", + "babel-polyfill": "^6.26.0", + "webpack": "^5.56.1", + "webpack-cli": "^4.8.0", + "webpack-dev-server": "^4.3.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", + "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", + "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.0.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", + "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", + "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", + "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", + "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", + "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", + "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", + "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", + "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", + "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", + "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", + "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", + "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", + "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/babel-loader": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", + "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "dev": true, + "dependencies": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001312", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", + "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true + }, + "node_modules/core-js-compat": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", + "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", + "dev": true, + "dependencies": { + "browserslist": "^4.19.1", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.68", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz", + "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", + "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", + "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", + "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz", + "integrity": "sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dev": true, + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.1.tgz", + "integrity": "sha512-reLxBcKUPNBnc/sVtAbxgRVFSegoGeLaSjmphNhcwcolhYLRgtJscn5mRl6YRZNQv40Y7P6JM2YhSIsbL9OB5A==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-forge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", + "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "dev": true, + "dependencies": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "dev": true, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dev": true, + "dependencies": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", + "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", + "dev": true, + "dependencies": { + "node-forge": "^1.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "acorn": "^8.5.0" + }, + "peerDependenciesMeta": { + "acorn": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webpack": { + "version": "5.68.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.68.0.tgz", + "integrity": "sha512-zUcqaUO0772UuuW2bzaES2Zjlm/y3kRBQDVFVCge+s2Y8mwuUTdperGaAv65/NtRL/1zanpSJOq/MD8u61vo6g==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", + "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", + "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.2.2", + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", + "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "dev": true + }, + "@babel/core": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", + "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.0.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", + "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" + } + }, + "@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", + "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", + "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", + "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", + "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", + "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", + "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", + "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "@types/node": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", + "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "dev": true + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", + "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", + "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", + "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", + "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", + "dev": true, + "requires": {} + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "babel-loader": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", + "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "dev": true, + "requires": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + }, + "dependencies": { + "bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caniuse-lite": { + "version": "1.0.30001312", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", + "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "dev": true + }, + "core-js-compat": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", + "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", + "dev": true, + "requires": { + "browserslist": "^4.19.1", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.68", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz", + "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "enhanced-resolve": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", + "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "follow-redirects": { + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "dev": true + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "html-entities": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", + "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", + "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz", + "integrity": "sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dev": true, + "requires": { + "fs-monkey": "1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "requires": { + "mime-db": "1.51.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.1.tgz", + "integrity": "sha512-reLxBcKUPNBnc/sVtAbxgRVFSegoGeLaSjmphNhcwcolhYLRgtJscn5mRl6YRZNQv40Y7P6JM2YhSIsbL9OB5A==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-forge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", + "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", + "dev": true + }, + "node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "dev": true, + "requires": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dev": true, + "requires": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", + "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", + "dev": true, + "requires": { + "node-forge": "^1.2.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "requires": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "5.68.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.68.0.tgz", + "integrity": "sha512-zUcqaUO0772UuuW2bzaES2Zjlm/y3kRBQDVFVCge+s2Y8mwuUTdperGaAv65/NtRL/1zanpSJOq/MD8u61vo6g==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-cli": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", + "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", + "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", + "dev": true, + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.2.2", + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "requires": {} + } + } +} diff --git a/front/package.json b/front/public/package.json similarity index 92% rename from front/package.json rename to front/public/package.json index fe37e7f..87c8da1 100644 --- a/front/package.json +++ b/front/public/package.json @@ -1,7 +1,7 @@ { "name": "wikilerni", "version": "0.2.0", - "description": "Front-end of WikiLerni web application", + "description": "Public site of WikiLerni web application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", diff --git a/front/public/src/config/general.js b/front/public/src/config/general.js new file mode 100644 index 0000000..301baaf --- /dev/null +++ b/front/public/src/config/general.js @@ -0,0 +1,18 @@ +// à supprimer une fois que tout récupérer du backend : + +module.exports = +{ + apiUrl : "http://localhost:3000/api", + usersGetConfigUrl : "/user/getconfig", + lang : "fr", + userHomePage : "accueil.html", + adminHomePage : "admin.html", + managerHomePage : "gestion.html", + subscribePage : "inscription.html", + connectionPage : "connexion.html", + accountPage: "compte.html", + questionnairesManagementPage: "gestion-quizs.html", + usersManagementPage: "gestion-utilisateurs.html", + nbQuestionnairesUserHomePage : 10, + illustrationDir : "/img/quizs/" +}; \ No newline at end of file diff --git a/front/public/src/index.js b/front/public/src/index.js new file mode 100644 index 0000000..f55ca82 --- /dev/null +++ b/front/public/src/index.js @@ -0,0 +1,6 @@ +// -- SCRIPT DE BASE APPELÉ DANS LES PAGES TYPE ACCUEIL DU SITE +import { helloDev } from "./tools/everywhere.js"; +import { loadMatomo } from "./tools/matomo.js"; + +helloDev(); +loadMatomo(); \ No newline at end of file diff --git a/front/src/paymentPage.js b/front/public/src/paymentPage.js similarity index 69% rename from front/src/paymentPage.js rename to front/public/src/paymentPage.js index 499efd6..66cbc79 100644 --- a/front/src/paymentPage.js +++ b/front/public/src/paymentPage.js @@ -1,37 +1,19 @@ -// -- GESTION DE LA PAGE DU FINANCEMENT PARTICIPATIF (SANS DEVOIR ÊTRE CONNECTÉ) +// -- GESTION DE LA PAGE DU FINANCEMENT PARTICIPATIF /// Permet d'afficher les boutons de paiement WP suivant le choix de l'utilisateur. -/// Matomo est également activé si l'internaute n'est pas connecté. - -// Fichier de configuration tirés du backend : -import { availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; - -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); // Fonctions utiles au script : -import { getLocaly } from "./tools/clientstorage.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; +import { helloDev } from "./tools/everywhere.js"; import { loadMatomo } from "./tools/matomo.js"; -import { checkSession } from "./tools/users.js"; import { showBtnPayment, unCheckAllOthers } from "./tools/webportage.js"; helloDev(); +loadMatomo(); const initialise = async () => { try { - const isConnected=await checkSession(); - if(isConnected) - { - // on change le lien du compte en haut : - const user=getLocaly("user", true); - updateAccountLink(user.status, configTemplate); - } - else - loadMatomo(); - // Les boutons de paiement WP : const CGV=document.getElementById("CGVOk"); const abo1=document.getElementById("abo1"); diff --git a/front/src/quiz.js b/front/public/src/quiz.js similarity index 96% rename from front/src/quiz.js rename to front/public/src/quiz.js index a764c32..13f277c 100644 --- a/front/src/quiz.js +++ b/front/public/src/quiz.js @@ -6,21 +6,20 @@ /// Si la base de donnée locale existe déjà, l'enregistrement de son résultat se fait automatiquement dans IndexedDB et ses éventuels précédents résultats sont affichés. // Configurations générales provenant du backend : -import { availableLangs, theme } from "../../config/instance.js"; +import { availableLangs, theme } from "../../../config/instance.js"; const lang=availableLangs[0]; -const configTemplate=require("../../views/"+theme+"/config/"+lang+".js"); // Fonctions : import { checkAllPreviousResults, checkUserAnswers, getResultOutput, resultsOpenDb, saveNewQuiz, saveResult, saveResultTemp, showPreviousResults } from "./tools/answers.js"; import { saveIsReady } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; import { helloDev } from "./tools/everywhere.js"; -import { isEmpty } from "../../tools/main"; +import { isEmpty } from "../../../tools/main"; import { loadMatomo } from "./tools/matomo.js"; // Textes : -const { wantToSaveResponses, wantToSeaPreviousResults }=require("../../lang/"+lang+"/answer"); -const { localDBConnexionFail, serverError }=require("../../lang/"+lang+"/general"); +const { wantToSaveResponses, wantToSeaPreviousResults }=require("../../../lang/"+lang+"/answer"); +const { localDBConnexionFail, serverError }=require("../../../lang/"+lang+"/general"); // Informations du quiz, utile pour enregistrement dans base de donnée locale : const myForm=document.getElementById("quiz");// quiz diff --git a/front/src/tools/answers.js b/front/public/src/tools/answers.js similarity index 98% rename from front/src/tools/answers.js rename to front/public/src/tools/answers.js index 9d73dd6..8514a03 100644 --- a/front/src/tools/answers.js +++ b/front/public/src/tools/answers.js @@ -1,13 +1,13 @@ // Fonctions externes : import { addElement } from "./dom.js"; -import { dateFormat, isEmpty, replaceAll } from "../../../tools/main"; +import { dateFormat, isEmpty, replaceAll } from "../../../../tools/main"; import { saveLocaly, getStore } from "./clientstorage.js"; import { getDatasFromInputs } from "./forms.js"; // Textes : -import { availableLangs } from "../../../config/instance.js"; +import { availableLangs } from "../../../../config/instance.js"; const lang=availableLangs[0]; -const { localDBNeedDatas, localDBNeedQuizId, noPreviousResults, previousResultsLine, previousResultsTitle, previousResultsStats, userAnswersFail, userAnswersMedium, userAnswersSuccess }=require("../../../lang/"+lang+"/answer"); +const { localDBNeedDatas, localDBNeedQuizId, noPreviousResults, previousResultsLine, previousResultsTitle, previousResultsStats, userAnswersFail, userAnswersMedium, userAnswersSuccess }=require("../../../../lang/"+lang+"/answer"); // Vérification des réponses de l'utilisateur au quiz export const checkUserAnswers = (myForm) => diff --git a/front/public/src/tools/clientstorage.js b/front/public/src/tools/clientstorage.js new file mode 100644 index 0000000..1b672bf --- /dev/null +++ b/front/public/src/tools/clientstorage.js @@ -0,0 +1,34 @@ +// FONCTIONS UTILES AU STOCKAGE LOCAL (SESSION, COOKIES, INDEXDB, ETC.) +// Éviter sessionStorage dont le contenu n'est pas gardé d'un onglet à l'autre : https://developer.mozilla.org/fr/docs/Web/API/Window/sessionStorage + +export const saveLocaly = (name, data) => +{ + localStorage.setItem(name, JSON.stringify(data)); +} + +export const getLocaly = (name, json=false) => +{ + if(json) + return JSON.parse(localStorage.getItem(name)); + else + return localStorage.getItem(name); +} + +export const removeLocaly = (name) => +{ + localStorage.removeItem(name); +} + +export const saveIsReady = () => +{ + if (!window.indexedDB) + return false; + else + return true; +} + +export const getStore = (db, store_name, mode) => + { + const tx=db.transaction(store_name, mode); + return tx.objectStore(store_name); + } \ No newline at end of file diff --git a/front/public/src/tools/dom.js b/front/public/src/tools/dom.js new file mode 100644 index 0000000..c42cccc --- /dev/null +++ b/front/public/src/tools/dom.js @@ -0,0 +1,34 @@ +import { isEmpty } from "../../../../tools/main"; + +// Fonction associant les attributs fournis à un champ de formulaire +export const addElement = (eltParent, eltType, eltContent="", eltId="", eltClass=[], eltAttributes={}, replace=true) => +{ + if(isEmpty(eltType) || isEmpty(eltParent)) + return false; + else + { + const newElement=document.createElement(eltType); + + if(!isEmpty(eltId))// tester si l'id n'est pas déjà utilisé dans le DOM ? + newElement.id=eltId; + + if(Array.isArray(eltClass) && eltClass.length!=0) + { + for(let i in eltClass) + newElement.classList.add(eltClass[i]); + } + + if(typeof eltAttributes === "object") // !! tous les objets ne sont pas ok + { + for(let attributName in eltAttributes) + newElement.setAttribute(attributName, eltAttributes[attributName]); + } + + if(!isEmpty(eltContent)) + newElement.innerHTML=eltContent.replace(/\n/g,"
    ");// innerHTML permet d'ajouter du texte ayant lui-même des balises, etc. + + if(replace) + eltParent.innerHTML=""; + eltParent.appendChild(newElement); + } +} \ No newline at end of file diff --git a/front/public/src/tools/everywhere.js b/front/public/src/tools/everywhere.js new file mode 100644 index 0000000..67f90c7 --- /dev/null +++ b/front/public/src/tools/everywhere.js @@ -0,0 +1,6 @@ +// Ce script fournit des fonctions utilisées sur toutes les pages du site +export const helloDev = () => +{ + console.log("**** Hello les devs :-)\nLe code source de WikiLerni est libre et vous pouvez le trouver à cette adresse :\nhttps://forge.chapril.org/Fab_Blab/WikiLerni\nBonne lecture ! ****"); + return true; +} \ No newline at end of file diff --git a/front/public/src/tools/forms.js b/front/public/src/tools/forms.js new file mode 100644 index 0000000..88efe4a --- /dev/null +++ b/front/public/src/tools/forms.js @@ -0,0 +1,51 @@ +import { isEmpty } from "../../../../tools/main"; + +// Fonction associant les attributs fournis à un champ de formulaire +export const setAttributesToInputs = (inputsConf, myForm) => +{ + for(let i in myForm.elements) + { + if(!isEmpty(myForm.elements[i].id)) + { + let idInput=myForm.elements[i].id; + if(inputsConf[idInput]!==undefined) + { + let inputHTML=document.getElementById(idInput); + for (let attribute in inputsConf[idInput]) + inputHTML.setAttribute(attribute, inputsConf[idInput][attribute]); + } + } + } + return true; +} + +// Récupère toutes les valeurs de champs en omettant les checkbox non cochées, etc. +export const getDatasFromInputs = (myForm) => +{ + const datas={}; + const formData = new FormData(myForm); + for(let entrie of formData.entries()) + datas[entrie[0]]=entrie[1]; + return datas; +} + +// Vide tous les champs d'un formulaire, y compris hidden, checkbox, etc. +// Revoir pour les select +export const empyForm = (myForm) => +{ + const formData = new FormData(myForm); + for(let entrie of formData.entries()) + { + if(myForm.elements[entrie[0]].type=="checkbox" || myForm.elements[entrie[0]].type=="radio") + myForm.elements[entrie[0]].checked=false; + else + myForm.elements[entrie[0]].value=""; + } + return true; +} +// Vide et cache le formulaire +export const empyAndHideForm = (myForm) => +{ + empyForm(myForm); + myForm.style.display="none"; +} \ No newline at end of file diff --git a/front/src/tools/matomo.js b/front/public/src/tools/matomo.js similarity index 95% rename from front/src/tools/matomo.js rename to front/public/src/tools/matomo.js index 0c155bf..d993941 100644 --- a/front/src/tools/matomo.js +++ b/front/public/src/tools/matomo.js @@ -1,4 +1,4 @@ -import { matomo } from "../../../config/matomo.js"; +import { matomo } from "../../../../config/matomo.js"; // Fonction chargeant le code matomo export const loadMatomo = () => diff --git a/front/public/src/tools/webportage.js b/front/public/src/tools/webportage.js new file mode 100644 index 0000000..0fa6fc1 --- /dev/null +++ b/front/public/src/tools/webportage.js @@ -0,0 +1,41 @@ +const checkBoxes= +{ + "CGV" : document.getElementById("CGVOk"), + "abo1" : document.getElementById("abo1"), + "abo2" : document.getElementById("abo2"), + "abo3" : document.getElementById("abo3"), + "abo4" : document.getElementById("abo4") +} +const divWPBtns=document.getElementById("WPBtns"); + +// Lorsque l'on sélectionne un montant, les autres options + les CGV sont désélectionnés +export const unCheckAllOthers = (choice) => +{ + for (let id in checkBoxes) + { + if(id!==choice) + checkBoxes[id].checked=false; + divWPBtns.style.display="none"; + } +} + + +const btns= +{ + "btn1" : document.getElementById("WPBtn1"), + "btn2" : document.getElementById("WPBtn2"), + "btn3" : document.getElementById("WPBtn3"), + "btn4" : document.getElementById("WPBtn4") +} + +// Affiche le bon bouton de paiement et cache les autres +export const showBtnPayment = (choice) => +{ + for (let id in btns) + { + if(id!==choice) + btns[id].style.display="none"; + else + btns[id].style.display="block"; + } +} \ No newline at end of file diff --git a/front/public/webpack.config.js b/front/public/webpack.config.js new file mode 100644 index 0000000..c0a7898 --- /dev/null +++ b/front/public/webpack.config.js @@ -0,0 +1,37 @@ +const path = require('path'); + +module.exports = +{ + mode: "development", + entry: + { + index: "./src/index.js", + paymentPage: "./src/paymentPage.js", + polyfill: "babel-polyfill", + quiz: "./src/quiz.js" + }, + output: + { + path: path.resolve(__dirname, "public"), + filename: "JS/[name].app.js", + }, + module: + { + rules: [ + { + test: /\.js$/, + exclude: /node_modules/, + use: { + loader: "babel-loader", + options: { + presets: ["@babel/preset-env"] + } + } + } + ] + }, + devServer: + { + static: path.resolve(__dirname, "./www") + }, +}; \ No newline at end of file diff --git a/front/public/404.html b/front/public/www/404.html similarity index 96% rename from front/public/404.html rename to front/public/www/404.html index 8bbb978..e3bb7db 100644 --- a/front/public/404.html +++ b/front/public/www/404.html @@ -21,7 +21,6 @@ diff --git a/front/public/www/WikiLerni-pub.asc b/front/public/www/WikiLerni-pub.asc new file mode 100644 index 0000000..6c314bd --- /dev/null +++ b/front/public/www/WikiLerni-pub.asc @@ -0,0 +1,35 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +qJv6ZtLnAb/6I0Q7qAtQ7gxTdBJuZloUlWM= +=jiGl +-----END PGP PUBLIC KEY BLOCK----- diff --git a/front/public/a-propos.html b/front/public/www/a-propos.html similarity index 100% rename from front/public/a-propos.html rename to front/public/www/a-propos.html diff --git a/front/public/contact.html b/front/public/www/contact.html similarity index 96% rename from front/public/contact.html rename to front/public/www/contact.html index bb06788..fdad755 100644 --- a/front/public/contact.html +++ b/front/public/www/contact.html @@ -20,7 +20,6 @@ diff --git a/front/public/credits.html b/front/public/www/credits.html similarity index 97% rename from front/public/credits.html rename to front/public/www/credits.html index 6c1e4a2..de111ce 100644 --- a/front/public/credits.html +++ b/front/public/www/credits.html @@ -21,7 +21,6 @@ diff --git a/front/public/donnees.html b/front/public/www/donnees.html similarity index 98% rename from front/public/donnees.html rename to front/public/www/donnees.html index a6b0783..193e222 100644 --- a/front/public/donnees.html +++ b/front/public/www/donnees.html @@ -21,7 +21,6 @@ diff --git a/front/public/www/img/404-notfound.png b/front/public/www/img/404-notfound.png new file mode 100644 index 0000000000000000000000000000000000000000..6bf65891b0318445176a35358d01a5d60621690f GIT binary patch literal 189680 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
    2e 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
  • _C@|--YRyXeNBS5T8=^A147KPtW2o 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�dBtA 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 maPdh~E>SrmBoCSs!h$-sCHP|14L3)XCuN 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 U%a~uDqw14O$=F~MV|g(48wrY>ivR!s literal 0 HcmV?d00001 diff --git a/front/public/img/tirelire.jpg b/front/public/www/img/tirelire.jpg similarity index 100% rename from front/public/img/tirelire.jpg rename to front/public/www/img/tirelire.jpg diff --git a/front/public/merci.html b/front/public/www/merci.html similarity index 96% rename from front/public/merci.html rename to front/public/www/merci.html index babd387..0085750 100644 --- a/front/public/merci.html +++ b/front/public/www/merci.html @@ -20,7 +20,6 @@ diff --git a/front/public/participer-financement.html b/front/public/www/participer-financement.html similarity index 98% rename from front/public/participer-financement.html rename to front/public/www/participer-financement.html index fd759fc..23abde7 100644 --- a/front/public/participer-financement.html +++ b/front/public/www/participer-financement.html @@ -21,7 +21,6 @@ diff --git a/front/public/robots.txt b/front/public/www/robots.txt similarity index 100% rename from front/public/robots.txt rename to front/public/www/robots.txt diff --git a/front/src/accountUser.js b/front/src/accountUser.js deleted file mode 100644 index 83d4265..0000000 --- a/front/src/accountUser.js +++ /dev/null @@ -1,260 +0,0 @@ -// -- GESTION DES FORMULAIRES PERMETTANT AUX UTILISATEURS DE METTRE À JOUR LEURS INFORMATIONS + LEUR ABONNEMENT - -/// Vérifier que l'utilisateur est bien connecté, a le bon statut et le rediriger vers le formulaire d'inscription si ce n'est pas le cas. -/// Si c'est ok, on récupère les infos de son compte et son abonnement et les affiche dans le formulaire. -/// Une information est affichée concernant la possibilité de parrainage et liste les filleuls existants. -/// Un menu permet à l'utilisateur d'accéder à la modification de ses infos, etc. -/// Des boutons de paiement sont aussi affichés suivant le choix de l'utilisateur pour lui permettre de prolonger son abonnement. -/// Un message venant d'une autre page peut aussi être à afficher lors du premier chargement. - -// Fichier de configuration côté client : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js");// besoin de toutes les déclarations pour la fonction : updateAccountLink() -const { beginCodeGodfather } = require("../../config/instance"); -const configUsers = require("../../config/users"); // besoin de tous le fichier pour configurer le formulaire - -// Fonctions utiles au script -import { getLocaly, removeLocaly } from "./tools/clientstorage.js"; -import { addElement } from "./tools/dom.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; -import { getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; -import { isEmpty } from "../../tools/main"; -import { checkSession, getConfig, getTimeDifference } from "./tools/users.js"; - -// Spécifique WebPortage pour paiements: -import { showBtnPayment, unCheckAllOthers } from "./tools/webportage.js"; - -// Dictionnaires : -const { serverError } = require("../../lang/"+lang+"/general"); -const { infosUserNbGodChilds, infosUserNoGodchilds, needBeConnected } = require("../../lang/"+lang+"/user"); -const { infosExpirated, infosNbDays } = require("../../lang/"+lang+"/subscription"); - -// Principaux éléments du DOM manipulés : -const divCrash = document.getElementById("crash"); -const divMain = document.getElementById("main-content"); -const divMessage = document.getElementById("message"); -const divResponse = document.getElementById("response"); -const divGodfatherInfos = document.getElementById("godfatherInfos"); -const divGodchilds = document.getElementById("godchilds"); -const divSubscribeInfos = document.getElementById("subscribeInfos"); -const divSubscribeIntro = document.getElementById("subscribeIntro"); -const formAccount = document.getElementById("accountUpdate"); -const newPassword = document.getElementById("newPassword"); -const showGFEmail = document.getElementById("godfatherEmail"); -const showGFCode = document.getElementById("godfatherCode"); - -helloDev(); - -const initialise = async () => -{ - try - { - // Si l'utilisateur n'est pas connecté avec le bon statut, pas la peine d'aller + loin : - const isConnected=await checkSession(["user"], "/"+configTemplate.connectionPage, { message: needBeConnected, color:"error" }, window.location); - if(isConnected) - { - divMain.style.display="block"; - // l'éventuelle ancre est ignorée, car absente du DOM avant d'avoir vérifié la connexion - if(window.location.hash!==undefined) - window.location.assign(window.location.hash); - - if(!isEmpty(getLocaly("message"))) - { - addElement(divMessage, "p", getLocaly("message", true).message, "", [getLocaly("message", true).color], "", false); - removeLocaly("message"); - } - const user=getLocaly("user", true); - updateAccountLink(user.status, configTemplate); - // Initialise le formulaire permettant de mettre à jour les infos : - setAttributesToInputs(configUsers, formAccount); - // Certains navigateurs remplissent les champs password : - newPassword.value=""; - - // Fonction affichant les infos connues au premier affichage, puis après envoi mise à jour - const getInfos = () => - { - const xhrGetInfos = new XMLHttpRequest(); - xhrGetInfos.open("GET", apiUrl+configUsers.userRoutes+configUsers.getUserInfos+user.id); - xhrGetInfos.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && response.User != undefined && response.Subscription != undefined) - { - for(let data in response.User) - { - if(formAccount.elements[data]!==undefined) - { - if(response.User[data]!==true && response.User[data]!==false)// booléen = case à cocher ! - formAccount.elements[data].value=response.User[data]; - else if (response.User[data]==true) // si false, on ne fait rien - formAccount.elements[""+data].checked="checked"; - } - } - // jours de réception - for(let i in response.Subscription.receiptDays) - formAccount.elements["d"+response.Subscription.receiptDays[i]].checked="checked"; - // "codes" possibles à transmettre pour parrainer d'autres utilisateurs - showGFEmail.innerHTML=response.User.email; - showGFCode.innerHTML=beginCodeGodfather+response.User.id; - } - const beginSubTS=new Date(response.Subscription.createdAt).getTime(); - if(response.Subscription.numberOfDays !== 0) - { - divGodfatherInfos.style.display="block"; - divSubscribeInfos.style.display="block"; - const nbDaysOk=response.Subscription.numberOfDays-Math.round((Date.now()-beginSubTS)/1000/3600/24); - if(nbDaysOk > 0) - addElement(divSubscribeIntro, "p", infosNbDays.replace("NB_DAYS", nbDaysOk), "", ["info"]); - else - { - addElement(divSubscribeIntro, "p", infosExpirated.replace("NB_DAYS", nbDaysOk), "", ["error"]); - window.location.assign("#subscribe"); - } - } - } - } - xhrGetInfos.setRequestHeader("Authorization", "Bearer "+user.token); - xhrGetInfos.send(); - } - // Remonte les infos déjà enregistrées : - getInfos(); - - // Traitement de l'envoi d'une mise à jour des infos - formAccount.addEventListener("submit", function(e) - { - e.preventDefault(); - divResponse.innerHTML=""; - let datas=getDatasFromInputs(formAccount); - // recomposition des jours valables pour l'abonnement : - datas.receiptDays=""; - for(let i=1; i<=7; i++) - { - if(datas["d"+i]!==undefined) - datas.receiptDays+=""+i; - } - datas.timeDifference=getTimeDifference(); - const xhrUserUpdate = new XMLHttpRequest(); - if(datas.deleteOk!==undefined) - xhrUserUpdate.open("DELETE", apiUrl+configUsers.userRoutes+"/"+user.id); - else - xhrUserUpdate.open("PUT", apiUrl+configUsers.userRoutes+configUsers.updateUserInfos+user.id); - xhrUserUpdate.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && response.message!=undefined) - { - if(Array.isArray(response.message)) - response.message = response.message.join("
    "); - else - response.message = response.message; - addElement(divResponse, "p", response.message, "", ["success"]); - } - else if (response.errors) - { - if(Array.isArray(response.errors)) - response.errors = response.errors.join("
    "); - else - response.errors = serverError; - addElement(divResponse, "p", response.errors, "", ["error"]); - } - else - addElement(divResponse, "p", serverError, "", ["error"]); - // dans tous les cas, je mets à jour le contenu du formulaire : - getInfos(); - } - } - xhrUserUpdate.setRequestHeader("Content-Type", "application/json"); - xhrUserUpdate.setRequestHeader("Authorization", "Bearer "+user.token); - if(datas) - { - datas.output="html"; - xhrUserUpdate.send(JSON.stringify(datas)); - } - }); - - // on passe à la caisse ? - const abo9=document.getElementById("abo9"); - const abo18=document.getElementById("abo18"); - const abo36=document.getElementById("abo36"); - const abo54=document.getElementById("abo54"); - const CGV=document.getElementById("CGVOk"); - const divWPBtns=document.getElementById("WPBtns"); - divWPBtns.style.display="none"; - abo9.addEventListener("change", function(e) - { - unCheckAllOthers("abo9"); - }); - abo18.addEventListener("change", function(e) - { - unCheckAllOthers("abo18"); - }); - abo36.addEventListener("change", function(e) - { - unCheckAllOthers("abo36"); - }); - abo54.addEventListener("change", function(e) - { - unCheckAllOthers("abo54"); - }); - CGV.addEventListener("change", function(e) - { - if(CGV.checked===true) - { - divWPBtns.style.display="block"; - if(abo9.checked===true) - showBtnPayment("btn9"); - else if(abo18.checked===true) - showBtnPayment("btn18"); - else if(abo36.checked===true) - showBtnPayment("btn36"); - else if(abo54.checked===true) - showBtnPayment("btn54"); - else - { - divWPBtns.style.display="none"; - CGV.checked=false; - } - } - else - divWPBtns.style.display="none"; - }); - - // Liste des filleuls, si il y en a - const xhrGetGodchilds = new XMLHttpRequest(); - xhrGetGodchilds.open("GET", apiUrl+configUsers.userRoutes+configUsers.getGodChilds); - xhrGetGodchilds.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText), txtGodchilds=""; - if (this.status === 200) - { - const nbGodchilds=response.length; - if(nbGodchilds===0) - txtGodchilds=infosUserNoGodchilds; - else - { - txtGodchilds=infosUserNbGodChilds.replace("#NB", nbGodchilds); - for(let i in response) - txtGodchilds+=response[i].name+" ("+response[i].email+") "; - } - } - addElement(divGodchilds, "p", txtGodchilds, "", ["info"]); - } - } - xhrGetGodchilds.setRequestHeader("Authorization", "Bearer "+user.token); - xhrGetGodchilds.send(); - } - } - catch(e) - { - addElement(divCrash, "p", serverError, "", ["error"]); - console.error(e); - } -} -initialise(); \ No newline at end of file diff --git a/front/src/deleteValidation.js b/front/src/deleteValidation.js deleted file mode 100644 index 7098e21..0000000 --- a/front/src/deleteValidation.js +++ /dev/null @@ -1,69 +0,0 @@ -// -- GESTION DE LA PAGE PERMETTANT DE VALIDER LA DEMANDE DE SUPPRESSION DE SON COMPTE - -/// Un token est transmis en paramètre de l'Url. Il a une validité limitée dans le temps. -/// Si le token est ok, on valide la suppression, supprime la session de l'utilisateur et affiche un message de confirmation. - -// Fichier de configuration côté client : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; -const { accountPage } = require("../../views/"+theme+"/config/"+lang+".js"); -const { checkDeleteLinkRoute, userRoutes } = require("../../config/users"); - -// Importation des fonctions utile au script : -import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js"; -import { addElement } from "./tools/dom.js"; -import { helloDev } from "./tools/everywhere.js"; -import { loadMatomo } from "./tools/matomo.js"; -import { getUrlParams } from "./tools/url.js"; -import { checkSession, setSession } from "./tools/users.js"; - -// Dictionnaires : -const { serverError } = require("../../lang/"+lang+"/general"); -const { badLinkValidationMessage } = require("../../lang/"+lang+"/user"); - -const divResponse = document.getElementById("response"); - -helloDev(); - -const initialise = async () => -{ - try - { - const datas=getUrlParams(); - if(datas && datas.t!==undefined) - { - const xhr = new XMLHttpRequest(); - xhr.open("GET", apiUrl+userRoutes+checkDeleteLinkRoute+datas.t); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && response.message != undefined) - { - addElement(divResponse, "p", response.message, "", ["success"]); - removeLocaly("user"); - } - else if (this.status === 400 && response.errors != undefined) - { - if(Array.isArray(response.errors)) - response.errors = response.errors.join("
    "); - else - response.errors = serverError; - addElement(divResponse, "p", response.errors, "", ["error"]); - } - else - addElement(divResponse, "p", badLinkValidationMessage.replace("#URL", accountPage), "", ["error"]); - } - } - xhr.setRequestHeader("Authorization", "Bearer "+datas.t); - xhr.send(); - } - } - catch(e) - { - addElement(divResponse, "p", serverError, "", ["error"]); - console.error(e); - } -} -initialise(); \ No newline at end of file diff --git a/front/src/groupElement.js b/front/src/groupElement.js deleted file mode 100644 index 8f0c8c1..0000000 --- a/front/src/groupElement.js +++ /dev/null @@ -1,138 +0,0 @@ -// -- PAGE AFFICHANT L'ÉLÉMENT D'UN GROUPE DE QUIZ ET PROPOSANT DE CRÉER SON COMPTE DE MANIÈRE SIMPLIFIÉE - -/// L'utilisateur peut avoir répondu à un quiz avant de lancer la création de son compte -/// Dans ce cas il faut enregistrer son résultat en même temps que les informations de son compte - -// Fichier de configuration tirés du backend : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js");// besoin de toutes les déclarations, car appel dynamique : configTemplate[homePage] -const configUsers = require("../../config/users");// idem pour configurer formulaire - -// Importation des fonctions utiles au script : -import { getLocaly, removeLocaly } from "./tools/clientstorage.js"; -import { addElement } from "./tools/dom.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; -import { getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; -import { loadMatomo } from "./tools/matomo.js"; -import { checkAnswerDatas, checkSession, getTimeDifference } from "./tools/users.js"; - -// Dictionnaires : -const { serverError } = require("../../lang/"+lang+"/general"); -const { needUniqueEmail } = require("../../lang/"+lang+"/user"); - -// Principaux éléments du DOM manipulés : -const btnSubmit=document.getElementById("submitDatas"); -const divResponse=document.getElementById("response"); -// const emailInput=document.getElementById("email"); -// const myForm=document.getElementById("subscription"); - -// Test de connexion de l'utilisateur + affichage formulaire d'inscription : -const initialise = async () => -{ - try - { - /* - let isConnected=await checkSession(), user; - if(isConnected) - { - user=getLocaly("user", true); - updateAccountLink(user.status, configTemplate);// lien vers le compte adapté pour les utilisateurs connectés - } - else - { */ - loadMatomo(); - //setAttributesToInputs(configUsers, myForm); - //myForm.style.display="block"; - //} - } - catch(e) - { - addElement(divResponse, "p", serverError, "", ["error"]); - console.error(e); - } -} -initialise(); -helloDev(); - -/* -// Test si l'e-mail saisi est déjà utilisé par un autre compte. -// Si c'est le cas, la validation du formulaire est bloquée. -emailInput.addEventListener("focus", function(e) -{ - document.getElementById("emailMessage").innerHTML="";// pour supprimer l'éventuel message d'erreur déjà affiché -}); -emailInput.addEventListener("blur", function(e) -{ - const emailValue=emailInput.value.trim(); - if(emailValue!=="") - { - const xhr = new XMLHttpRequest(); - xhr.open("POST", apiUrl+configUsers.userRoutes+configUsers.checkIfIsEmailfreeRoute); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && response.free !== undefined && response.free === false) - { - addElement(document.getElementById("emailMessage"), "div", needUniqueEmail.replace("#URL", configTemplate.connectionPage), "", ["error"]); - btnSubmit.setAttribute("disabled", true); - } - else - btnSubmit.removeAttribute("disabled"); - } - } - xhr.setRequestHeader("Content-Type", "application/json"); - const datas={ emailTest:emailValue }; - xhr.send(JSON.stringify(datas)); - } -}) - -// Traitement de l'envoi des données d'inscription : -myForm.addEventListener("submit", function(e) -{ - try - { - e.preventDefault(); - const xhr = new XMLHttpRequest(); - xhr.open("POST", apiUrl+configUsers.userRoutes+configUsers.subscribeRoute); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 201) - { - myForm.style.display="none"; - addElement(divResponse, "p", response.message, "", ["success"]); - removeLocaly("lastAnswer");// !! important, pour ne pas enregister plusieurs fois le résultat. - } - else if (response.errors) - { - if(Array.isArray(response.errors)) - response.errors = response.errors.join("
    "); - else - response.errors = serverError; - addElement(divResponse, "p", response.errors, "", ["error"]); - } - else - addElement(divResponse, "p", serverError, "", ["error"]); - } - } - xhr.setRequestHeader("Content-Type", "application/json"); - let datas=getDatasFromInputs(myForm); - if(datas) - { - datas.timeDifference=getTimeDifference(configUsers); - // Si l'utilisateur a précédement répondu à un quiz, on ajoute les données de son résultat : - datas=checkAnswerDatas(datas); - xhr.send(JSON.stringify(datas)); - } - } - catch(e) - { - addElement(divResponse, "p", serverError, "", ["error"]); - console.error(e); - } -});;*/ \ No newline at end of file diff --git a/front/src/homeUser.js b/front/src/homeUser.js deleted file mode 100644 index a1c342d..0000000 --- a/front/src/homeUser.js +++ /dev/null @@ -1,237 +0,0 @@ -// -- PAGE D'ACCUEIL DE L'UTILISATEUR - -/// Vérifier que l'utilisateur est bien connecté, a le bon statut et le rediriger vers le formulaire d'inscription si ce n'est pas le cas. -/// Si c'est ok, on récupère ses infos et stats + les derniers quizs auxquels il a accès, mais n'a pas répondu. -/// Un moteur de recherche permet d'obtenir d'autres quizs parmi ceux publiés. -/// Pour l'affichage des listings de quiz, l'API retourne directement du html. -/// Un menu permet à l'utilisateur d'accéder à la modification de ses infos, de son abonnement, etc. -/// Un message venant d'une autre page peut aussi être à afficher lors du premier chargement. - -// Fichier de configuration côté client : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); -const { getRandomQuestionnairesRoute, getStatsAnswers, questionnaireRoutes, searchQuestionnaires, searchQuestionnairesRoute } = require("../../config/questionnaires"); -const { getUsersQuestionnairesRoute, userRoutes } = require("../../config/users"); - -// Fonctions utiles au script : -import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js"; -import { addElement } from "./tools/dom.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; -import { getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; -import { isEmpty, replaceAll } from "../../tools/main"; -import { checkSession } from "./tools/users.js"; - -// Dictionnaires : -const { statsUser } = require("../../lang/"+lang+"/answer"); -const { nextPage, previousPage, serverError } = require("../../lang/"+lang+"/general"); -const { searchQuestionnaireWithResult, searchQuestionnaireWithNoResult } = require("../../lang/"+lang+"/questionnaire"); -const { lastQuestionnairesForUser, noQuestionnaireAccess } = require("../../lang/"+lang+"/questionnaireaccess"); -const { needBeConnected, welcomeMessage } = require("../../lang/"+lang+"/user"); - -// Principaux éléments du DOM manipulés : -const divMain= document.getElementById("main-content"); -const divCrash= document.getElementById("crash"); -const divMessage = document.getElementById("message"); -const quizIntro = document.getElementById("quizsIntro"); -const quizListing = document.getElementById("quizsList"); -const quizPaginationPrevious = document.getElementById("previous"); -const quizPaginationNext = document.getElementById("next"); -const formSearch = document.getElementById("search"); -const inputBegin = document.getElementById("begin"); -const btnRandom = document.getElementById("random"); - -helloDev(); - -const initialise = async () => -{ - try - { - // Si l'utilisateur n'est pas connecté, pas la peine d'aller + loin : - const isConnected=await checkSession(["user"], "/"+configTemplate.connectionPage, { message: needBeConnected, color:"error" }, window.location); - if(isConnected) - { - const user=getLocaly("user", true); - updateAccountLink(user.status, configTemplate); - addElement(divMessage, "h1", welcomeMessage.replace("#NAME", user.name)); - divMain.style.display="block"; - if(!isEmpty(getLocaly("message"))) - { - addElement(divMessage, "p", getLocaly("message", true).message, "", [getLocaly("message", true).color], "", false); - removeLocaly("message"); - } - // Initialisation du formulaire de recherche : - setAttributesToInputs({ "searchQuestionnaires": searchQuestionnaires }, formSearch); - // Les stats : - const xhrStats = new XMLHttpRequest(); - xhrStats.open("GET", apiUrl+questionnaireRoutes+getStatsAnswers+user.id); - xhrStats.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && !isEmpty(response.nbAnswers) && response.nbAnswers!==0)// pas de stats si aucune réponse ! - { - let txtIntro=""; - const mapText = - { - NBANSWERS : response.nbAnswers, - NBQUESTIONNAIRES : response.nbQuestionnaires, - NBTOTQUESTIONNAIRES : response.groups.nbPublished+response.questionnaires.nbWithoutGroupPublished, - AVGDURATION : response.avgDuration, - AVGCORRECTANSWERS : response.avgCorrectAnswers - }; - // La situation est plurielle... - txtIntro=replaceAll(statsUser, mapText); - txtIntro=(response.nbAnswers > 1) ? txtIntro.replace("S1", "s") : txtIntro.replace("S1", ""); - txtIntro=(response.nbQuestionnaires > 1) ? txtIntro.replace("S2", "s").replace("S3", "s") : txtIntro.replace("S2", "").replace("S3", "s"); - txtIntro=(mapText.NBTOTQUESTIONNAIRES > 1) ? txtIntro.replace("S4", "s") : txtIntro.replace("S4", ""); - addElement(divMessage, "p", txtIntro, "", "", "", false); - } - } - } - xhrStats.setRequestHeader("Authorization", "Bearer "+user.token); - xhrStats.send(); - - // Par défaut, on affiche des derniers éléments supposés lus par l'utilisateur : - const xhrLastQuizs = new XMLHttpRequest(); - xhrLastQuizs.open("GET", apiUrl+userRoutes+getUsersQuestionnairesRoute+""+user.id+"/"+0+"/"+configTemplate.nbQuestionnairesUserHomePage+"/html"); - xhrLastQuizs.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200) - { - if(response.nbTot === 0) - addElement(quizIntro, "p", noQuestionnaireAccess, "", ["info"]); - else if(response.html) - { - addElement(quizIntro, "p", lastQuestionnairesForUser, "", ["info"]); - quizListing.innerHTML=response.html; - } - else - addElement(quizs, "p", serverError, "", ["error"]);// revoir si intérêt d'afficher quelque chose - } - else - addElement(quizs, "p", serverError, "", ["error"]); // idem - } - } - xhrLastQuizs.setRequestHeader("Authorization", "Bearer "+user.token); - xhrLastQuizs.send(); - - // Traitement du lancement d'une recherche - // La recherche peut être lancée via la bouton submit ou un lien de pagination - const sendSearch = (type="search") => - { - quizListing.innerHTML=""+""; - let datas=getDatasFromInputs(formSearch); - const xhrSearch = new XMLHttpRequest(); - if(type=="search") - xhrSearch.open("POST", apiUrl+questionnaireRoutes+searchQuestionnairesRoute); - else if(type=="random") - xhrSearch.open("POST", apiUrl+questionnaireRoutes+getRandomQuestionnairesRoute); - xhrSearch.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && !isEmpty(response.nbTot)) - { - if(response.nbTot===0) - { - addElement(quizIntro, "p", searchQuestionnaireWithNoResult, "", ["info"]); - window.location.hash="";// sinon les hash s'enchaînent... - window.location.assign("#quizsIntro"); - } - else if(response.html) - { - let txtIntro=searchQuestionnaireWithResult.replace("#NB", response.nbTot); - txtIntro=(response.nbTot > 1) ? txtIntro.replace("#S","s") : txtIntro.replace("#S",""); - addElement(quizIntro, "p", txtIntro , "", ["success"]); - quizListing.innerHTML=response.html; - window.location.hash=""; - window.location.assign("#quizsIntro"); - // Pagination nécessaire ? - // on commence par vider... - quizPaginationPrevious.innerHTML=""; - quizPaginationNext.innerHTML=""; - if(response.begin != 0)// peut retourner "0" et non 0 ! - { - addElement(quizPaginationPrevious, "a", "<< "+previousPage , "previousRes", ["button"], { href: "#search" }); // revoir, les "<<" pourraient être gérées par le CSS - const previousPageElt=document.getElementById("previousRes"); - // le retour à la page précédente peut se faire en cliquant sur le bouton ou via l'historique du navigateur - const goBackRes = () => - { - let newBegin=response.begin-configTemplate.nbQuestionnairesUserHomePage; - if(newBegin<0) // ne devrait pas être possible.. - newBegin=0; - document.getElementById("begin").value=newBegin; - sendSearch(); - window.location.hash=""; - window.location.assign("#quizsIntro");// pour remonter - } - previousPageElt.addEventListener("click", function(e) - { - e.preventDefault(); - goBackRes(); - }); - /* semble provoqué bug ??? - window.onpopstate = function(e) - { - e.preventDefault(); - goBackRes(); - };*/ - } - if(response.end < (response.nbTot-1))// -1, car tableau commence à 0 ! - { - addElement(quizPaginationNext, "a", nextPage+ " >>", "nextRes", ["button"], { href: "#search" }, false); - const nextPageElt=document.getElementById("nextRes"); - nextPageElt.addEventListener("click", function(e) - { - e.preventDefault(); - document.getElementById("begin").value=response.end+1; - sendSearch(); - window.location.hash="";// sinon les hash s'enchaînent... - window.location.assign("#quizsIntro"); // pour remonter - }); - } - } - else - addElement(quizs, "p", serverError, "", ["error"]); - } - else - addElement(quizs, "p", serverError, "", ["error"]); - } - } - xhrSearch.setRequestHeader("Content-Type", "application/json"); - xhrSearch.setRequestHeader("Authorization", "Bearer "+user.token); - if(datas) - { - datas.output="html"; - xhrSearch.send(JSON.stringify(datas)); - } - } - - btnRandom.addEventListener("click", function(e) - { - e.preventDefault(); - document.getElementById("begin").value=0; - sendSearch("random"); - }); - - formSearch.addEventListener("submit", function(e) - { - e.preventDefault(); - document.getElementById("begin").value=0; - sendSearch(); - }); - } - } - catch(e) - { - console.error(e); - addElement(divCrash, "p", serverError, "", ["error"]); - } -} -initialise(); \ No newline at end of file diff --git a/front/src/index.js b/front/src/index.js deleted file mode 100644 index 79b7c63..0000000 --- a/front/src/index.js +++ /dev/null @@ -1,36 +0,0 @@ -// -- SCRIPT DE BASE APPELÉ DANS LES PAGES TYPE ACCUEIL DU SITE - -// Fichier de configuration tirés du backend : -import { availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; - -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); - -import { getLocaly } from "./tools/clientstorage.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; -import { loadMatomo } from "./tools/matomo.js"; -import { checkSession } from "./tools/users.js"; - -helloDev(); - -// Test de connexion de l'utilisateur pour adapter le lien du menu... -const initialise = async () => -{ - try - { - /* const isConnected=await checkSession(); - if(isConnected) - { - // on change le lien d'accès au compte - const user=getLocaly("user", true); - updateAccountLink(user.status, configTemplate); - } - else*/ - loadMatomo(); - } - catch(e) - { - console.error(e); - } -} -initialise(); \ No newline at end of file diff --git a/front/src/loginLink.js b/front/src/loginLink.js deleted file mode 100644 index a968183..0000000 --- a/front/src/loginLink.js +++ /dev/null @@ -1,92 +0,0 @@ -// -- PAGE PERMETTANT DE TESTER UN LIEN DE CONNEXION REÇU PAR E-MAIL - -/// Un token est transmis en paramètre de l'Url. Il a une validité limité dans le temps. -/// Dans ce cas, on peut rediriger l'utilisateur vers la page de connexion pour obtenir un nouveau lien de validation -/// Si le token est ok, on crée une session suivant la durée retournée par l'API et redirige l'utilisateur vers sa page d'accueil -/// Un résultat de quiz peut aussi avoir été enregistré côté client et est alors à transmettre à l'API. -/// Si l'utilisateur a déjà une session active valide, c'est qu'il a déjà cliqué sur le lien. On le redirige également vers sa page d'accueil. - -// Fichier de configuration côté client : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; -const { connectionPage, userHomePage } = require("../../views/"+theme+"/config/"+lang+".js"); -const { connectionWithLinkRoute, userRoutes } = require("../../config/users"); - -// Importation des fonctions utile au script : -import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js"; -import { addElement } from "./tools/dom.js"; -import { helloDev } from "./tools/everywhere.js"; -import { isEmpty } from "../../tools/main"; -import { getUrlParams } from "./tools/url.js"; -import { checkAnswerDatas, checkSession, getTimeDifference, setSession } from "./tools/users.js"; - -// Dictionnaires : -const { serverError } = require("../../lang/"+lang+"/general"); -const { alreadyConnected, badLinkValidationMessage, validationMessage } = require("../../lang/"+lang+"/user"); - -const divResponse = document.getElementById("response"); - -helloDev(); - -const initialise = async () => -{ - try - { - // si l'utilisateur est déjà connecté, pas la peine d'aller + loin : - const isConnected=await checkSession(); - if(isConnected) - { - saveLocaly("message", { message: alreadyConnected, color:"info" });// pour l'afficher sur la page suivante - const user=getLocaly("user", true); - window.location.assign("/"+userHomePage);// type de connexion possible que pour les simples users - } - else - { - let datas=getUrlParams(); - if(datas && datas.t!==undefined) - { - const xhr = new XMLHttpRequest(); - xhr.open("POST", apiUrl+userRoutes+connectionWithLinkRoute); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && !isEmpty(response.userId) && !isEmpty(response.connexionTime) && !isEmpty(response.token)) - { - let connexionMaxTime=Date.now(); - if(response.connexionTime.endsWith("days")) - connexionMaxTime+=parseInt(response.connexionTime,10)*24*3600*1000; - else - connexionMaxTime+=parseInt(response.connexionTime,10)*3600*1000; - setSession(response.userId, response.token, connexionMaxTime); - removeLocaly("lastAnswer");// ! important pour ne pas enregister plusieurs fois le résultat - addElement(divResponse, "p", validationMessage, "", ["success"]);// au cas où blocage redirection - window.location.assign("/"+userHomePage);// connexion par lien ne concerne que les simples "user" - } - else if ((this.status === 401 || this.status === 403) && response.errors != undefined) - { - if(Array.isArray(response.errors)) - response.errors = response.errors.join("
    "); - else - response.errors = serverError; - addElement(divResponse, "p", response.errors, "", ["error"]); - } - else - addElement(divResponse, "p", badLinkValidationMessage.replace("#URL", connectionPage), "", ["error"]); - } - } - datas.timeDifference=getTimeDifference(); - // si l'utilisateur a précédement répondu à un quiz, j'ajoute les infos de son résultat : - datas=checkAnswerDatas(datas); - xhr.setRequestHeader("Content-Type", "application/json"); - xhr.send(JSON.stringify(datas)); - } - } - } - catch(e) - { - addElement(divResponse, "p", serverError, "", ["error"]); - } -} -initialise(); \ No newline at end of file diff --git a/front/src/newLoginValidation.js b/front/src/newLoginValidation.js deleted file mode 100644 index dcd8250..0000000 --- a/front/src/newLoginValidation.js +++ /dev/null @@ -1,69 +0,0 @@ -// -- PAGE PERMETTANT DE VALIDER UN CHANGEMENT D'EMAIL OU DE MOT DE PASSE - -/// Un token est transmis en paramètre de l'Url. Il a une validité limité dans le temps. -/// Si le token est ok, on valide la mise à jour et redirige l'utilisateur vers sa page d'accueil - -// Fichier de configuration côté client : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; -const { accountPage, userHomePage } = require("../../views/"+theme+"/config/"+lang+".js"); -const { checkNewLoginLinkRoute, userRoutes } = require("../../config/users"); - -// Importation des fonctions utile au script : -import { getLocaly, saveLocaly } from "./tools/clientstorage.js"; -import { addElement } from "./tools/dom.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; -import { getUrlParams } from "./tools/url.js"; -import { checkSession, setSession } from "./tools/users.js"; - -// Dictionnaires : -const { serverError } = require("../../lang/"+lang+"/general"); -const { badLinkValidationMessage } = require("../../lang/"+lang+"/user"); - -const divResponse = document.getElementById("response"); - -helloDev(); - -const initialise = async () => -{ - try - { - const datas=getUrlParams(); - if(datas && datas.t!==undefined) - { - const xhr = new XMLHttpRequest(); - xhr.open("GET", apiUrl+userRoutes+checkNewLoginLinkRoute+datas.t); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && response.message != undefined) - { - saveLocaly("message", { message: response.message, color:"success" });// pour l'afficher sur la page suivante - addElement(divResponse, "p", response.message, "", ["success"]);// au cas où blocage redirection - window.location.assign("/"+userHomePage);// que user possible ici - } - else if (this.status === 404 && response.errors != undefined) - { - if(Array.isArray(response.errors)) - response.errors = response.errors.join("
    "); - else - response.errors = serverError; - addElement(divResponse, "p", response.errors, "", ["error"]); - } - else - addElement(divResponse, "p", badLinkValidationMessage.replace("#URL", accountPage), "", ["error"]); - } - } - xhr.setRequestHeader("Authorization", "Bearer "+datas.t); - xhr.send(); - } - } - catch(e) - { - addElement(divResponse, "p", serverError, "", ["error"]); - console.error(e); - } -} -initialise(); \ No newline at end of file diff --git a/front/src/subscribe.js b/front/src/subscribe.js deleted file mode 100644 index 05942da..0000000 --- a/front/src/subscribe.js +++ /dev/null @@ -1,139 +0,0 @@ -// -- GESTION DU FORMULAIRE PERMETTANT DE CRÉER SON COMPTE - -/// L'utilisateur peut avoir répondu à un quiz avant d'arriver sur la page d'inscription -/// Des ce cas il faut enregistrer son résultat en même temps que les premières informations de son compte (email, ok CGU) -/// Les infos du compte sont complétées (mot de passe, code parrain...) au moment de la validation. - -// Fichier de configuration tirés du backend : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; - -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js");// besoin de toutes les déclarations, car appel dynamique : configTemplate[homePage] -const configUsers = require("../../config/users");// idem pour configurer formulaire - -// Importation des fonctions utiles au script : -import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js"; -import { addElement } from "./tools/dom.js"; -import { helloDev, updateAccountLink } from "./tools/everywhere.js"; -import { getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; -import { loadMatomo } from "./tools/matomo.js"; -import { checkAnswerDatas, checkSession, getTimeDifference } from "./tools/users.js"; - -// Dictionnaires : -const { serverError } = require("../../lang/"+lang+"/general"); -const { alreadyConnected, needUniqueEmail } = require("../../lang/"+lang+"/user"); - -// Principaux éléments du DOM manipulés : -const btnSubmit=document.getElementById("submitDatas"); -const divResponse=document.getElementById("response"); -const emailInput=document.getElementById("email"); -const myForm=document.getElementById("subscription"); - -// Test de connexion de l'utilisateur + affichage formulaire d'inscription. -const initialise = async () => -{ - try - { - const isConnected=await checkSession(); - if(isConnected) - { - // on change le lien d'accès au compte - const user=getLocaly("user", true); - updateAccountLink(user.status, configTemplate); - myForm.style.display="block"; - myForm.innerHTML="

    "+alreadyConnected+"

    "; - } - else - { - loadMatomo(); - setAttributesToInputs(configUsers, myForm); - myForm.style.display="block"; - } - } - catch(e) - { - addElement(divResponse, "p", serverError, "", ["error"]); - console.error(e); - } -} -initialise(); -helloDev(); - -// Teste si l'e-mail saisi est déjà utilisé par un autre compte. -// Si c'est le cas, la validation du formulaire est bloquée. -emailInput.addEventListener("blur", function(e) -{ - const emailValue=emailInput.value.trim(); - if(emailValue!=="") - { - const xhr = new XMLHttpRequest(); - xhr.open("POST", apiUrl+configUsers.userRoutes+configUsers.checkIfIsEmailfreeRoute); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && response.free !== undefined && response.free === false) - { - addElement(document.getElementById("emailMessage"), "div", needUniqueEmail.replace("#URL", configTemplate.connectionPage), "", ["error"]); - btnSubmit.setAttribute("disabled", true); - } - else - btnSubmit.removeAttribute("disabled"); - } - } - xhr.setRequestHeader("Content-Type", "application/json"); - const datas={ emailTest:emailValue }; - xhr.send(JSON.stringify(datas)); - } -}); -// Supprime l'éventuel message d'erreur déjà injecté si l'utilisateur revient dans le champ : -emailInput.addEventListener("focus", function(e) -{ - document.getElementById("emailMessage").innerHTML=""; -}); - -// Traitement de l'envoi des données d'inscription : -myForm.addEventListener("submit", function(e) -{ - try - { - e.preventDefault(); - const xhr = new XMLHttpRequest(); - xhr.open("POST", apiUrl+configUsers.userRoutes+configUsers.subscribeRoute); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 201) - { - myForm.style.display="none"; - addElement(divResponse, "p", response.message, "", ["success"]); - removeLocaly("lastAnswer");// ! important pour ne pas enregister plusieurs fois le résultat. - } - else if (response.errors) - { - response.errors = response.errors.join("
    "); - addElement(divResponse, "p", response.errors, "", ["error"]); - } - else - addElement(divResponse, "p", serverError, "", ["error"]); - } - } - xhr.setRequestHeader("Content-Type", "application/json"); - let datas=getDatasFromInputs(myForm); - if(datas) - { - datas.timeDifference=getTimeDifference(configUsers); - // Si l'utilisateur a précédement répondu à un quiz, j'ajoute les infos de son résultat : - datas=checkAnswerDatas(datas); - xhr.send(JSON.stringify(datas)); - } - } - catch(e) - { - addElement(divResponse, "p", serverError, "", ["error"]); - console.error(e); - } -}); \ No newline at end of file diff --git a/front/src/subscribeValidation.js b/front/src/subscribeValidation.js deleted file mode 100644 index 4201c83..0000000 --- a/front/src/subscribeValidation.js +++ /dev/null @@ -1,203 +0,0 @@ -// -- PAGE PERMETTANT DE VALIDER LA CRÉATION DE SON COMPTE, PUIS DE COMPLÉTER SON INSCRIPTION - -/// Un token est transmis en paramètre de l'Url. Il a une validité limité dans le temps. -/// Si le token n'est pas/plus valide, on redirige l'utilisateur vers la page de connexion pour obtenir un nouveau lien. -/// Si le token est ok, on l'informe que tout est ok et lui propose de se compléter les informations de son compte. Une session lui est également créée. -/// Si l'utilisateur a déjà une session active valide, c'est qu'il a déjà cliqué sur le lien. On le redirige vers sa page d'accueil. - -// Fichier de configuration tirés du backend : -import { apiUrl, availableLangs, theme, tokenConnexionMinTimeInHours } from "../../config/instance.js"; -const lang=availableLangs[0]; -const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); -const configUsers = require("../../config/users"); // besoin de tous le fichier pour configurer le formulaire de saisie, etc. - -// Importation des fonctions utiles au script : -import { getLocaly, saveLocaly } from "./tools/clientstorage.js"; -import { addElement } from "./tools/dom.js"; -import { helloDev } from "./tools/everywhere.js"; -import { getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; -import { getPassword } from "../../tools/main"; -import { loadMatomo } from "./tools/matomo.js"; -import { getUrlParams } from "./tools/url.js"; -import { checkSession, setSession } from "./tools/users.js"; - -// Dictionnaires : -const { notRequired, serverError } = require("../../lang/"+lang+"/general"); -const { alreadyConnected, badLinkValidationMessage, godfatherFound, godfatherNotFound, passwordCopied, validationMessage } = require("../../lang/"+lang+"/user"); - -// Principaux éléments du DOM manipulés : -//const codeGodfatherInput=document.getElementById("codeGodfather"); -const divExplanations = document.getElementById("explanations"); -const divMessage = document.getElementById("message"); -const divResponse = document.getElementById("response"); -const formAccount = document.getElementById("subscription2"); -const passwordInput=document.getElementById("newPassword"); -const passwordLink=document.getElementById("getPassword"); -const passwordHelp=document.getElementById("passwordMessage"); - -const initialise = async () => -{ - try - { - // Explications cachées par défaut : - divExplanations.style.display="none"; - const isConnected=await checkSession(); - if(isConnected) - { - saveLocaly("message", { message: alreadyConnected, color:"info" }); - const user=getLocaly("user", true); - const homePage=user.status+"HomePage";// lors de la création d'un compte, seul le statut "user" est possible. - window.location.assign("/"+configTemplate[homePage]); - } - else - { - loadMatomo(); - const datas=getUrlParams(); - if(datas && datas.t!==undefined) - { - const xhr = new XMLHttpRequest(); - xhr.open("GET", apiUrl+configUsers.userRoutes+configUsers.checkSubscribeTokenRoute+datas.t); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && response.newUser != undefined && response.token != undefined) - { - addElement(divMessage, "p", validationMessage, "", ["success"]); - // Affichage et initialisation du formulaire permettant de compléter les infos : - formAccount.style.display="block"; - divExplanations.style.display="block"; - setAttributesToInputs(configUsers, formAccount); - // Affichage des infos déjà enregistrées : - for(let data in response.newUser.User) - { - if(formAccount.elements[data]!==undefined) - formAccount.elements[data].value=response.newUser.User[data]; - } - // Jours de réception de l'abonnenment : - for(let i in response.newUser.Subscription.receiptDays) - formAccount.elements["d"+response.newUser.Subscription.receiptDays[i]].checked="checked"; - // Certains navigateurs remplissent automatiquement les champs password : - passwordInput.value=""; - // Création d'une session courte avec le token reçu (nécessaire pour la suite) : - let connexionMaxTime=Date.now()+parseInt(tokenConnexionMinTimeInHours,10)*3600*1000; - setSession(response.newUser.User.id, response.token, connexionMaxTime); - } - else if ((this.status === 200 || this.status === 404) && response.errors != undefined) - { - if(Array.isArray(response.errors)) - response.errors = response.errors.join("
    "); - else - response.errors = serverError; - addElement(divMessage, "p", response.errors, "", ["error"]); - - } - else - addElement(divMessage, "p", badLinkValidationMessage.replace("#URL", configTemplate.connectionPage), "", ["error"]); - } - } - xhr.send(); - - // Génére un mot de passe pseudo-aléatoire : - passwordLink.addEventListener("click", function(e) - { - e.preventDefault(); - passwordInput.type="text"; - passwordInput.value=getPassword(8, 12); - // Copie du mot de passe généré dans le "presse-papier" de l'ordinateur : - passwordInput.select(); - document.execCommand("copy"); - addElement(passwordHelp, "div", passwordCopied, "", ["success"]); - }); - - /* - // Vérifie que le code/e-mail de parrainage saisi est valide : - codeGodfatherInput.addEventListener("blur", function(e) - { - const codeValue=codeGodfatherInput.value.trim(); - if(codeValue!=="") - { - const xhr = new XMLHttpRequest(); - xhr.open("POST", apiUrl+configUsers.userRoutes+configUsers.getGodfatherRoute); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - if (this.status === 204) - addElement(document.getElementById("codeGodfatherMessage"), "div", godfatherNotFound, "", ["error"]); - else - addElement(document.getElementById("codeGodfatherMessage"), "div", godfatherFound, "", ["success"]); - } - } - xhr.setRequestHeader("Content-Type", "application/json"); - const datas={ codeTest:codeValue }; - xhr.send(JSON.stringify(datas)); - } - }); - // Efface l'éventuel message déjà injecté si l'utilisateur revient sur ce champ de saisie : - codeGodfatherInput.addEventListener("focus", function(e) - { - addElement(document.getElementById("codeGodfatherMessage"), "i", notRequired); - });*/ - - // Traite de l'envoi d'une mise à jour des infos : - formAccount.addEventListener("submit", function(e) - { - e.preventDefault(); - divResponse.innerHTML=""; - let datas=getDatasFromInputs(formAccount); - // Recomposition des jours d'envoi de l'abonnement - datas.receiptDays=""; - for(let i=1; i<=7; i++) - { - if(datas["d"+i] !== undefined) - datas.receiptDays+=""+i; - } - const user=getLocaly("user", true);// on a créé la session + haut - const xhrUserUpdate = new XMLHttpRequest(); - xhrUserUpdate.open("PUT", apiUrl+configUsers.userRoutes+configUsers.signupCompletionRoute+user.id); - xhrUserUpdate.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && response.message !== undefined) - { - if(Array.isArray(response.message)) - response.message = response.message.join("
    "); - else - response.message = response.message; - saveLocaly("message", { message: response.message, color:"success" }); - window.location.assign(configTemplate["userHomePage"]); - } - else if (response.errors) - { - if(Array.isArray(response.errors)) - response.errors = response.errors.join("
    "); - else - response.errors = serverError; - addElement(divResponse, "p", response.errors, "", ["error"]); - } - else - addElement(divResponse, "p", serverError, "", ["error"]); - } - } - xhrUserUpdate.setRequestHeader("Content-Type", "application/json"); - xhrUserUpdate.setRequestHeader("Authorization", "Bearer "+user.token); - if(datas) - { - xhrUserUpdate.send(JSON.stringify(datas)); - } - }); - } - } - } - catch(e) - { - console.error(e); - addElement(divResponse, "p", serverError, "", ["error"]); - } -} -initialise(); -helloDev(); \ No newline at end of file diff --git a/front/src/unsubscribe.js b/front/src/unsubscribe.js deleted file mode 100644 index 5ed5d01..0000000 --- a/front/src/unsubscribe.js +++ /dev/null @@ -1,56 +0,0 @@ -// -- GESTION DE LA PAGE PERMETTANT DE SE DÉBONNER DE TOUS LES ENVOIS - -/// Un token est transmis en paramètre de l'Url. Il a une validité limité dans le temps. Si le token est ok, il n'est pas nécessaire d'être connecté. -/// Dans le cas où il n'est plus valide, on peut proposer à l'utilisateur de se connecter à son compte pour se désabonner. -/// Si le token est ok, on valide enregistrement le désabonnement et affiche un message de confirmation - -// Fichier de configuration côté client : -import { apiUrl, availableLangs, theme } from "../../config/instance.js"; -const lang=availableLangs[0]; -const { accountPage } = require("../../views/"+theme+"/config/"+lang+".js"); -const { userRoutes, unsubscribeRoute } = require("../../config/users"); - -// Importation des fonctions utile au script : -import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js"; -import { addElement } from "./tools/dom.js"; -import { helloDev } from "./tools/everywhere.js"; -import { getUrlParams } from "./tools/url.js"; -import { checkSession, setSession } from "./tools/users.js"; - -// Dictionnaires : -const { serverError } = require("../../lang/"+lang+"/general"); -const { unsubscriptionFail } = require("../../lang/"+lang+"/subscription"); - -const divResponse = document.getElementById("response"); - -helloDev(); - -const initialise = async () => -{ - try - { - const datas=getUrlParams(); - if(datas && datas.t!==undefined) - { - const xhr = new XMLHttpRequest(); - xhr.open("GET", apiUrl+userRoutes+unsubscribeRoute+datas.t); - xhr.onreadystatechange = function() - { - if (this.readyState == XMLHttpRequest.DONE) - { - let response=JSON.parse(this.responseText); - if (this.status === 200 && response.message != undefined) - addElement(divResponse, "p", response.message.replace("#URL", accountPage), "", ["success"]); - else - addElement(divResponse, "p", unsubscriptionFail.replace("#URL", accountPage), "", ["error"]); - } - } - xhr.send(); - } - } - catch(e) - { - addElement(divResponse, "p", serverError, "", ["error"]); - } -} -initialise(); \ No newline at end of file