From 761fc8ccde889ba75432443201004172e5d415d7 Mon Sep 17 00:00:00 2001 From: UO289659 Date: Mon, 11 Mar 2024 21:18:01 +0100 Subject: [PATCH 1/7] =?UTF-8?q?Css=20de=20estad=C3=ADsticas=20y=20a=C3=B1a?= =?UTF-8?q?didos=20algunos=20datos=20a=20mano=20para=20comprobar=20dise?= =?UTF-8?q?=C3=B1o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- users/userservice/user-model.js | 9 ++++++++ webapp/src/App.js | 2 ++ webapp/src/components/Statistics.css | 32 +++++++++++++++++++++++++++ webapp/src/components/Statistics.js | 31 ++++++++++++++++++++++++++ webapp/src/components/stats.png | Bin 0 -> 230936 bytes 5 files changed, 74 insertions(+) create mode 100644 webapp/src/components/Statistics.css create mode 100644 webapp/src/components/Statistics.js create mode 100644 webapp/src/components/stats.png diff --git a/users/userservice/user-model.js b/users/userservice/user-model.js index 66dc9b9c..0b19badc 100644 --- a/users/userservice/user-model.js +++ b/users/userservice/user-model.js @@ -13,6 +13,15 @@ const userSchema = new mongoose.Schema({ type: Date, default: Date.now, }, + gamesPlayed:{ //Añadido para guardar las partidas en la bbdd + type: Number, + }, + rigthAnswers:{ + type:Number, + }, + wrongAnswers:{ + type:Number, + }, }); diff --git a/webapp/src/App.js b/webapp/src/App.js index 92a81f29..be1812b6 100644 --- a/webapp/src/App.js +++ b/webapp/src/App.js @@ -4,6 +4,7 @@ import Navbar from "./components/Navbar"; import Home from "./components/Home"; import Inicio from './components/Inicio'; import Primera from './components/Primera'; +import Statistics from './components/Statistics'; import Game from './components/QuizGame'; function App() { @@ -17,6 +18,7 @@ function App() { } /> } /> } /> + } /> diff --git a/webapp/src/components/Statistics.css b/webapp/src/components/Statistics.css new file mode 100644 index 00000000..f5e0ce1e --- /dev/null +++ b/webapp/src/components/Statistics.css @@ -0,0 +1,32 @@ +/* Estilo para la tabla */ +table { + width: 100%; + border-collapse: collapse; + border: 1px solid #ddd; /* Borde de la tabla */ + background-color: rgba(255, 255, 255, 0.8); /* Blanco con una transparencia del 80% */ + + } + + /* Estilo para las celdas de la tabla */ + th, td { + border: 1ev solid #ddd; /* Borde de las celdas */ + padding: 1em; + text-align: center; + } + + /* Estilo para el encabezado de la tabla */ + th { + background-color: #f2f2f2; /* Color de fondo del encabezado */ + } + + + /* Estilo para las filas al pasar el ratón */ + tr:hover { + background-color: #ddd; /* Color de fondo al pasar el ratón */ + } + + body{ + background-image: url('./stats.png'); + background-size: cover; + + } \ No newline at end of file diff --git a/webapp/src/components/Statistics.js b/webapp/src/components/Statistics.js new file mode 100644 index 00000000..0f8337c6 --- /dev/null +++ b/webapp/src/components/Statistics.js @@ -0,0 +1,31 @@ +import './Statistics.css'; + +function Statistics(){ + return( + + + + + + + + + + + + + + + + + + + + + +
Partidas JugadasPreguntas AcertadasPreguntas Falladas
Juego 1102
Juego 283
Juego 3121
+ ) + +} + +export default Statistics; diff --git a/webapp/src/components/stats.png b/webapp/src/components/stats.png new file mode 100644 index 0000000000000000000000000000000000000000..a18496fac5be4507a3f5a322503253dc00c4d8f8 GIT binary patch literal 230936 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%0Dd^y|C$fiX+)|3ftK&n~v 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

L*3?Th@9daq33#T7YY$I8XJ;E`76rRrpY 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

`kbPeYbL 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

%~Un;z7159>4h2=TY%Ui1a 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 literal 0 HcmV?d00001 From fd322617e4a4a25f898051dcd3d04be27f5b3a21 Mon Sep 17 00:00:00 2001 From: UO289659 Date: Mon, 18 Mar 2024 22:23:13 +0100 Subject: [PATCH 2/7] =?UTF-8?q?Avance=20en=20estad=C3=ADsticas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 16 +++- statistics/statisticsservice/.dockerignore | 2 + statistics/statisticsservice/Dockerfile | 20 +++++ .../statisticsservice/package-lock.json | 14 ++++ statistics/statisticsservice/package.json | 12 +++ .../statisticsservice/statistics-service.js | 76 +++++++++++++++++++ webapp/src/App.js | 2 +- webapp/src/components/QuizGame.js | 25 +++++- webapp/src/components/Statistics.css | 7 ++ webapp/src/components/Statistics.js | 71 +++++++++++------ webapp/src/components/Statistics.test.js | 14 ++++ webapp/src/components/login/Login.js | 4 +- 12 files changed, 235 insertions(+), 28 deletions(-) create mode 100644 statistics/statisticsservice/.dockerignore create mode 100644 statistics/statisticsservice/Dockerfile create mode 100644 statistics/statisticsservice/package-lock.json create mode 100644 statistics/statisticsservice/package.json create mode 100644 statistics/statisticsservice/statistics-service.js create mode 100644 webapp/src/components/Statistics.test.js diff --git a/docker-compose.yml b/docker-compose.yml index b6a71b84..ba16272c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -50,6 +50,20 @@ services: environment: MONGODB_URI: mongodb://mongodb:27017/userdb + statisticsservice: + container_name: statisticsservice-${teamname:-defaultASW} + image: ghcr.io/arquisoft/wiq_es3a/statisticsservice:latest + profiles: ["dev", "prod"] + build: ./statistics/statisticsservice + depends_on: + - mongodb + ports: + - "8006:8006" + networks: + - mynetwork + + + gatewayservice: container_name: gatewayservice-${teamname:-defaultASW} image: ghcr.io/arquisoft/wiq_es3a/gatewayservice:latest @@ -120,4 +134,4 @@ volumes: networks: mynetwork: - driver: bridge + driver: bridge \ No newline at end of file diff --git a/statistics/statisticsservice/.dockerignore b/statistics/statisticsservice/.dockerignore new file mode 100644 index 00000000..3091757a --- /dev/null +++ b/statistics/statisticsservice/.dockerignore @@ -0,0 +1,2 @@ +node_modules +coverage \ No newline at end of file diff --git a/statistics/statisticsservice/Dockerfile b/statistics/statisticsservice/Dockerfile new file mode 100644 index 00000000..cff4a297 --- /dev/null +++ b/statistics/statisticsservice/Dockerfile @@ -0,0 +1,20 @@ +# Use an official Node.js runtime as a parent image +FROM node:20 + +# Set the working directory in the container +WORKDIR /usr/src/statistics/statisticsservice + +# Copy package.json and package-lock.json to the working directory +COPY package*.json ./ + +# Install app dependencies +RUN npm install + +# Copy the app source code to the working directory +COPY . . + +# Expose the port the app runs on +EXPOSE 8006 + +# Define the command to run your app +CMD ["node", "statistics-service.js"] diff --git a/statistics/statisticsservice/package-lock.json b/statistics/statisticsservice/package-lock.json new file mode 100644 index 00000000..383335a2 --- /dev/null +++ b/statistics/statisticsservice/package-lock.json @@ -0,0 +1,14 @@ +{ + "name": "statisticsservice", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "statisticsservice", + "version": "1.0.0", + "license": "ISC", + "devDependencies": {} + } + } +} diff --git a/statistics/statisticsservice/package.json b/statistics/statisticsservice/package.json new file mode 100644 index 00000000..ab93b5ba --- /dev/null +++ b/statistics/statisticsservice/package.json @@ -0,0 +1,12 @@ +{ + "name": "statisticsservice", + "version": "1.0.0", + "description": "", + "main": "statistics-service.js", + "devDependencies": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" +} diff --git a/statistics/statisticsservice/statistics-service.js b/statistics/statisticsservice/statistics-service.js new file mode 100644 index 00000000..60981d75 --- /dev/null +++ b/statistics/statisticsservice/statistics-service.js @@ -0,0 +1,76 @@ +// statistics-service.js +const express = require('express'); +const mongoose = require('mongoose'); +const bcrypt = require('bcrypt'); +const bodyParser = require('body-parser'); +const Statistic = require('./user-model') + +const app = express(); +const port = 8006; + +// Middleware to parse JSON in request body +app.use(bodyParser.json()); + +// Connect to MongoDB +const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/userdb'; +mongoose.connect(mongoUri); + + + +// Function to validate required fields in the request body +function validateRequiredFields(req, requiredFields) { + for (const field of requiredFields) { + if (!(field in req.body)) { + throw new Error(`Missing required field: ${field}`); + } + } +} + +app.post('/addStatistic', async (req, res) => { + try { + // Check if required fields are present in the request body + validateRequiredFields(req, ['username', 'rigthAnswers', 'wrongAnswers']); + + // Encrypt the password before saving it + const hashedPassword = await bcrypt.hash(req.body.password, 10); + + const newStatistic = new Statistic({ + username: req.body.username, + rigthAnswers:rigthAnswers, + wrongAnswers:wrongAnswers + }); + + await newStatistic.save(); + res.json(newStatistic); + } catch (error) { + res.status(400).json({ error: error.message }); + }}); + + app.get('/statistics/:userId', async (req, res) => { + try { + const userId = req.params.userId; + // Buscar las estadísticas asociadas al userId + const userStatistics = await Statistic.findOne({ userId }); + if (!userStatistics) { + return res.status(404).json({ message: 'No se encontraron estadísticas para el usuario.' }); + } + + res.status(200).json(userStatistics); // Enviar las estadísticas como respuesta + } catch (error) { + console.error('Error al obtener estadísticas del usuario:', error); + res.status(500).json({ message: 'Error interno del servidor al obtener estadísticas del usuario.' }); + } + + }); + +const server = app.listen(port, () => { + console.log(`User Service listening at http://localhost:${port}`); +}); + +// Listen for the 'close' event on the Express.js server +server.on('close', () => { + // Close the Mongoose connection + mongoose.connection.close(); + }); + +module.exports = server \ No newline at end of file diff --git a/webapp/src/App.js b/webapp/src/App.js index be1812b6..a8f5d129 100644 --- a/webapp/src/App.js +++ b/webapp/src/App.js @@ -18,7 +18,7 @@ function App() { } /> } /> } /> - } /> + } /> diff --git a/webapp/src/components/QuizGame.js b/webapp/src/components/QuizGame.js index 8b64b4ab..411d4840 100644 --- a/webapp/src/components/QuizGame.js +++ b/webapp/src/components/QuizGame.js @@ -66,15 +66,38 @@ const QuizGame = () => { setQuestionsNumber(prev => prev + 1); if (questionsNumber === numberOfQuestions) { + const rigthAnswers = answeredQuestions.filter(question => question.isCorrect).length; + const wrongAnswers=totalQuestions-rigthAnswers; + const totalQuestions = numberOfQuestions + 1; + if (questionsNumber === numberOfQuestions) { setTimeout(() => { setIsFinished(true); }, 1000); + const statisticsData = { + userId: localStorage.getItem('username'), + rigthAnswers, + wrongAnswers + }; + saveStatistics(statisticsData); } + + + // + // + // } + } + + const saveStatistics = async (statisticsData) => { + try { + await axios.post(`${apiEndpoint}/addStatistic`, statisticsData); + console.log('Estadísticas guardadas exitosamente'); + } catch (error) { + console.error('Error al guardar las estadísticas:', error); + } }; - return (

{ + // Obtener el userId del localStorage o de cualquier otro lugar donde lo almacenes + const userId = localStorage.getItem('username'); + + // Realizar una solicitud al servidor para obtener las estadísticas del usuario + fetch(`/getStatistics/${userId}`) + .then(response => { + if (!response.ok) { + throw new Error('Error al obtener las estadísticas del usuario.'); + } + return response.json(); + }) + .then(data => { + setUserData(data); + }) + .catch(error => { + console.error('Error:', error); + }); + }, []); + + return ( +
+

Estadísticas

+ {userData ? ( - - - - - - - - - - - - - - - - - - - - -
Partidas JugadasPreguntas AcertadasPreguntas Falladas
Juego 1102
Juego 283
Juego 3121
- ) - + + + Partidas Jugadas + Preguntas Acertadas + Preguntas Falladas + + + + + {userData.gamesPlayed} + {userData.correctAnswers} + {userData.incorrectAnswers} + + + + ) : ( +

Cargando estadísticas...

+ )} +
+ ); } export default Statistics; diff --git a/webapp/src/components/Statistics.test.js b/webapp/src/components/Statistics.test.js new file mode 100644 index 00000000..197b69d0 --- /dev/null +++ b/webapp/src/components/Statistics.test.js @@ -0,0 +1,14 @@ +import { render, screen } from '@testing-library/react'; +import Statistics from './Statistics'; + +test('Estadísticas de usuario', async () => { + + render(); + expect(screen.getByText(/Loading questions.../i)).toBeInTheDocument(); + + // Wait for the asynchronous operation to complete + await screen.findByRole('button', { name: /correcta/i }); + + const correcta = screen.getByRole('button', { name: /correcta/i }); + fireEvent.click(correcta); + }); \ No newline at end of file diff --git a/webapp/src/components/login/Login.js b/webapp/src/components/login/Login.js index 89f77154..a3ebe91e 100644 --- a/webapp/src/components/login/Login.js +++ b/webapp/src/components/login/Login.js @@ -39,8 +39,10 @@ const Login = () => { setTimeout(() => { window.location.href = '/home'; }, 2000); + localStorage.setItem('username', username); } - }, [loginSuccess]); + }, [loginSuccess], + ); return ( From 405e8f1c0431f868fff4443792235d5bdf486dc1 Mon Sep 17 00:00:00 2001 From: UO289659 Date: Sun, 24 Mar 2024 14:05:31 +0100 Subject: [PATCH 3/7] =?UTF-8?q?avance=20el=20estad=C3=ADsticas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 6 + gatewayservice/gateway-service.js | 24 + package-lock.json | 679 ++++++++ package.json | 1 + .../statisticsservice/package-lock.json | 1484 ++++++++++++++++- statistics/statisticsservice/package.json | 12 +- .../statisticsservice/statistics-service.js | 51 +- statistics/statisticsservice/user-model.js | 33 + users/userservice/user-model.js | 5 +- webapp/src/components/Navbar.js | 2 +- webapp/src/components/QuizGame.js | 50 +- webapp/src/components/Routes.js | 5 + webapp/src/components/Statistics.js | 26 +- 13 files changed, 2325 insertions(+), 53 deletions(-) create mode 100644 statistics/statisticsservice/user-model.js diff --git a/docker-compose.yml b/docker-compose.yml index ba16272c..03a2b205 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -61,6 +61,8 @@ services: - "8006:8006" networks: - mynetwork + environment: + MONGODB_URI: mongodb://mongodb:27017/userdb @@ -74,6 +76,7 @@ services: - userservice - authservice - generatorservice + - statisticsservice ports: - "8000:8000" networks: @@ -82,6 +85,7 @@ services: AUTH_SERVICE_URL: http://authservice:8002 USER_SERVICE_URL: http://userservice:8001 QUESTION_SERVICE_URL: http://generatorservice:8003 + STATS_SERVICE_URL: http://statisticsservice:8006 webapp: container_name: webapp-${teamname:-defaultASW} @@ -92,6 +96,8 @@ services: - gatewayservice ports: - "3000:3000" + environment: + GATEWAY_SERVICE_URL: http://gatewayservice:8000 prometheus: image: prom/prometheus diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index 780806a7..d86c096c 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -9,6 +9,7 @@ const port = 8000; const authServiceUrl = process.env.AUTH_SERVICE_URL || 'http://localhost:8002'; const userServiceUrl = process.env.USER_SERVICE_URL || 'http://localhost:8001'; const questionServiceUrl = process.env.QUESTION_SERVICE_URL || 'http://localhost:8003'; +const statsServiceUrl = process.env.STATS_SERVICE_URL || 'http://localhost:8006'; app.use(cors()); app.use(express.json()); @@ -52,6 +53,29 @@ app.get('/generate-question', async (req, res) => { } }); +app.get('/statistics', async (req, res) => { + try { + const questionResponse = await axios.get(statsServiceUrl+'/statistics', { + params: req.query, + }); + res.json(questionResponse.data); + } catch (error) { + res.status(error.response.status).json({ error: error.response.data.error }); + } +}); + +app.post('/addStatistic', async (req, res) => { + console.log("entra por add statisctic de gateway") + try { + const questionResponse = await axios.post(statsServiceUrl+'/addStatistic', { + params: req.body, + }); + res.json(questionResponse.data); + } catch (error) { + res.status(error.response.status).json({ error: error.response.data.error }); + } +}); + // Start the gateway service const server = app.listen(port, () => { console.log(`Gateway Service listening at http://localhost:${port}`); diff --git a/package-lock.json b/package-lock.json index 4511dae7..22002239 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,7 @@ "dependencies": { "@material-ui/core": "^4.12.4", "@mui/styles": "^5.15.11", + "express": "^4.19.1", "react-icons": "^5.0.1", "react-responsive": "^9.0.2", "react-router-dom": "^6.22.3" @@ -334,6 +335,72 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, + "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==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/clsx": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", @@ -342,6 +409,38 @@ "node": ">=6" } }, + "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==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, "node_modules/css-mediaquery": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", @@ -361,6 +460,47 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -375,6 +515,206 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.1.tgz", + "integrity": "sha512-K4w1/Bp7y8iSiVObmCrtq8Cs79XjJc/RU2YYkZQ7wpUu5ZyZ7MtPHkqoMz4pf+mgXfNvo2qft8D9OnrH2ABk9w==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -388,11 +728,50 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/hyphenate-style-name": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "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==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-in-browser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", @@ -509,6 +888,70 @@ "css-mediaquery": "^0.1.2" } }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -517,6 +960,38 @@ "node": ">=0.10.0" } }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, "node_modules/popper.js": { "version": "1.16.1-lts", "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", @@ -537,6 +1012,54 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "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==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -644,6 +1167,30 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, + "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==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "node_modules/scheduler": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", @@ -654,15 +1201,147 @@ "object-assign": "^4.1.1" } }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, "node_modules/shallow-equal": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "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==", + "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==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } } } } diff --git a/package.json b/package.json index 04885c14..546f48ae 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "dependencies": { "@material-ui/core": "^4.12.4", "@mui/styles": "^5.15.11", + "express": "^4.19.1", "react-icons": "^5.0.1", "react-responsive": "^9.0.2", "react-router-dom": "^6.22.3" diff --git a/statistics/statisticsservice/package-lock.json b/statistics/statisticsservice/package-lock.json index 383335a2..40ce2700 100644 --- a/statistics/statisticsservice/package-lock.json +++ b/statistics/statisticsservice/package-lock.json @@ -8,7 +8,1489 @@ "name": "statisticsservice", "version": "1.0.0", "license": "ISC", - "devDependencies": {} + "dependencies": { + "bcrypt": "^5.1.1", + "body-parser": "^1.20.2", + "cors": "^2.8.5", + "express": "^4.19.1", + "mongoose": "^8.2.3" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz", + "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + }, + "node_modules/@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "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==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bcrypt": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", + "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.11", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/bson": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.5.0.tgz", + "integrity": "sha512-DXf1BTAS8vKyR90BO4x5v3rKVarmkdkzwOrnYDFdjAY694ILNDkmA3uRh1xXJEl+C1DAh8XCvAQ+Gh3kzubtpg==", + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "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==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.1.tgz", + "integrity": "sha512-K4w1/Bp7y8iSiVObmCrtq8Cs79XjJc/RU2YYkZQ7wpUu5ZyZ7MtPHkqoMz4pf+mgXfNvo2qft8D9OnrH2ABk9w==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/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==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/kareem": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mongodb": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "node_modules/mongoose": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.3.tgz", + "integrity": "sha512-ZB8K8AgbVgLCcqjtmZMxaQBEztwEEZCtAIPMx2Q56Uo4WWKmwf5Nu/EEIFo8d/17P946X0z6xzxwIqCxUMKxrA==", + "dependencies": { + "bson": "^6.2.0", + "kareem": "2.5.1", + "mongodb": "6.3.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "engines": { + "node": ">=16.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/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==" + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/mquery/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mquery/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "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==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, + "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==" + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "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==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/statistics/statisticsservice/package.json b/statistics/statisticsservice/package.json index ab93b5ba..1302162c 100644 --- a/statistics/statisticsservice/package.json +++ b/statistics/statisticsservice/package.json @@ -1,12 +1,18 @@ { "name": "statisticsservice", "version": "1.0.0", - "description": "", "main": "statistics-service.js", - "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", - "license": "ISC" + "license": "ISC", + "dependencies": { + "bcrypt": "^5.1.1", + "body-parser": "^1.20.2", + "cors": "^2.8.5", + "express": "^4.19.1", + "mongoose": "^8.2.3" + }, + "description": "" } diff --git a/statistics/statisticsservice/statistics-service.js b/statistics/statisticsservice/statistics-service.js index 60981d75..14607c45 100644 --- a/statistics/statisticsservice/statistics-service.js +++ b/statistics/statisticsservice/statistics-service.js @@ -4,12 +4,14 @@ const mongoose = require('mongoose'); const bcrypt = require('bcrypt'); const bodyParser = require('body-parser'); const Statistic = require('./user-model') +const cors = require('cors') const app = express(); const port = 8006; // Middleware to parse JSON in request body app.use(bodyParser.json()); +app.use(cors()); // Connect to MongoDB const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/userdb'; @@ -28,30 +30,49 @@ function validateRequiredFields(req, requiredFields) { app.post('/addStatistic', async (req, res) => { try { + console.log("entra por add statistic de statistic service") // Check if required fields are present in the request body validateRequiredFields(req, ['username', 'rigthAnswers', 'wrongAnswers']); - + console.log("pasa el validate fields") + const userId = req.body.username; + const userStatistics = await Statistic.findOne({username: userId }); + // Encrypt the password before saving it const hashedPassword = await bcrypt.hash(req.body.password, 10); - const newStatistic = new Statistic({ - username: req.body.username, - rigthAnswers:rigthAnswers, - wrongAnswers:wrongAnswers - }); + if (!userStatistics) { + // Si no hay estadísticas para este usuario, crear una nueva + const newStatistic = new Statistic({ + username: userId, + gamesPlayed: 1, // Iniciar el contador de juegos jugados en 1 para la nueva estadística + rigthAnswers: req.body.rigthAnswers, + wrongAnswers: req.body.wrongAnswers + }); + await newStatistic.save(); // Guardar la nueva estadística en la base de datos + res.json(newStatistic); + } else { + // Si ya existen estadísticas para este usuario, actualizarlas + userStatistics.gamesPlayed++; // Incrementar el contador de juegos jugados + userStatistics.rigthAnswers += req.body.rigthAnswers; // Sumar las respuestas correctas + userStatistics.wrongAnswers += req.body.wrongAnswers; // Sumar las respuestas incorrectas - await newStatistic.save(); - res.json(newStatistic); - } catch (error) { - res.status(400).json({ error: error.message }); + await userStatistics.save(); // Guardar las estadísticas actualizadas en la base de datos + res.json(userStatistics); + } + } catch (error) { + res.status(400).json({ error: error.message }); }}); - app.get('/statistics/:userId', async (req, res) => { + app.get('/statistics', async (req, res) => { try { - const userId = req.params.userId; + const userId = req.query.userId; // Buscar las estadísticas asociadas al userId - const userStatistics = await Statistic.findOne({ userId }); + const userStatistics = await Statistic.findOne({username: userId }); if (!userStatistics) { + throw new Error('Usuario no encontrado'); + } + if (!userStatistics) { + console.log( 'No se encontraron estadísticas para el usuario.' ) return res.status(404).json({ message: 'No se encontraron estadísticas para el usuario.' }); } @@ -60,11 +81,11 @@ app.post('/addStatistic', async (req, res) => { console.error('Error al obtener estadísticas del usuario:', error); res.status(500).json({ message: 'Error interno del servidor al obtener estadísticas del usuario.' }); } - + }); const server = app.listen(port, () => { - console.log(`User Service listening at http://localhost:${port}`); + console.log(`Statistics Service listening at http://localhost:${port}`); }); // Listen for the 'close' event on the Express.js server diff --git a/statistics/statisticsservice/user-model.js b/statistics/statisticsservice/user-model.js new file mode 100644 index 00000000..7124659f --- /dev/null +++ b/statistics/statisticsservice/user-model.js @@ -0,0 +1,33 @@ +const mongoose = require('mongoose'); + +const userSchema = new mongoose.Schema({ + username: { + type: String, + required: true, + }, + password: { + type: String, + required: true, + }, + createdAt: { + type: Date, + default: Date.now, + }, + gamesPlayed:{ + type: Number, + default:0, + }, + rigthAnswers:{ + type:Number, + default:0, + }, + wrongAnswers:{ + type:Number, + default:0, + }, + +}); + +const User = mongoose.model('User', userSchema); + +module.exports = User \ No newline at end of file diff --git a/users/userservice/user-model.js b/users/userservice/user-model.js index 0b19badc..7124659f 100644 --- a/users/userservice/user-model.js +++ b/users/userservice/user-model.js @@ -13,14 +13,17 @@ const userSchema = new mongoose.Schema({ type: Date, default: Date.now, }, - gamesPlayed:{ //Añadido para guardar las partidas en la bbdd + gamesPlayed:{ type: Number, + default:0, }, rigthAnswers:{ type:Number, + default:0, }, wrongAnswers:{ type:Number, + default:0, }, }); diff --git a/webapp/src/components/Navbar.js b/webapp/src/components/Navbar.js index 6af9310d..f6eac486 100644 --- a/webapp/src/components/Navbar.js +++ b/webapp/src/components/Navbar.js @@ -13,7 +13,7 @@ const Navbar = () => { >
  • - + Usuario
  • diff --git a/webapp/src/components/QuizGame.js b/webapp/src/components/QuizGame.js index 411d4840..6509b75d 100644 --- a/webapp/src/components/QuizGame.js +++ b/webapp/src/components/QuizGame.js @@ -16,6 +16,7 @@ const QuizGame = () => { const [error, setError] = useState(null); const [isToastVisible, setIsToastVisible] = useState(false); const [isFinished, setIsFinished] = useState(false); + const gatewayEndpoint = process.env.GATEWAY_SERVICE_URL || 'http://localhost:8000'; //const image = 'https://img.freepik.com/vector-gratis/fondo-signos-interrogacion_78370-2896.jpg'; const image1 = 'https://t3.ftcdn.net/jpg/05/60/26/26/360_F_560262652_SMg7tie3Zii0zFT9LYkKMqrNrPcU5owB.jpg'; @@ -66,37 +67,50 @@ const QuizGame = () => { setQuestionsNumber(prev => prev + 1); if (questionsNumber === numberOfQuestions) { - const rigthAnswers = answeredQuestions.filter(question => question.isCorrect).length; - const wrongAnswers=totalQuestions-rigthAnswers; - const totalQuestions = numberOfQuestions + 1; if (questionsNumber === numberOfQuestions) { + const rigthAnswers = answeredQuestions.filter(question => question.isCorrect).length; + const wrongAnswers=numberOfQuestions-rigthAnswers; setTimeout(() => { setIsFinished(true); }, 1000); + const username=localStorage.getItem('username') const statisticsData = { - userId: localStorage.getItem('username'), - rigthAnswers, - wrongAnswers + username: username, + rigthAnswers: rigthAnswers, + wrongAnswers:wrongAnswers }; saveStatistics(statisticsData); } - - // - // - // } - + } - const saveStatistics = async (statisticsData) => { - try { - await axios.post(`${apiEndpoint}/addStatistic`, statisticsData); - console.log('Estadísticas guardadas exitosamente'); - } catch (error) { - console.error('Error al guardar las estadísticas:', error); - } + const saveStatistics = (statisticsData) => { + fetch( `${apiEndpoint}/addStatistic`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(statisticsData) + }) + .then(response => { + if (response.ok) { + // La solicitud fue exitosa + return response.json(); + } else { + // La solicitud falló, manejar el error + throw new Error('Error al enviar estadísticas al servidor'); + } + }) + .then(data => { + // Procesar la respuesta del servidor si es necesario + }) + .catch(error => { + // Manejar el error + console.error('Error al enviar estadísticas al servidor:', error); + }); }; return (
    { @@ -40,6 +41,10 @@ const Routes = () => { path: "/home", element: , }, + { + path: "/statistics", + element: , + }, ], }, ]; diff --git a/webapp/src/components/Statistics.js b/webapp/src/components/Statistics.js index ed5c6c43..a17b9c0e 100644 --- a/webapp/src/components/Statistics.js +++ b/webapp/src/components/Statistics.js @@ -1,33 +1,31 @@ import React, { useState, useEffect } from 'react'; import './Statistics.css'; -function Statistics(){ +const Statistics= () => { + const gatewayEndpoint = process.env.GATEWAY_SERVICE_URL || 'http://localhost:8000'; const [userData, setUserData] = useState(null); + const [error, setError] = useState(null); useEffect(() => { - // Obtener el userId del localStorage o de cualquier otro lugar donde lo almacenes const userId = localStorage.getItem('username'); - // Realizar una solicitud al servidor para obtener las estadísticas del usuario - fetch(`/getStatistics/${userId}`) - .then(response => { - if (!response.ok) { - throw new Error('Error al obtener las estadísticas del usuario.'); - } - return response.json(); - }) + fetch(`${gatewayEndpoint}/statistics?userId=${userId}`) + .then(response => response.json()) .then(data => { setUserData(data); }) .catch(error => { - console.error('Error:', error); + setError('Ha habido un error cargando las estadísticas'); }); }, []); + return (

    Estadísticas

    - {userData ? ( + {error ? ( // Verificar si hay un error +

    Error: {error}

    + ) : userData ? ( @@ -39,8 +37,8 @@ function Statistics(){ - - + +
    {userData.gamesPlayed}{userData.correctAnswers}{userData.incorrectAnswers}{userData.rigthAnswers}{userData.wrongAnswers}
    From 2fdb48908c19ef1b40cf55a1fcb08eb609d32702 Mon Sep 17 00:00:00 2001 From: UO289659 Date: Sun, 24 Mar 2024 18:53:47 +0100 Subject: [PATCH 4/7] =?UTF-8?q?estad=C3=ADsticas=20funcionando?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gatewayservice/gateway-service.js | 11 +++---- .../statisticsservice/statistics-service.js | 33 +++++-------------- webapp/src/components/QuizGame.js | 2 +- 3 files changed, 14 insertions(+), 32 deletions(-) diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index d86c096c..685a1155 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -9,7 +9,7 @@ const port = 8000; const authServiceUrl = process.env.AUTH_SERVICE_URL || 'http://localhost:8002'; const userServiceUrl = process.env.USER_SERVICE_URL || 'http://localhost:8001'; const questionServiceUrl = process.env.QUESTION_SERVICE_URL || 'http://localhost:8003'; -const statsServiceUrl = process.env.STATS_SERVICE_URL || 'http://localhost:8006'; +const statisticssServiceUrl = process.env.STATS_SERVICE_URL || 'http://localhost:8006'; app.use(cors()); app.use(express.json()); @@ -55,7 +55,7 @@ app.get('/generate-question', async (req, res) => { app.get('/statistics', async (req, res) => { try { - const questionResponse = await axios.get(statsServiceUrl+'/statistics', { + const questionResponse = await axios.get(statisticssServiceUrl+'/statistics', { params: req.query, }); res.json(questionResponse.data); @@ -65,11 +65,10 @@ app.get('/statistics', async (req, res) => { }); app.post('/addStatistic', async (req, res) => { - console.log("entra por add statisctic de gateway") try { - const questionResponse = await axios.post(statsServiceUrl+'/addStatistic', { - params: req.body, - }); + const questionResponse = await axios.post(statisticssServiceUrl+'/addStatistic', + req.body, + ); res.json(questionResponse.data); } catch (error) { res.status(error.response.status).json({ error: error.response.data.error }); diff --git a/statistics/statisticsservice/statistics-service.js b/statistics/statisticsservice/statistics-service.js index 14607c45..c0e6f14d 100644 --- a/statistics/statisticsservice/statistics-service.js +++ b/statistics/statisticsservice/statistics-service.js @@ -31,35 +31,18 @@ function validateRequiredFields(req, requiredFields) { app.post('/addStatistic', async (req, res) => { try { console.log("entra por add statistic de statistic service") - // Check if required fields are present in the request body - validateRequiredFields(req, ['username', 'rigthAnswers', 'wrongAnswers']); - console.log("pasa el validate fields") + const userId = req.body.username; const userStatistics = await Statistic.findOne({username: userId }); - - // Encrypt the password before saving it - const hashedPassword = await bcrypt.hash(req.body.password, 10); + + userStatistics.gamesPlayed++; // Incrementar el contador de juegos jugados + userStatistics.rigthAnswers += req.body.rigthAnswers; // Sumar las respuestas correctas + userStatistics.wrongAnswers += req.body.wrongAnswers; // Sumar las respuestas incorrectas - if (!userStatistics) { - // Si no hay estadísticas para este usuario, crear una nueva - const newStatistic = new Statistic({ - username: userId, - gamesPlayed: 1, // Iniciar el contador de juegos jugados en 1 para la nueva estadística - rigthAnswers: req.body.rigthAnswers, - wrongAnswers: req.body.wrongAnswers - }); - await newStatistic.save(); // Guardar la nueva estadística en la base de datos - res.json(newStatistic); - } else { - // Si ya existen estadísticas para este usuario, actualizarlas - userStatistics.gamesPlayed++; // Incrementar el contador de juegos jugados - userStatistics.rigthAnswers += req.body.rigthAnswers; // Sumar las respuestas correctas - userStatistics.wrongAnswers += req.body.wrongAnswers; // Sumar las respuestas incorrectas - - await userStatistics.save(); // Guardar las estadísticas actualizadas en la base de datos - res.json(userStatistics); + await userStatistics.save(); // Guardar las estadísticas actualizadas en la base de datos + res.json(userStatistics); } - } catch (error) { + catch (error) { res.status(400).json({ error: error.message }); }}); diff --git a/webapp/src/components/QuizGame.js b/webapp/src/components/QuizGame.js index 6509b75d..7efe661a 100644 --- a/webapp/src/components/QuizGame.js +++ b/webapp/src/components/QuizGame.js @@ -70,7 +70,7 @@ const QuizGame = () => { if (questionsNumber === numberOfQuestions) { const rigthAnswers = answeredQuestions.filter(question => question.isCorrect).length; - const wrongAnswers=numberOfQuestions-rigthAnswers; + const wrongAnswers=numberOfQuestions+1-rigthAnswers; setTimeout(() => { setIsFinished(true); }, 1000); From fd8bacc8b678e75f164ebf35d0c75ecba9c76e95 Mon Sep 17 00:00:00 2001 From: UO289659 Date: Sun, 31 Mar 2024 14:08:26 +0200 Subject: [PATCH 5/7] Primer test hecho, falta por arreglar otro. --- package-lock.json | 4893 +++++++++++++++++++--- package.json | 4 + webapp/package-lock.json | 1523 +++++-- webapp/package.json | 9 +- webapp/src/components/Statistics.test.js | 46 +- 5 files changed, 5468 insertions(+), 1007 deletions(-) diff --git a/package-lock.json b/package-lock.json index 22002239..13c406fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,780 +7,3555 @@ "dependencies": { "@material-ui/core": "^4.12.4", "@mui/styles": "^5.15.11", + "axios": "^1.6.8", + "axios-mock-adapter": "^1.22.0", "express": "^4.19.1", + "jest": "^29.7.0", + "jsdom": "^24.0.0", "react-icons": "^5.0.1", "react-responsive": "^9.0.2", "react-router-dom": "^6.22.3" } }, - "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + "node_modules/@babel/compat-data": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", + "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@material-ui/core": { - "version": "4.12.4", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", - "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", - "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", + "node_modules/@babel/core": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", + "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", "dependencies": { - "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.11.5", - "@material-ui/system": "^4.12.2", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.3", - "@types/react-transition-group": "^4.2.0", - "clsx": "^1.0.4", - "hoist-non-react-statics": "^3.3.2", - "popper.js": "1.16.1-lts", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0", - "react-transition-group": "^4.4.0" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.1", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.1", + "@babel/parser": "^7.24.1", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.9.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/material-ui" + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" }, - "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" + "engines": { + "node": ">=6.0" }, "peerDependenciesMeta": { - "@types/react": { + "supports-color": { "optional": true } } }, - "node_modules/@material-ui/styles": { - "version": "4.11.5", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", - "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", - "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", + "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", "dependencies": { - "@babel/runtime": "^7.4.4", - "@emotion/hash": "^0.8.0", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.3", - "clsx": "^1.0.4", - "csstype": "^2.5.2", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.5.1", - "jss-plugin-camel-case": "^10.5.1", - "jss-plugin-default-unit": "^10.5.1", - "jss-plugin-global": "^10.5.1", - "jss-plugin-nested": "^10.5.1", - "jss-plugin-props-sort": "^10.5.1", - "jss-plugin-rule-value-function": "^10.5.1", - "jss-plugin-vendor-prefixer": "^10.5.1", - "prop-types": "^15.7.2" + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, - "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@material-ui/system": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz", - "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==", + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dependencies": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.3", - "csstype": "^2.5.2", - "prop-types": "^15.7.2" + "@babel/types": "^7.24.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@material-ui/types": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", - "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", - "peerDependencies": { - "@types/react": "*" + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@material-ui/utils": { - "version": "4.11.3", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", - "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", + "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", "dependencies": { - "@babel/runtime": "^7.4.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@mui/private-theming": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.11.tgz", - "integrity": "sha512-jY/696SnSxSzO1u86Thym7ky5T9CgfidU3NFJjguldqK4f3Z5S97amZ6nffg8gTD0HBjY9scB+4ekqDEUmxZOA==", + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.15.11", - "prop-types": "^15.8.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/styles": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.15.11.tgz", - "integrity": "sha512-7TCs+0AGCtNaqBHhj0ZODYLnQjVrY9nG4PrT2bzIGIh3zvJxF7zY6IRiPyBFsKY1OjdVHjjYuan4U81QbdBrew==", + "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==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@emotion/hash": "^0.9.1", - "@mui/private-theming": "^5.15.11", - "@mui/types": "^7.2.13", - "@mui/utils": "^5.15.11", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.10.0", - "jss-plugin-camel-case": "^10.10.0", - "jss-plugin-default-unit": "^10.10.0", - "jss-plugin-global": "^10.10.0", - "jss-plugin-nested": "^10.10.0", - "jss-plugin-props-sort": "^10.10.0", - "jss-plugin-rule-value-function": "^10.10.0", - "jss-plugin-vendor-prefixer": "^10.10.0", - "prop-types": "^15.8.1" + "@babel/helper-plugin-utils": "^7.12.13" }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.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==", + "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-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@material-ui/core": { + "version": "4.12.4", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", + "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", + "dependencies": { + "@babel/runtime": "^7.4.4", + "@material-ui/styles": "^4.11.5", + "@material-ui/system": "^4.12.2", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.3", + "@types/react-transition-group": "^4.2.0", + "clsx": "^1.0.4", + "hoist-non-react-statics": "^3.3.2", + "popper.js": "1.16.1-lts", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0", + "react-transition-group": "^4.4.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/material-ui" + }, + "peerDependencies": { + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/styles": { + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", + "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", + "dependencies": { + "@babel/runtime": "^7.4.4", + "@emotion/hash": "^0.8.0", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.3", + "clsx": "^1.0.4", + "csstype": "^2.5.2", + "hoist-non-react-statics": "^3.3.2", + "jss": "^10.5.1", + "jss-plugin-camel-case": "^10.5.1", + "jss-plugin-default-unit": "^10.5.1", + "jss-plugin-global": "^10.5.1", + "jss-plugin-nested": "^10.5.1", + "jss-plugin-props-sort": "^10.5.1", + "jss-plugin-rule-value-function": "^10.5.1", + "jss-plugin-vendor-prefixer": "^10.5.1", + "prop-types": "^15.7.2" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/material-ui" + }, + "peerDependencies": { + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/system": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz", + "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==", + "dependencies": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.3", + "csstype": "^2.5.2", + "prop-types": "^15.7.2" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/material-ui" + }, + "peerDependencies": { + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/types": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/utils": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", + "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", + "dependencies": { + "@babel/runtime": "^7.4.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/@mui/private-theming": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.11.tgz", + "integrity": "sha512-jY/696SnSxSzO1u86Thym7ky5T9CgfidU3NFJjguldqK4f3Z5S97amZ6nffg8gTD0HBjY9scB+4ekqDEUmxZOA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.11", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styles": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.15.11.tgz", + "integrity": "sha512-7TCs+0AGCtNaqBHhj0ZODYLnQjVrY9nG4PrT2bzIGIh3zvJxF7zY6IRiPyBFsKY1OjdVHjjYuan4U81QbdBrew==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/hash": "^0.9.1", + "@mui/private-theming": "^5.15.11", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "hoist-non-react-statics": "^3.3.2", + "jss": "^10.10.0", + "jss-plugin-camel-case": "^10.10.0", + "jss-plugin-default-unit": "^10.10.0", + "jss-plugin-global": "^10.10.0", + "jss-plugin-nested": "^10.10.0", + "jss-plugin-props-sort": "^10.10.0", + "jss-plugin-rule-value-function": "^10.10.0", + "jss-plugin-vendor-prefixer": "^10.10.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styles/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@mui/styles/node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@mui/styles/node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/@mui/types": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", + "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.11.tgz", + "integrity": "sha512-D6bwqprUa9Stf8ft0dcMqWyWDKEo7D+6pB1k8WajbqlYIRA8J8Kw9Ra7PSZKKePGBGWO+/xxrX1U8HpG/aXQCw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@remix-run/router": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", + "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "20.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", + "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/react": { + "version": "17.0.75", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.75.tgz", + "integrity": "sha512-MSA+NzEzXnQKrqpO63CYqNstFjsESgvJAdAyyJ1n6ZQq/GLgf6nOfIKwk+Twuz0L1N6xPe+qz5xRCJrbhMaLsw==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react/node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "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==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios-mock-adapter": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz", + "integrity": "sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "is-buffer": "^2.0.5" + }, + "peerDependencies": { + "axios": ">= 0.17.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001600", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", + "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "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==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-mediaquery": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", + "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==" + }, + "node_modules/css-vendor": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", + "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", + "dependencies": { + "@babel/runtime": "^7.8.3", + "is-in-browser": "^1.0.2" + } + }, + "node_modules/cssstyle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", + "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-helpers/node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.722", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.722.tgz", + "integrity": "sha512-5nLE0TWFFpZ80Crhtp4pIp8LXCztjYX41yUcV6b+bKR2PqzjskTMOOlBi1VjBHlvHwS+4gar7kNKOrsbsewEZQ==" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "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": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "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/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.1.tgz", + "integrity": "sha512-K4w1/Bp7y8iSiVObmCrtq8Cs79XjJc/RU2YYkZQ7wpUu5ZyZ7MtPHkqoMz4pf+mgXfNvo2qft8D9OnrH2ABk9w==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "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==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/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==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "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/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/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==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "engines": { - "node": ">=12.0.0" + "node": ">=4" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@mui/styles/node_modules/@emotion/hash": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } }, - "node_modules/@mui/styles/node_modules/clsx": { + "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", - "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "engines": { "node": ">=6" } }, - "node_modules/@mui/styles/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "node_modules/is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" }, - "node_modules/@mui/types": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", - "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "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==", + "engines": { + "node": ">=0.12.0" } }, - "node_modules/@mui/utils": { - "version": "5.15.11", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.11.tgz", - "integrity": "sha512-D6bwqprUa9Stf8ft0dcMqWyWDKEo7D+6pB1k8WajbqlYIRA8J8Kw9Ra7PSZKKePGBGWO+/xxrX1U8HpG/aXQCw==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@types/prop-types": "^15.7.11", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "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==", "engines": { - "node": ">=12.0.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@mui/utils/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/@remix-run/router": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", - "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" - }, - "node_modules/@types/react": { - "version": "17.0.75", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.75.tgz", - "integrity": "sha512-MSA+NzEzXnQKrqpO63CYqNstFjsESgvJAdAyyJ1n6ZQq/GLgf6nOfIKwk+Twuz0L1N6xPe+qz5xRCJrbhMaLsw==", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@types/react-transition-group": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", - "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "@types/react": "*" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@types/react/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, - "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==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.6" + "node": ">=10" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "node_modules/istanbul-lib-instrument/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=10" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=10" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "ms": "2.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": ">=6" + "node": ">=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==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dependencies": { - "safe-buffer": "5.2.1" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/css-mediaquery": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", - "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==" - }, - "node_modules/css-vendor": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", - "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dependencies": { - "@babel/runtime": "^7.8.3", - "is-in-browser": "^1.0.2" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dependencies": { - "ms": "2.0.0" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, "engines": { - "node": ">= 0.8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/dom-helpers/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">= 0.8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dependencies": { - "get-intrinsic": "^1.2.4" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/express": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.1.tgz", - "integrity": "sha512-K4w1/Bp7y8iSiVObmCrtq8Cs79XjJc/RU2YYkZQ7wpUu5ZyZ7MtPHkqoMz4pf+mgXfNvo2qft8D9OnrH2ABk9w==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": ">= 0.8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { - "get-intrinsic": "^1.1.3" + "lru-cache": "^6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dependencies": { - "es-define-property": "^1.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "engines": { - "node": ">= 0.4" + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dependencies": { - "function-bind": "^1.1.2" + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dependencies": { - "react-is": "^16.7.0" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "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==", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/hyphenate-style-name": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", - "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz", + "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.7", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.3", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.16.0", + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/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==", + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { - "node": ">= 0.10" + "node": ">=4" } }, - "node_modules/is-in-browser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, "node_modules/jss": { "version": "10.10.0", @@ -869,6 +3644,38 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "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==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -880,6 +3687,66 @@ "loose-envify": "cli.js" } }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/matchmediaquery": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz", @@ -901,6 +3768,11 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -909,6 +3781,18 @@ "node": ">= 0.6" } }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -939,11 +3823,35 @@ "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -952,6 +3860,40 @@ "node": ">= 0.6" } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "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==", + "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==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -979,6 +3921,103 @@ "node": ">= 0.8" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/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==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -987,16 +4026,121 @@ "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==", + "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "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==", + "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==" + }, "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": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "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==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/popper.js": { "version": "1.16.1-lts", "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -1024,6 +4168,39 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -1038,6 +4215,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -1147,25 +4329,86 @@ "react-dom": ">=16.8" } }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "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": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "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==", "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" + "resolve-from": "^5.0.0" }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" + "engines": { + "node": ">=8" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -1191,6 +4434,17 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, "node_modules/scheduler": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", @@ -1201,6 +4455,14 @@ "object-assign": "^4.1.1" } }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -1269,6 +4531,25 @@ "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" }, + "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==", + "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==", + "engines": { + "node": ">=8" + } + }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", @@ -1286,6 +4567,57 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -1294,11 +4626,138 @@ "node": ">= 0.8" } }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "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==", + "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", @@ -1307,6 +4766,50 @@ "node": ">=0.6" } }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -1319,6 +4822,19 @@ "node": ">= 0.6" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -1327,6 +4843,44 @@ "node": ">= 0.8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -1335,6 +4889,19 @@ "node": ">= 0.4.0" } }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -1342,6 +4909,204 @@ "engines": { "node": ">= 0.8" } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "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 + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 546f48ae..38e18143 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,11 @@ "dependencies": { "@material-ui/core": "^4.12.4", "@mui/styles": "^5.15.11", + "axios": "^1.6.8", + "axios-mock-adapter": "^1.22.0", "express": "^4.19.1", + "jest": "^29.7.0", + "jsdom": "^24.0.0", "react-icons": "^5.0.1", "react-responsive": "^9.0.2", "react-router-dom": "^6.22.3" diff --git a/webapp/package-lock.json b/webapp/package-lock.json index 551cb7ef..b3a98f41 100644 --- a/webapp/package-lock.json +++ b/webapp/package-lock.json @@ -12,9 +12,10 @@ "@emotion/styled": "^11.11.0", "@mui/material": "^5.15.11", "@testing-library/jest-dom": "^5.17.0", - "@testing-library/react": "^14.1.2", + "@testing-library/react": "^14.2.2", "@testing-library/user-event": "^14.5.2", - "axios": "^1.6.5", + "axios": "^1.6.8", + "msw": "^2.2.13", "react": "^18.2.0", "react-dom": "^18.2.0", "react-icons": "^5.0.1", @@ -22,12 +23,14 @@ "react-router-dom": "^6.22.1", "react-scripts": "5.0.1", "react-toastify": "^8.2.0", + "text-encoding": "^0.7.0", "web-vitals": "^3.5.1" }, "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "axios-mock-adapter": "^1.22.0", "expect-puppeteer": "^9.0.2", - "jest": "^29.3.1", + "jest": "^29.7.0", "jest-cucumber": "^3.0.1", "jest-environment-node": "^29.7.0", "mongodb-memory-server": "^9.1.4", @@ -662,9 +665,17 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, "engines": { "node": ">=6.9.0" }, @@ -1908,6 +1919,17 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -2033,6 +2055,22 @@ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, + "node_modules/@bundled-es-modules/cookie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz", + "integrity": "sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==", + "dependencies": { + "cookie": "^0.5.0" + } + }, + "node_modules/@bundled-es-modules/statuses": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz", + "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==", + "dependencies": { + "statuses": "^2.0.1" + } + }, "node_modules/@cnakazawa/watch": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", @@ -2648,6 +2686,137 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" }, + "node_modules/@inquirer/confirm": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.1.tgz", + "integrity": "sha512-epf2RVHJJxX5qF85U41PBq9qq2KTJW9sKNLx6+bb2/i2rjXgeoHVGUm8kJxZHavrESgXgBLKCABcfOJYIso8cQ==", + "dependencies": { + "@inquirer/core": "^7.1.1", + "@inquirer/type": "^1.2.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-7.1.1.tgz", + "integrity": "sha512-rD1UI3eARN9qJBcLRXPOaZu++Bg+xsk0Tuz1EUOXEW+UbYif1sGjr0Tw7lKejHzKD9IbXE1CEtZ+xR/DrNlQGQ==", + "dependencies": { + "@inquirer/type": "^1.2.1", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.11.30", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@inquirer/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@inquirer/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@inquirer/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@inquirer/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.2.1.tgz", + "integrity": "sha512-xwMfkPAxeo8Ji/IxfUSqzRi0/+F2GIqJmpc5/thelgMGsjNZcjDDRBO9TLXT1s/hdx/mK5QbVIvgoLIFgXhTMQ==", + "engines": { + "node": ">=18" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -4526,6 +4695,30 @@ "sparse-bitfield": "^3.0.3" } }, + "node_modules/@mswjs/cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-1.1.0.tgz", + "integrity": "sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@mswjs/interceptors": { + "version": "0.26.15", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.26.15.tgz", + "integrity": "sha512-HM47Lu1YFmnYHKMBynFfjCp0U/yRskHj/8QEJW0CBEPOlw8Gkmjfll+S9b8M7V5CNDw2/ciRxjjnWeaCiblSIQ==", + "dependencies": { + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", + "outvariant": "^1.2.1", + "strict-event-emitter": "^0.5.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@mui/base": { "version": "5.0.0-beta.37", "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.37.tgz", @@ -4816,6 +5009,25 @@ "node": ">= 8" } }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==" + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" + } + }, + "node_modules/@open-draft/until": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==" + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -5539,9 +5751,9 @@ } }, "node_modules/@testing-library/react": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.1.2.tgz", - "integrity": "sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg==", + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.2.2.tgz", + "integrity": "sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==", "dependencies": { "@babel/runtime": "^7.12.5", "@testing-library/dom": "^9.0.0", @@ -5665,6 +5877,11 @@ "@types/node": "*" } }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, "node_modules/@types/eslint": { "version": "8.56.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.1.tgz", @@ -5832,10 +6049,18 @@ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { - "version": "20.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.7.tgz", - "integrity": "sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==", + "version": "20.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", + "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", "dependencies": { "undici-types": "~5.26.4" } @@ -5973,6 +6198,11 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" }, + "node_modules/@types/statuses": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.5.tgz", + "integrity": "sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==" + }, "node_modules/@types/testing-library__jest-dom": { "version": "5.14.9", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", @@ -6008,6 +6238,11 @@ "@types/webidl-conversions": "*" } }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==" + }, "node_modules/@types/ws": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", @@ -6503,14 +6738,15 @@ } }, "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, "dependencies": { - "debug": "4" + "debug": "^4.3.4" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/ajv": { @@ -6998,11 +7234,11 @@ } }, "node_modules/axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -8136,6 +8372,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "engines": { + "node": ">= 12" + } + }, "node_modules/clipboardy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", @@ -9033,22 +9288,6 @@ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -9090,19 +9329,6 @@ "node": ">= 14" } }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -11030,6 +11256,20 @@ "pend": "~1.2.0" } }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -11191,9 +11431,9 @@ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" }, "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", @@ -11817,6 +12057,14 @@ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, "node_modules/growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", @@ -11998,6 +12246,11 @@ "he": "bin/he" } }, + "node_modules/headers-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==" + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -12068,17 +12321,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/html-entities": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", @@ -12207,16 +12449,16 @@ } }, "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/http-proxy-middleware": { @@ -12243,15 +12485,16 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, "dependencies": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/human-signals": { @@ -12753,6 +12996,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==" + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -14480,13 +14728,25 @@ "@types/yargs-parser": "*" } }, - "node_modules/jest-cucumber/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-cucumber/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/jest-cucumber/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" @@ -14594,6 +14854,38 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, + "node_modules/jest-cucumber/node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cucumber/node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/jest-cucumber/node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-cucumber/node_modules/diff-sequences": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", @@ -14655,6 +14947,20 @@ "node": ">= 10.14.2" } }, + "node_modules/jest-cucumber/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/jest-cucumber/node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -14679,6 +14985,45 @@ "node": ">=8" } }, + "node_modules/jest-cucumber/node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-cucumber/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-cucumber/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/jest-cucumber/node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -14688,6 +15033,18 @@ "node": ">=8.12.0" } }, + "node_modules/jest-cucumber/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/jest-cucumber/node_modules/istanbul-lib-instrument": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", @@ -15231,6 +15588,58 @@ "node": ">= 10.13.0" } }, + "node_modules/jest-cucumber/node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-cucumber/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, "node_modules/jest-cucumber/node_modules/pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", @@ -15246,6 +15655,18 @@ "node": ">= 10" } }, + "node_modules/jest-cucumber/node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-cucumber/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -15273,6 +15694,18 @@ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", "dev": true }, + "node_modules/jest-cucumber/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-cucumber/node_modules/v8-to-istanbul": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", @@ -15296,6 +15729,83 @@ "node": ">= 8" } }, + "node_modules/jest-cucumber/node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-cucumber/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/jest-cucumber/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/jest-cucumber/node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/jest-cucumber/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-cucumber/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/jest-cucumber/node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", @@ -15648,6 +16158,17 @@ "@sinonjs/commons": "^1.7.0" } }, + "node_modules/jest-environment-jsdom/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/jest-environment-jsdom/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -15682,67 +16203,298 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "color-name": "~1.1.4" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/jest-environment-jsdom/node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-jsdom/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/jest-environment-jsdom/node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" } }, - "node_modules/jest-environment-jsdom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-environment-jsdom/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==", + "node_modules/jest-environment-jsdom/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "engines": { - "node": ">=8" + "node": ">=10.4" } }, - "node_modules/jest-environment-jsdom/node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "node_modules/jest-environment-jsdom/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "iconv-lite": "0.4.24" } }, - "node_modules/jest-environment-jsdom/node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "node_modules/jest-environment-jsdom/node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10" } }, - "node_modules/jest-environment-jsdom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, + "node_modules/jest-environment-jsdom/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { - "node": ">=8" + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, + "node_modules/jest-environment-jsdom/node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", @@ -18272,84 +19024,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jsdom/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -19043,94 +19717,220 @@ "node": ">=12" } }, - "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, "engines": { "node": ">=12" } }, - "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, + "node_modules/mongodb-memory-server": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.4.tgz", + "integrity": "sha512-S5s/aVeGmDcX+M63Tir5o+RrB7Z1sazaO8EC7m3vQVkNRCP5soaQpXMTJWh5ac1dEPzq65x8QG2pY5ibpn/bIA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "mongodb-memory-server-core": "9.1.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.20.1" + } + }, + "node_modules/mongodb-memory-server-core": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.4.tgz", + "integrity": "sha512-DfMpNcv/4T1hQCKWBqhUt1FkHwt6DlIqqIjYFgg3FAOismsId6Zg+RuucOQbGAPUPaU0bLSgn6cVRWAqV40OVA==", + "dev": true, + "dependencies": { + "async-mutex": "^0.4.0", + "camelcase": "^6.3.0", + "debug": "^4.3.4", + "find-cache-dir": "^3.3.2", + "follow-redirects": "^1.15.3", + "https-proxy-agent": "^7.0.2", + "mongodb": "^5.9.1", + "new-find-package-json": "^2.0.0", + "semver": "^7.5.4", + "tar-stream": "^3.0.0", + "tslib": "^2.6.2", + "yauzl": "^2.10.0" + }, + "engines": { + "node": ">=14.20.1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/msw": { + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.2.13.tgz", + "integrity": "sha512-ljFf1xZsU0b4zv1l7xzEmC6OZA6yD06hcx0H+dc8V0VypaP3HGYJa1rMLjQbBWl32ptGhcfwcPCWDB1wjmsftw==", + "hasInstallScript": true, + "dependencies": { + "@bundled-es-modules/cookie": "^2.0.0", + "@bundled-es-modules/statuses": "^1.0.1", + "@inquirer/confirm": "^3.0.0", + "@mswjs/cookies": "^1.1.0", + "@mswjs/interceptors": "^0.26.14", + "@open-draft/until": "^2.1.0", + "@types/cookie": "^0.6.0", + "@types/statuses": "^2.0.4", + "chalk": "^4.1.2", + "graphql": "^16.8.1", + "headers-polyfill": "^4.0.2", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.2", + "path-to-regexp": "^6.2.0", + "strict-event-emitter": "^0.5.1", + "type-fest": "^4.9.0", + "yargs": "^17.7.2" + }, + "bin": { + "msw": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mswjs" + }, + "peerDependencies": { + "typescript": ">= 4.7.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/msw/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/msw/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/msw/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { "node": ">=12" } }, - "node_modules/mongodb-memory-server": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.4.tgz", - "integrity": "sha512-S5s/aVeGmDcX+M63Tir5o+RrB7Z1sazaO8EC7m3vQVkNRCP5soaQpXMTJWh5ac1dEPzq65x8QG2pY5ibpn/bIA==", - "dev": true, - "hasInstallScript": true, + "node_modules/msw/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "mongodb-memory-server-core": "9.1.4", - "tslib": "^2.6.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">=14.20.1" + "node": ">=7.0.0" } }, - "node_modules/mongodb-memory-server-core": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.4.tgz", - "integrity": "sha512-DfMpNcv/4T1hQCKWBqhUt1FkHwt6DlIqqIjYFgg3FAOismsId6Zg+RuucOQbGAPUPaU0bLSgn6cVRWAqV40OVA==", - "dev": true, - "dependencies": { - "async-mutex": "^0.4.0", - "camelcase": "^6.3.0", - "debug": "^4.3.4", - "find-cache-dir": "^3.3.2", - "follow-redirects": "^1.15.3", - "https-proxy-agent": "^7.0.2", - "mongodb": "^5.9.1", - "new-find-package-json": "^2.0.0", - "semver": "^7.5.4", - "tar-stream": "^3.0.0", - "tslib": "^2.6.2", - "yauzl": "^2.10.0" - }, + "node_modules/msw/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/msw/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": ">=14.20.1" + "node": ">=8" } }, - "node_modules/mongodb-memory-server-core/node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, + "node_modules/msw/node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + }, + "node_modules/msw/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "debug": "^4.3.4" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 14" + "node": ">=8" } }, - "node_modules/mongodb-memory-server-core/node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", - "dev": true, + "node_modules/msw/node_modules/type-fest": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.14.0.tgz", + "integrity": "sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/msw/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">= 14" + "node": ">=12" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "node_modules/msw/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } }, "node_modules/multicast-dns": { "version": "7.2.5", @@ -19144,6 +19944,14 @@ "multicast-dns": "cli.js" } }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -19710,6 +20518,11 @@ "node": ">= 0.8.0" } }, + "node_modules/outvariant": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz", + "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==" + }, "node_modules/p-each-series": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", @@ -19798,44 +20611,6 @@ "node": ">= 14" } }, - "node_modules/pac-proxy-agent/node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/pac-resolver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", @@ -19893,11 +20668,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -21541,44 +22311,6 @@ "node": ">= 14" } }, - "node_modules/proxy-agent/node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/proxy-agent/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", @@ -24275,17 +25007,6 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", @@ -24947,18 +25668,6 @@ "node": ">= 14" } }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -25366,6 +26075,11 @@ "queue-tick": "^1.0.1" } }, + "node_modules/strict-event-emitter": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==" + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -26015,6 +26729,12 @@ "node": ">=8" } }, + "node_modules/text-encoding": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", + "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", + "deprecated": "no longer maintained" + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -26154,17 +26874,6 @@ "node": ">= 4.0.0" } }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", @@ -26701,17 +27410,6 @@ "browser-process-hrtime": "^1.0.0" } }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/wait-on": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", @@ -26765,11 +27463,12 @@ "integrity": "sha512-xQ9lvIpfLxUj0eSmT79ZjRoU5wIRfIr7pNukL7ZE4EcWZSmfZQqOlhuAGfkVa3EFmzPHZhWhXfm2i5ys+THVPg==" }, "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, "engines": { - "node": ">=10.4" + "node": ">=12" } }, "node_modules/webpack": { @@ -27080,48 +27779,11 @@ "node": ">=0.8.0" } }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -27705,11 +28367,6 @@ } } }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", diff --git a/webapp/package.json b/webapp/package.json index c8e06232..af058ff1 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -7,9 +7,10 @@ "@emotion/styled": "^11.11.0", "@mui/material": "^5.15.11", "@testing-library/jest-dom": "^5.17.0", - "@testing-library/react": "^14.1.2", + "@testing-library/react": "^14.2.2", "@testing-library/user-event": "^14.5.2", - "axios": "^1.6.5", + "axios": "^1.6.8", + "msw": "^2.2.13", "react": "^18.2.0", "react-dom": "^18.2.0", "react-icons": "^5.0.1", @@ -17,6 +18,7 @@ "react-router-dom": "^6.22.1", "react-scripts": "5.0.1", "react-toastify": "^8.2.0", + "text-encoding": "^0.7.0", "web-vitals": "^3.5.1" }, "scripts": { @@ -46,9 +48,10 @@ ] }, "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "axios-mock-adapter": "^1.22.0", "expect-puppeteer": "^9.0.2", - "jest": "^29.3.1", + "jest": "^29.7.0", "jest-cucumber": "^3.0.1", "jest-environment-node": "^29.7.0", "mongodb-memory-server": "^9.1.4", diff --git a/webapp/src/components/Statistics.test.js b/webapp/src/components/Statistics.test.js index 197b69d0..a6e42695 100644 --- a/webapp/src/components/Statistics.test.js +++ b/webapp/src/components/Statistics.test.js @@ -1,14 +1,46 @@ import { render, screen } from '@testing-library/react'; import Statistics from './Statistics'; +import axios from 'axios'; +import MockAdapter from 'axios-mock-adapter'; -test('Estadísticas de usuario', async () => { +const mockAxios = new MockAdapter(axios); +const gatewayEndpoint = process.env.GATEWAY_SERVICE_URL || 'http://localhost:8000'; + +beforeEach(() => { + mockAxios.reset(); +}); + +test('user statistics', async () => { render(); - expect(screen.getByText(/Loading questions.../i)).toBeInTheDocument(); + let statisticWordArray=screen.getAllByText(/Estadísticas/i) + for(let i=0;i<2;i++){ + expect(statisticWordArray[i]).toBeInTheDocument(); + } + }); + - // Wait for the asynchronous operation to complete - await screen.findByRole('button', { name: /correcta/i }); + test('renders statistics table correctly', async () => { + + // Configuramos axios-mock-adapter para que devuelva userData cuando se haga una solicitud a la URL deseada + mockAxios.onGet(`${gatewayEndpoint}/statistics?userId=felipe`).reply(200, { + gamesPlayed: 10, + rigthAnswers: 7, + wrongAnswers: 3 + }); - const correcta = screen.getByRole('button', { name: /correcta/i }); - fireEvent.click(correcta); - }); \ No newline at end of file + // Renderizamos el componente Statistics + render(); + + expect(screen.getByText(/Cargando estadísticas.../i)).toBeInTheDocument(); + + // Verifica "Partidas jugadas" + expect(await screen.findByText('Partidas Jugadas')).toBeInTheDocument(); + + // Verifica "Preguntas acertadas" + expect(screen.getByText('Preguntas Acertadas')).toBeInTheDocument(); + + // Verifica "Preguntas falladas" + expect(screen.getByText('Preguntas Falladas')).toBeInTheDocument(); + + }); \ No newline at end of file From fba1d1881464ffe352880092564f6a3ed31c5004 Mon Sep 17 00:00:00 2001 From: UO289659 Date: Sun, 31 Mar 2024 14:26:23 +0200 Subject: [PATCH 6/7] =?UTF-8?q?Test=20de=20estad=C3=ADsticas=20completos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/src/components/Statistics.test.js | 73 +++++++++++++++--------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/webapp/src/components/Statistics.test.js b/webapp/src/components/Statistics.test.js index a6e42695..25aed06a 100644 --- a/webapp/src/components/Statistics.test.js +++ b/webapp/src/components/Statistics.test.js @@ -1,17 +1,14 @@ +import React from 'react'; import { render, screen } from '@testing-library/react'; import Statistics from './Statistics'; -import axios from 'axios'; -import MockAdapter from 'axios-mock-adapter'; -const mockAxios = new MockAdapter(axios); -const gatewayEndpoint = process.env.GATEWAY_SERVICE_URL || 'http://localhost:8000'; - -beforeEach(() => { - mockAxios.reset(); -}); +describe('Statistics component', () => { + beforeEach(() => { + // Limpiamos el localStorage antes de cada prueba + localStorage.clear(); + }); -test('user statistics', async () => { - + test('user statistics', async () => { render(); let statisticWordArray=screen.getAllByText(/Estadísticas/i) for(let i=0;i<2;i++){ @@ -19,28 +16,52 @@ test('user statistics', async () => { } }); - - test('renders statistics table correctly', async () => { - - // Configuramos axios-mock-adapter para que devuelva userData cuando se haga una solicitud a la URL deseada - mockAxios.onGet(`${gatewayEndpoint}/statistics?userId=felipe`).reply(200, { + + it('fetches user statistics and displays them', async () => { + const userData = { gamesPlayed: 10, rigthAnswers: 7, wrongAnswers: 3 - }); - - // Renderizamos el componente Statistics + }; + + // Simulamos el usuario almacenado en localStorage + const userId = 'testUser'; + localStorage.setItem('username', userId); + + // Mock de la respuesta de la API + const mockResponse = { + ok: true, + json: jest.fn().mockResolvedValue(userData), + }; + jest.spyOn(global, 'fetch').mockResolvedValueOnce(mockResponse); + + // Renderizamos el componente render(); - expect(screen.getByText(/Cargando estadísticas.../i)).toBeInTheDocument(); + // Verificamos que se haya hecho la solicitud con la URL correcta + expect(global.fetch).toHaveBeenCalledWith(`http://localhost:8000/statistics?userId=${userId}`); - // Verifica "Partidas jugadas" - expect(await screen.findByText('Partidas Jugadas')).toBeInTheDocument(); + // Verificamos que se muestren los datos de las estadísticas + await screen.findByText(/Partidas jugadas/i); + expect(screen.getByText(/Preguntas Acertadas/i)).toBeInTheDocument(); + expect(screen.getByText(/Preguntas Falladas/i)).toBeInTheDocument(); + }); + + it('displays an error message when fetching statistics fails', async () => { + // Simulamos el usuario almacenado en localStorage + const userId = 'testUser'; + localStorage.setItem('username', userId); + + // Mock de la respuesta de la API para simular un error + jest.spyOn(global, 'fetch').mockRejectedValueOnce(new Error('Failed to fetch')); - // Verifica "Preguntas acertadas" - expect(screen.getByText('Preguntas Acertadas')).toBeInTheDocument(); + // Renderizamos el componente + render(); - // Verifica "Preguntas falladas" - expect(screen.getByText('Preguntas Falladas')).toBeInTheDocument(); + // Verificamos que se haya hecho la solicitud con la URL correcta + expect(global.fetch).toHaveBeenCalledWith(`http://localhost:8000/statistics?userId=${userId}`); - }); \ No newline at end of file + // Verificamos que se muestre el mensaje de error + await screen.findByText(/Ha habido un error cargando las estadísticas/i); + }); +}); From 15ac7577ddc6ecf630b70d2a5a88b88fe50d1310 Mon Sep 17 00:00:00 2001 From: UO289659 Date: Sun, 31 Mar 2024 14:28:45 +0200 Subject: [PATCH 7/7] =?UTF-8?q?Mejora=20en=20test=20de=20estad=C3=ADsticas?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/src/components/Statistics.test.js | 28 ++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/webapp/src/components/Statistics.test.js b/webapp/src/components/Statistics.test.js index 25aed06a..46de694f 100644 --- a/webapp/src/components/Statistics.test.js +++ b/webapp/src/components/Statistics.test.js @@ -41,10 +41,30 @@ describe('Statistics component', () => { // Verificamos que se haya hecho la solicitud con la URL correcta expect(global.fetch).toHaveBeenCalledWith(`http://localhost:8000/statistics?userId=${userId}`); - // Verificamos que se muestren los datos de las estadísticas - await screen.findByText(/Partidas jugadas/i); - expect(screen.getByText(/Preguntas Acertadas/i)).toBeInTheDocument(); - expect(screen.getByText(/Preguntas Falladas/i)).toBeInTheDocument(); + // Verificamos que se muestre una tabla +const table = await screen.findByRole('table'); +expect(table).toBeInTheDocument(); + +// Verificar que la tabla contiene las columnas esperadas +const columnHeaders = ['Partidas Jugadas', 'Preguntas Acertadas', 'Preguntas Falladas']; +const headerElements = screen.getAllByRole('columnheader'); +columnHeaders.forEach(headerText => { + expect(headerElements.some(header => header.textContent === headerText)).toBeTruthy(); +}); + +// Verificar que la tabla contiene los datos esperados +const tableRows = screen.getAllByRole('row'); +expect(tableRows.length).toBeGreaterThan(1); // Verificar que hay más de una fila (encabezados + datos) +const dataRows = tableRows.slice(1); // Ignorar la primera fila que son los encabezados +dataRows.forEach(row => { + const cells = row.querySelectorAll('td'); // Obtener todas las celdas de la fila + expect(cells.length).toBe(3); // Verificar que hay exactamente 3 celdas por fila + // Puedes hacer más verificaciones aquí si es necesario, por ejemplo: + expect(cells[0]).toHaveTextContent('10'); // Verificar que la primera celda contiene el número de partidas jugadas + expect(cells[1]).toHaveTextContent('7'); // Verificar que la segunda celda contiene el número de preguntas acertadas + expect(cells[2]).toHaveTextContent('3'); // Verificar que la tercera celda contiene el número de preguntas falladas +}); + }); it('displays an error message when fetching statistics fails', async () => {