From e0176d61d7774259c33c028906d25ec50166a924 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Villanueva=20Rodr=C3=ADguez?= Date: Thu, 1 Feb 2024 10:54:26 +0100 Subject: [PATCH 01/82] Primer commit prueba --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5beb4316..9d9da1fe 100644 --- a/README.md +++ b/README.md @@ -112,3 +112,4 @@ This action uses three secrets that must be configured in the repository: - DEPLOY_KEY: key to authenticate the user in the remote machine. Note that this action logs in the remote machine and downloads the docker-compose file from the repository and launches it. Obviously, previous actions have been executed which have uploaded the docker images to the GitHub Packages repository. +Lucia Villanueva From ccd7d5210ce3e39ce5eb11d4a72e4e61fb3fbf9b Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Sat, 3 Feb 2024 12:57:51 +0100 Subject: [PATCH 02/82] Primer commit de prueba de Pedro --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 5beb4316..6f33d601 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,7 @@ Both the user and auth service share a Mongo database that is accessed with mong The fastest way for launching this sample project is using docker. Just clone the project: ```sh -git clone https://github.com/Arquisoft/wiq_es05c.git -``` +git clone https://github.com/Arquisoft/wiq_es05c.git and launch it with docker compose: From 20f33bfe5ca04017e6d57c7bd85a905d7bb1887e Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sat, 3 Feb 2024 14:23:03 +0100 Subject: [PATCH 03/82] Primera prueba commit Lucia --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5beb4316..2cbc6215 100644 --- a/README.md +++ b/README.md @@ -112,3 +112,4 @@ This action uses three secrets that must be configured in the repository: - DEPLOY_KEY: key to authenticate the user in the remote machine. Note that this action logs in the remote machine and downloads the docker-compose file from the repository and launches it. Obviously, previous actions have been executed which have uploaded the docker images to the GitHub Packages repository. +LUCIA \ No newline at end of file From cff8e199f43323ab3a34209f63c1ed683ed9bdda Mon Sep 17 00:00:00 2001 From: sonia Date: Sat, 3 Feb 2024 21:59:11 +0100 Subject: [PATCH 04/82] Primer commit sonia --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5beb4316..b790fce2 100644 --- a/README.md +++ b/README.md @@ -112,3 +112,4 @@ This action uses three secrets that must be configured in the repository: - DEPLOY_KEY: key to authenticate the user in the remote machine. Note that this action logs in the remote machine and downloads the docker-compose file from the repository and launches it. Obviously, previous actions have been executed which have uploaded the docker images to the GitHub Packages repository. + \ No newline at end of file From 32cab1ef42cc8e59cc08369fac28c4148874855a Mon Sep 17 00:00:00 2001 From: UO291047 Date: Mon, 5 Feb 2024 16:52:00 +0100 Subject: [PATCH 05/82] Primer commit --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 5beb4316..4e2e8fcb 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,9 @@ Both the user and auth service share a Mongo database that is accessed with mong ## Quick start guide +## Team Members +### David Gonzalez + ### Using docker The fastest way for launching this sample project is using docker. Just clone the project: From db155c3500af4af5ee229bdf0030019a333cef6e Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 11 Feb 2024 18:21:43 +0100 Subject: [PATCH 06/82] =?UTF-8?q?A=C3=B1ado=20contenido=20a=20la=20documen?= =?UTF-8?q?tacion=20respecto=20a=20los=20puntos=203=20y=208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/03_system_scope_and_context.adoc | 25 +++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index c528e907..700f63ea 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -47,11 +47,13 @@ Alternatively (or additionally) you can use a table. The title of the table is the name of your system, the three columns contain the name of the communication partner, the inputs, and the outputs. **** +In our business setting, we have developed a web application called WIQ, where users engage in a question-based game. +This application draws inspiration from the renowned Spanish television program "Saber y Ganar," providing users with an interactive and entertaining experience. -**** - -**** - +* Users authenticate themselves within the system using their personal information. +* The application offers a question-based game similar to "Saber y Ganar" . +* The primary objective of the project is to provide an interactive and enjoyable platform for users to engage in question and answer contests, promoting both entertainment and learning. +* Users have access to various metrics regarding their participation, including the number of games played, correct and incorrect answers, and time spent on each question. === Technical Context [role="arc42help"] @@ -68,8 +70,13 @@ together with a mapping table showing the relationships between channels and inp **** -**** - -**** - -**** +[options="header",cols="1,2"] +|=== +|Technologies |Description +| JavaScript | A fundamental programming language for web development. It's used to create logic and interactivity in web and mobile applications. +| React | A JavaScript framework used to build interactive and dynamic user interfaces. It's especially popular for developing single-page applications (SPAs). +| MongoDB | A NoSQL database that uses JSON documents to store data. It's widely used in web and mobile applications, especially those requiring flexible and fast scalability. +| NodeJS | JavaScript runtime environment +| Docker | A container platform that simplifies the deployment and management of applications. It allows packaging an application and all its dependencies into lightweight, +portable containers, making it easy to deploy across different development and production environments. +|=== From a5f13361c138ee1e33019dd4ecc2d29abb79dca4 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 11 Feb 2024 19:42:35 +0100 Subject: [PATCH 07/82] =?UTF-8?q?A=C3=B1ado=20modificaciones=20de=20concep?= =?UTF-8?q?tos=20del=20apartado=208=20de=20la=20documentacion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/03_system_scope_and_context.adoc | 2 ++ docs/src/08_concepts.adoc | 18 +++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 700f63ea..37002ad6 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -54,6 +54,8 @@ This application draws inspiration from the renowned Spanish television program * The application offers a question-based game similar to "Saber y Ganar" . * The primary objective of the project is to provide an interactive and enjoyable platform for users to engage in question and answer contests, promoting both entertainment and learning. * Users have access to various metrics regarding their participation, including the number of games played, correct and incorrect answers, and time spent on each question. + + === Technical Context [role="arc42help"] diff --git a/docs/src/08_concepts.adoc b/docs/src/08_concepts.adoc index 591ccf1f..1a45d6bd 100644 --- a/docs/src/08_concepts.adoc +++ b/docs/src/08_concepts.adoc @@ -56,18 +56,22 @@ See https://docs.arc42.org/section-8/[Concepts] in the arc42 documentation. **** -=== __ +=== Domain model -__ +=== User interface -=== __ +The user interface is the part of our application with which users interact directly. +It's designed to be intuitive and easy to use, providing a smooth and pleasant experience for users as they navigate through the various functions and features of the application. -__ +=== Security -... -=== __ -__ +=== Testability + + + +=== Development concepts + From 7e84b82013f7d1f417878dd618f03efc6d077ecc Mon Sep 17 00:00:00 2001 From: sonia Date: Mon, 12 Feb 2024 22:45:35 +0100 Subject: [PATCH 08/82] Modificacion documentacion punto 5 --- docs/src/05_building_block_view.adoc | 56 +++++++++++++++++++++------- 1 file changed, 42 insertions(+), 14 deletions(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index df5c29c8..caa83011 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -3,7 +3,7 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-building-block-view]] -== Building Block View +== Building Block View (In progress) [role="arc42help"] **** @@ -40,7 +40,7 @@ See https://docs.arc42.org/section-5/[Building Block View] in the arc42 document **** -=== Whitebox Overall System +=== Whitebox WIQ [role="arc42help"] **** @@ -67,11 +67,17 @@ _****_ Motivation:: -__ +The motivation for undertaking this decomposition is to gain a clear vision of the system developed for the WIQ application. +By breaking down the system into its constituent building blocks, we aim to establish a comprehensive understanding of its structure and functionality. Contained Building Blocks:: __ +User Interface (Frontend) +Business Logic (Backend) +Database +API User +API Questions Important Interfaces:: __ @@ -86,8 +92,8 @@ responsibility according to the following schema: [cols="1,2" options="header"] |=== | **Name** | **Responsibility** -| __ | __ -| __ | __ +| __ | __ +| __ | __ |=== @@ -97,7 +103,7 @@ Its headline is the name of the black box. **** -==== +==== User Interface [role="arc42help"] **** @@ -115,6 +121,8 @@ according the the following black box template: __ +Provides the interface to register, play and check participation history + __ _<(Optional) Quality/Performance Characteristics>_ @@ -128,13 +136,33 @@ _<(optional) Open Issues/Problems/Risks>_ -==== +==== Business Logic -__ +__ -==== +Automatically generate questions and corresponding answers from Wikidata data. +Manages the time frame allocated for answering questions. + +... + +==== Database + +__ + +Stores information about users, games, questions and correct/failed answers. + +==== API User + +__ + +The system will allow access to user information through an API. + +==== API Questions + +__ + +The system will allow access to the information of the questions generated through an API. -__ ==== @@ -156,7 +184,7 @@ Please prefer relevance over completeness. Specify important, surprising, risky, Leave out normal, simple, boring or standardized parts of your system **** -==== White Box __ +==== White Box __ Components... [role="arc42help"] **** @@ -165,14 +193,14 @@ Leave out normal, simple, boring or standardized parts of your system __ -==== White Box __ +==== White Box __ Services... __ ... -==== White Box __ +==== White Box __ Model... __ @@ -209,4 +237,4 @@ __ ==== White Box <_building block y.1_> -__ +__ \ No newline at end of file From bcae988112a70eab9816bd5231210dcf0a5eeb8a Mon Sep 17 00:00:00 2001 From: sonia Date: Mon, 12 Feb 2024 22:47:13 +0100 Subject: [PATCH 09/82] Modificacion documentacion punto 9 --- docs/src/09_architecture_decisions.adoc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index 51e9aad9..e1d3a4be 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -33,3 +33,17 @@ See https://docs.arc42.org/section-9/[Architecture Decisions] in the arc42 docum There you will find links and examples about ADR. **** + +[options="header",cols="1,2,2"] +|=== +|Date|Title|Decision|Explanation +|08/02/2024|Language Selection|English|English is chosen for its widespread international use +|08/02/2024|Programming Languages|React and Javascript|JavaScript is selected due to team proficiency, especially for API usage +|08/02/2024|Database Platform|MongoDB|MongoDB is opted for as the default database solution +|08/02/2024|Version Control System|Git-GitHub|Git-GitHub is preferred for its familiarity and utility +|08/02/2024|Data Collection Method|WikiData|The choice of WikiData is dictated by project constraints +|=== + +Consequences:: +As a team, we recognize the need to familiarize ourselves with React, MongoDB, and Wikidata, as most of us are not yet proficient in their usage. +We are committed to investing the necessary time and effort to acquire the requisite skills and expertise in utilizing these technologies effectively for our project's success. \ No newline at end of file From 13874712948c2b5446e6fb08a42771cd30b28ce0 Mon Sep 17 00:00:00 2001 From: sonia Date: Mon, 12 Feb 2024 22:58:53 +0100 Subject: [PATCH 10/82] Arreglos documentacion puntos 5 y 9 --- docs/src/05_building_block_view.adoc | 43 ++++++++++++++++--------- docs/src/09_architecture_decisions.adoc | 2 +- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index caa83011..e41e2369 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -73,12 +73,18 @@ By breaking down the system into its constituent building blocks, we aim to esta Contained Building Blocks:: __ + User Interface (Frontend) + Business Logic (Backend) + Database + API User + API Questions + Important Interfaces:: __ @@ -103,7 +109,7 @@ Its headline is the name of the black box. **** -==== User Interface +==== User Interface [role="arc42help"] **** @@ -133,33 +139,30 @@ _<(Optional) Fulfilled Requirements>_ _<(optional) Open Issues/Problems/Risks>_ +==== Business Logic - - -==== Business Logic - -__ +_Responsibility:: Automatically generate questions and corresponding answers from Wikidata data. Manages the time frame allocated for answering questions. ... -==== Database +==== Database -__ +_Responsibility:: Stores information about users, games, questions and correct/failed answers. -==== API User +==== API User -__ +_Responsibility:: The system will allow access to user information through an API. -==== API Questions +==== API Questions -__ +_Responsibility:: The system will allow access to the information of the questions generated through an API. @@ -184,7 +187,7 @@ Please prefer relevance over completeness. Specify important, surprising, risky, Leave out normal, simple, boring or standardized parts of your system **** -==== White Box __ Components... +==== White Box User Interface [role="arc42help"] **** @@ -193,15 +196,25 @@ Leave out normal, simple, boring or standardized parts of your system __ -==== White Box __ Services... +==== White Box Business Logic __ ... -==== White Box __ Model... +==== White Box Database + + +__ + +==== White Box API User + + +__ + +==== White Box API Questions __ diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index e1d3a4be..93c50cf4 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -34,7 +34,7 @@ There you will find links and examples about ADR. **** -[options="header",cols="1,2,2"] +[options="header",cols="1,2,2,2"] |=== |Date|Title|Decision|Explanation |08/02/2024|Language Selection|English|English is chosen for its widespread international use From 60a840117c9cf936eccf9e2399b5c412a6a7d77b Mon Sep 17 00:00:00 2001 From: sonia Date: Mon, 12 Feb 2024 23:03:17 +0100 Subject: [PATCH 11/82] Arreglos en el formato de la documentacion punto 5 --- docs/src/05_building_block_view.adoc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index e41e2369..ecf2d2e1 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -125,7 +125,7 @@ according the the following black box template: **** -__ +Responsibility:: Provides the interface to register, play and check participation history @@ -141,7 +141,7 @@ _<(optional) Open Issues/Problems/Risks>_ ==== Business Logic -_Responsibility:: +Responsibility:: Automatically generate questions and corresponding answers from Wikidata data. Manages the time frame allocated for answering questions. @@ -150,19 +150,19 @@ Manages the time frame allocated for answering questions. ==== Database -_Responsibility:: +Responsibility:: Stores information about users, games, questions and correct/failed answers. ==== API User -_Responsibility:: +Responsibility:: The system will allow access to user information through an API. ==== API Questions -_Responsibility:: +Responsibility:: The system will allow access to the information of the questions generated through an API. @@ -201,7 +201,6 @@ __ __ -... ==== White Box Database From 0d374e95325c94b614fcc674e5c4c10391f9afe7 Mon Sep 17 00:00:00 2001 From: UO291047 Date: Tue, 13 Feb 2024 16:56:29 +0100 Subject: [PATCH 12/82] =?UTF-8?q?Agregada=20documentaci=C3=B3n=20del=20pun?= =?UTF-8?q?to=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/01_introduction_and_goals.adoc | 27 ++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index 5a09b771..0d484133 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -15,6 +15,10 @@ These include * relevant stakeholders and their expectations **** +WIQ is a Web application requested by RTVE, in order to create an experimental online version of a question and +answer contest similar to “Saber y Ganar”. +The development of said application has been entrusted to our company, HappySw. + === Requirements Overview [role="arc42help"] @@ -41,6 +45,12 @@ See https://docs.arc42.org/section-1/[Introduction and Goals] in the arc42 docum **** +The main requirements to be met by our application will be: + +* A registration/access system in which users will be able to consult their participation history. +* A random question generator to avoid repeating questions. +* A base game mode, in which there will be a time limit to answer each question. + === Quality Goals [role="arc42help"] @@ -63,6 +73,15 @@ If you as an architect do not know how the quality of your work will be judged.. A table with quality goals and concrete scenarios, ordered by priorities **** +[options="header",cols="1,2"] +|=== +|Goals | Description +| Usability | The user must be able to use the system in a simple and intuitive way, so that a good experience is provided. +| Accesibility | The system should provide the necessary help to the user to be able to navigate through the program without any doubt. +| Privacy | The system must ensure the privacy of users. In addition, they will not see the history of other users. +| Performance | The application must have good performance, without excessive loading times. +|=== + === Stakeholders [role="arc42help"] @@ -87,7 +106,9 @@ Table with role names, person names, and their expectations with respect to the [options="header",cols="1,2,2"] |=== -|Role/Name|Contact|Expectations -| __ | __ | __ -| __ | __ | __ +|Role/Name | Expectations +| HappySw | Interested in making the application work as well as possible to please users and their contractors. +| Developer Team | Interested in improving their skills by completing this application. +| RTVE | Interested in the social and financial success of the application. +| Users | Interested in the application being entertaining and simple. |=== From b2f4235074783ab3a3fd4865a3ac28a99fafdcc1 Mon Sep 17 00:00:00 2001 From: UO291047 Date: Tue, 13 Feb 2024 16:58:20 +0100 Subject: [PATCH 13/82] =?UTF-8?q?Correcci=C3=B3n=20presentaci=C3=B3n=20tab?= =?UTF-8?q?la=20stakeholders?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/01_introduction_and_goals.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index 0d484133..d1a11b7d 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -104,7 +104,7 @@ These stakeholders determine the extent and the level of detail of your work and Table with role names, person names, and their expectations with respect to the architecture and its documentation. **** -[options="header",cols="1,2,2"] +[options="header",cols="1,2,2,2,2"] |=== |Role/Name | Expectations | HappySw | Interested in making the application work as well as possible to please users and their contractors. From ec31400ef798cbaed2c7a3b14ae124ed1d127105 Mon Sep 17 00:00:00 2001 From: UO291047 Date: Tue, 13 Feb 2024 17:00:40 +0100 Subject: [PATCH 14/82] =?UTF-8?q?Correcci=C3=B3n=20de=20la=20correcci?= =?UTF-8?q?=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (Aprendiendo el funcionamiento de las tablas en ASCIIDOCS) --- docs/src/01_introduction_and_goals.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index d1a11b7d..95e8251c 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -104,7 +104,7 @@ These stakeholders determine the extent and the level of detail of your work and Table with role names, person names, and their expectations with respect to the architecture and its documentation. **** -[options="header",cols="1,2,2,2,2"] +[options="header",cols="1,2"] |=== |Role/Name | Expectations | HappySw | Interested in making the application work as well as possible to please users and their contractors. From d138a8673b02a03b21853a99b7964c095085358d Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Tue, 13 Feb 2024 17:22:25 +0100 Subject: [PATCH 15/82] =?UTF-8?q?Comienzo=20el=20punto=206=20de=20la=20doc?= =?UTF-8?q?umentaci=C3=B3n=20con=20el=20caso=20registrarse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/loginSecuencia.png | Bin 0 -> 20084 bytes docs/images/nextQuestion.png | Bin 0 -> 25278 bytes docs/images/registerSecuencia.png | Bin 0 -> 23006 bytes docs/src/06_runtime_view.adoc | 66 ++++-------------------------- 4 files changed, 9 insertions(+), 57 deletions(-) create mode 100644 docs/images/loginSecuencia.png create mode 100644 docs/images/nextQuestion.png create mode 100644 docs/images/registerSecuencia.png diff --git a/docs/images/loginSecuencia.png b/docs/images/loginSecuencia.png new file mode 100644 index 0000000000000000000000000000000000000000..fcc8dd87f40ccc4bab5f1c9851b76cd1ff4283c2 GIT binary patch literal 20084 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 literal 0 HcmV?d00001 diff --git a/docs/images/nextQuestion.png b/docs/images/nextQuestion.png new file mode 100644 index 0000000000000000000000000000000000000000..8b4ea2c5026f34c765216fa958f19f2040b35fcc GIT binary patch literal 25278 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 HZaw}FMYty5 literal 0 HcmV?d00001 diff --git a/docs/images/registerSecuencia.png b/docs/images/registerSecuencia.png new file mode 100644 index 0000000000000000000000000000000000000000..385eb15ea0d0057794ee23c8f3e18b635a0a12bf GIT binary patch literal 23006 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 z - - -* __ -* __ - -It is possible to use a sequence diagram: - -[plantuml,"Sequence diagram",png] ----- -actor Alice -actor Bob -database Pod as "Bob's Pod" -Alice -> Bob: Authentication Request -Bob --> Alice: Authentication Response -Alice --> Pod: Store route -Alice -> Bob: Another authentication Request -Alice <-- Bob: another authentication Response ----- - -=== - -=== ... - -=== +1. The user wants to register in the sistem +2. The app redirects the register request to the RegisterService +3. The register service send to the database the data to confirm if it's valid +4. A response is sent by the database telling if it's valid or not +5. If teh response was afirmative then the RegisterService registre the user +6. The RegisterService inform with the result the app +7. Finally the app carries that result to the user \ No newline at end of file From 80969bba54e301babd512289c2e1f3e480a87bde Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Tue, 13 Feb 2024 17:39:32 +0100 Subject: [PATCH 16/82] =?UTF-8?q?Caso=20login=20a=C3=B1adido=20en=20secci?= =?UTF-8?q?=C3=B3n=206=20de=20la=20documentaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Y correcciones en los diagramas de secuencia añadidos y en la lista de pasos de register. --- docs/images/loginSecuencia.png | Bin 20084 -> 20962 bytes docs/images/registerSecuencia.png | Bin 23006 -> 25031 bytes docs/src/06_runtime_view.adoc | 23 ++++++++++++++++++----- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/docs/images/loginSecuencia.png b/docs/images/loginSecuencia.png index fcc8dd87f40ccc4bab5f1c9851b76cd1ff4283c2..3847816564141ac0e934fca5a5f0d2c2c282551d 100644 GIT binary patch literal 20962 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 diff --git a/docs/images/registerSecuencia.png b/docs/images/registerSecuencia.png index 385eb15ea0d0057794ee23c8f3e18b635a0a12bf..b98e49b6dabcc0a7e18c5d07073843b7f7ef1129 100644 GIT binary patch literal 25031 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�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 J6-eHz>6z>5}e_MVEB9G-ska{Jr1% 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 z Date: Tue, 13 Feb 2024 17:53:08 +0100 Subject: [PATCH 17/82] =?UTF-8?q?Caso=20generar=20pregunta=20a=C3=B1adido?= =?UTF-8?q?=20a=20secci=C3=B3n=206=20de=20la=20documentaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Con esto finaliza la versión 1 de esta sección pudiendo haber nuevos casos y cambios en los actuales. --- docs/src/06_runtime_view.adoc | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index 509e786b..e76114bc 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -20,11 +20,25 @@ image::registerSecuencia.png["Register secuence diagram image"] === Login -image::logingSecuencia.png["Login secuence diagram image"] +image::loginSecuencia.png["Login secuence diagram image"] 1. The user wants to login his account 2. The app redirects the login request to the LoginService 3. The LoginService request information about that login data recieved 4. A response is sent by the database with the requested data 5. After checking if it's a valid login the LoginService sends a response to the app -7. Finally the app inform the user about his login process \ No newline at end of file +6. Finally the app inform the user about his login process + + +=== Request a question + +image::nextQuestion.png["NextQuestion secuence diagram image"] + +1. The user asks for a new question +2. The app redirects that request to the QuestionGenerator +3. The QuestionGenerator generates a heather for the question +4. The QuestionGenerator requests the correct answer to WikiData +5. WikiData sends that answer data +6. The QuestionGenerator builds the question with the answer and wrong options +7. The built question is sent to the app +8. The app shows the question to the User \ No newline at end of file From 181b4b91258f711d39c74eb465805f8edd8c6eae Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Tue, 13 Feb 2024 18:31:27 +0100 Subject: [PATCH 18/82] =?UTF-8?q?Comenzada=20y=20acabada=20la=20secci?= =?UTF-8?q?=C3=B3n=2011=20parte=20de=20riesgos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La deuda técnica se llevará a cabo al final cuando se sepa --- docs/src/11_technical_risks.adoc | 33 +++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index dc5575fc..75ade67f 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -4,22 +4,29 @@ ifndef::imagesdir[:imagesdir: ../images] == Risks and Technical Debts -[role="arc42help"] -**** -.Contents -A list of identified technical risks or technical debts, ordered by priority +=== Risks -.Motivation -“Risk management is project management for grown-ups” (Tim Lister, Atlantic Systems Guild.) +[options="header" frame=all] +|=== +|Risk |More detail |How to fight it -This should be your motto for systematic detection and evaluation of risks and technical debts in the architecture, which will be needed by management stakeholders (e.g. project managers, product owners) as part of the overall risk analysis and measurement planning. +|A member quit the project +|It's possible that due to reasons like having a lot of pressure or being overwhelmed by the project members of the group quit the project or the subject +|Try to communicate with each other and having a sensible rhythm advancing with the project. Also helping each other when we can -.Form -List of risks and/or technical debts, probably including suggested measures to minimize, mitigate or avoid risks or reduce technical debts. +|First time delivering a full stack app +|We could have a lack of experience with a project as big as this that have a bit of every field. +|Searching and learning the new things we could need during the project and talking with the other members if we know more of a determined field trying to help them +|Lack of time +|We can have some though weeks because we have other subjects to study and other projects and exams that can consumpt our time +|Attemp to be responsible with our time and tasks and try to organize ourselves as good as we can -.Further Information +|New technologies +|Some technologies that we will use in the projects are new for us such as React or managing a database due to our lack of experience +|Learning the new things that we don't know and not being unwilling to confront new things such as technologies or languages that are new for us or near to new -See https://docs.arc42.org/section-11/[Risks and Technical Debt] in the arc42 documentation. - -**** +|Not arriving deadlines +|It can happen that we don't archieve what it's requested into the project in time and end up sending an uncompleted final product or during the middle deadlines +|To avoid this we have to keep a good rhythm advancing and planing good and adequated tasks in the weekly meetings done in the labs so we don't run out of time not done +|=== From 5c8a3cbda469ef9936ecbc0e8bec23d372d2b2e4 Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Tue, 13 Feb 2024 18:35:19 +0100 Subject: [PATCH 19/82] =?UTF-8?q?Preparada=20tabla=20para=20la=20deuda=20t?= =?UTF-8?q?=C3=A9cnica?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lista estructura de tabla para cuando se incluya la deuda técnica al final del proyecto --- docs/src/11_technical_risks.adoc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index 75ade67f..0b697166 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -30,3 +30,19 @@ ifndef::imagesdir[:imagesdir: ../images] |It can happen that we don't archieve what it's requested into the project in time and end up sending an uncompleted final product or during the middle deadlines |To avoid this we have to keep a good rhythm advancing and planing good and adequated tasks in the weekly meetings done in the labs so we don't run out of time not done |=== + +=== Technical Debt + +[options="header" frame=all] +|=== +|Technical Debt |Description + +|Space 1.1 +|Space 1.2 + +|Space 2.1 +|Space 2.2 + +|Space 3.1 +|Space 3.2 +|=== From 9e5fda7ee73cfd91e7ada4b275d4da7a572ad384 Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Tue, 13 Feb 2024 19:26:42 +0100 Subject: [PATCH 20/82] =?UTF-8?q?Comienzo=20secci=C3=B3n=207=20documentaci?= =?UTF-8?q?=C3=B3n=20con=20building=20block=20general?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Primera versión del diagrama de despliegue general --- docs/images/diagramaDespliegue.PNG | Bin 0 -> 78802 bytes docs/src/07_deployment_view.adoc | 86 +---------------------------- 2 files changed, 1 insertion(+), 85 deletions(-) create mode 100644 docs/images/diagramaDespliegue.PNG diff --git a/docs/images/diagramaDespliegue.PNG b/docs/images/diagramaDespliegue.PNG new file mode 100644 index 0000000000000000000000000000000000000000..9bb7a0bf42dc8f325a00d1970a0e24c91e0510b7 GIT binary patch literal 78802 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 literal 0 HcmV?d00001 diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index 22b45c27..0dbebd95 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -5,90 +5,6 @@ ifndef::imagesdir[:imagesdir: ../images] == Deployment View -[role="arc42help"] -**** -.Content -The deployment view describes: - 1. technical infrastructure used to execute your system, with infrastructure elements like geographical locations, environments, computers, processors, channels and net topologies as well as other infrastructure elements and +image::diagramaDespliegue.png["Building Block general diagram"] -2. mapping of (software) building blocks to that infrastructure elements. - -Often systems are executed in different environments, e.g. development environment, test environment, production environment. In such cases you should document all relevant environments. - -Especially document a deployment view if your software is executed as distributed system with more than one computer, processor, server or container or when you design and construct your own hardware processors and chips. - -From a software perspective it is sufficient to capture only those elements of an infrastructure that are needed to show a deployment of your building blocks. Hardware architects can go beyond that and describe an infrastructure to any level of detail they need to capture. - -.Motivation -Software does not run without hardware. -This underlying infrastructure can and will influence a system and/or some -cross-cutting concepts. Therefore, there is a need to know the infrastructure. - -.Form - -Maybe a highest level deployment diagram is already contained in section 3.2. as -technical context with your own infrastructure as ONE black box. In this section one can -zoom into this black box using additional deployment diagrams: - -* UML offers deployment diagrams to express that view. Use it, probably with nested diagrams, -when your infrastructure is more complex. -* When your (hardware) stakeholders prefer other kinds of diagrams rather than a deployment diagram, let them use any kind that is able to show nodes and channels of the infrastructure. - - -.Further Information - -See https://docs.arc42.org/section-7/[Deployment View] in the arc42 documentation. - -**** - -=== Infrastructure Level 1 - -[role="arc42help"] -**** -Describe (usually in a combination of diagrams, tables, and text): - -* distribution of a system to multiple locations, environments, computers, processors, .., as well as physical connections between them -* important justifications or motivations for this deployment structure -* quality and/or performance features of this infrastructure -* mapping of software artifacts to elements of this infrastructure - -For multiple environments or alternative deployments please copy and adapt this section of arc42 for all relevant environments. -**** - -_****_ - -Motivation:: - -__ - -Quality and/or Performance Features:: - -__ - -Mapping of Building Blocks to Infrastructure:: -__ - - -=== Infrastructure Level 2 - -[role="arc42help"] -**** -Here you can include the internal structure of (some) infrastructure elements from level 1. - -Please copy the structure from level 1 for each selected element. -**** - -==== __ - -__ - -==== __ - -__ - -... - -==== __ - -__ From 31954e7391cb155e1fe645da8afc469b6485ed6b Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 14 Feb 2024 17:35:37 +0100 Subject: [PATCH 21/82] =?UTF-8?q?A=C3=B1ado=20nueva=20informacion=20en=20e?= =?UTF-8?q?l=20apartado=208=20de=20la=20documentacion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/08_concepts.adoc | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/docs/src/08_concepts.adoc b/docs/src/08_concepts.adoc index 1a45d6bd..9a9bfe10 100644 --- a/docs/src/08_concepts.adoc +++ b/docs/src/08_concepts.adoc @@ -56,22 +56,50 @@ See https://docs.arc42.org/section-8/[Concepts] in the arc42 documentation. **** -=== Domain model +=== Domain concepts + User Model +------------- +- ID (Primary Key) +- First Name +- Last Name +- Email +- Password +- Role - -=== User interface +=== User Experience The user interface is the part of our application with which users interact directly. It's designed to be intuitive and easy to use, providing a smooth and pleasant experience for users as they navigate through the various functions and features of the application. -=== Security +The user will either register in the application or log in if they have already registered before. +If they have played before, they will be able to view different metrics regarding those games. +Additionally, they can start a new game at any time and, upon completion, view the statistics of their results. +=== Security & Safety + - Privacy: The data introduced will be private and not visible to other users. + - The password will be stored encrypted. + -=== Testability +=== Architecture and design patterns +In development... +=== Under the hood +In development... === Development concepts + * Build, Test, Deploy + * Code generation + * Migration + * Configurability + + + + + +=== Operation concepts + + From 1413c5d429e184fd5a51d52cdde8b6b334d97cf5 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 14 Feb 2024 17:37:12 +0100 Subject: [PATCH 22/82] prueba de formateo del contenido --- docs/src/08_concepts.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/src/08_concepts.adoc b/docs/src/08_concepts.adoc index 9a9bfe10..fff7b092 100644 --- a/docs/src/08_concepts.adoc +++ b/docs/src/08_concepts.adoc @@ -57,8 +57,7 @@ See https://docs.arc42.org/section-8/[Concepts] in the arc42 documentation. === Domain concepts - User Model -------------- +User Model - ID (Primary Key) - First Name - Last Name From c63969b31849250d99bec1c440d2243be0fba565 Mon Sep 17 00:00:00 2001 From: UO291047 Date: Wed, 14 Feb 2024 17:55:56 +0100 Subject: [PATCH 23/82] =?UTF-8?q?Documentaci=C3=B3n=20Apartado=2010:=20Qua?= =?UTF-8?q?lity=20Goals?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/QualityTree.PNG | Bin 0 -> 71089 bytes docs/src/10_quality_requirements.adoc | 11 +++++++++++ 2 files changed, 11 insertions(+) create mode 100644 docs/images/QualityTree.PNG diff --git a/docs/images/QualityTree.PNG b/docs/images/QualityTree.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8725a813e4a98cfec915bf5fdf1cf0156a8e8010 GIT binary patch literal 71089 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 Date: Wed, 14 Feb 2024 19:55:23 +0100 Subject: [PATCH 24/82] =?UTF-8?q?Descripci=C3=B3n=20de=20la=20secci=C3=B3n?= =?UTF-8?q?=207=20de=20la=20documentaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Añado descripción de la imagen comentando como se comportará la aplicación y comunicará entre bloques --- docs/src/07_deployment_view.adoc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index 0dbebd95..ef91cea4 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -8,3 +8,9 @@ ifndef::imagesdir[:imagesdir: ../images] image::diagramaDespliegue.png["Building Block general diagram"] +Basically when a user wants to use the application, using his web browser +he can connect to the application server where the web app will use some +services also alocated there such as the QuestionGenerator or the LoginManager. +Also these services make use of the WikiData API and database and also of +a database unique for the application to save things as player statistics +or info of them. \ No newline at end of file From efab9251440fb96d105b06fdd5334647e49b4bae Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 14 Feb 2024 20:43:10 +0100 Subject: [PATCH 25/82] =?UTF-8?q?A=C3=B1adidos=20cambios=20en=20los=20punt?= =?UTF-8?q?os=205=20y=209=20de=20la=20documentacion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/05-BussinesLogic-Level2.png | Bin 0 -> 104606 bytes docs/images/05-Database-Level2.png | Bin 0 -> 99739 bytes docs/images/05-Level1.png | Bin 0 -> 44619 bytes docs/images/05-ScopeAndContext.png | Bin 0 -> 25814 bytes docs/images/05-UserInterface-Level2.png | Bin 0 -> 103665 bytes docs/src/05_building_block_view.adoc | 10 ++++++++++ docs/src/09_architecture_decisions.adoc | 20 ++++++++------------ 7 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 docs/images/05-BussinesLogic-Level2.png create mode 100644 docs/images/05-Database-Level2.png create mode 100644 docs/images/05-Level1.png create mode 100644 docs/images/05-ScopeAndContext.png create mode 100644 docs/images/05-UserInterface-Level2.png diff --git a/docs/images/05-BussinesLogic-Level2.png b/docs/images/05-BussinesLogic-Level2.png new file mode 100644 index 0000000000000000000000000000000000000000..e6defb4acb5f61cf107b7aad05215c335422fcd6 GIT binary patch literal 104606 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

$Qqmu;)=Oyi^37rn!ojnrg>;W#9>G{l z(K;T+OK?a0-t5{wiaUf+WymrqedZhAJKC1XmFGKlC?pu`vHcf)x#R{I;k09w>T}E% zwhx0%1&{!qhped=teVdP$#CIutuvo;8Ng<~9q3QElFPyA7-SedfFI zd$i8F>dG5V!svvvx7Ez*!%SJ~y|y>E*h&HETwax46hQ{jm%JJc(e4XU`E3bTtS0DU z@efL$+>~|2XvB%6?&H>fyfRUq>&?SR;WP$yBZ~;B1rhqCY`&S~Ri9)aU4@Q3dC z5-MBuYZ=58ki_AObCTRj5(XHyZSesM9}x{vJZ<|7at#5a8TvfACi@cxXtew?S{xvD z7VL?uRA=!7r%T;ouM48qWs5z2T<|ON&3ZuaYKftay|uv*-}Mn2pZQIcrZvPNI;pqr zWcXUxZq}AR5}+W44}XXVyMNt*;R-VlY1>*un4}-@RxN$rz|3#2)EuyjzvJ2M(T>Jn zvV#l63pfBr)A8J;Te3-XW`HfQdYa-dO+!}pmN|2hc|*4-OrES{>k$iCHq-{DdzVk&UuZ zg;g?_0I+7pF)v9w@_jD4L&kH>UJS7k?=SSGaT{95-urh<4pZRuP5@ zfJoY~!`lZnZ|-yBGR;><(O>iGL`1L{Tfj>l@(j!$lsIHk&d4Oq$GbNlp-?LGmxLOh z;RFMz+_wDDeuZ2_*uAUg0g&p0OicjENC07Y?tKaa#nYC(2NUh_wlXS4CTJzVZ%Ee} z#^PlyPhOR!!=$Q3V;8H}S0PT=^+snCMe8N&khD#4<+wAV|5aF6xZ~3pz;O#ZVRS{i zKDf6?;fAFbOC#6kk5XjioJL=d-=s#aZ(FABT08f(U@Tl|X9fo|IQ!6$aqn_eUH27L zg(DOuxCg|XD4*}U(BIGPd#x4dw)`$4FfwuOG1t{}RmyxC43;i%I@J7ef@jC6RpPJ= z%0Z>S@klbFFqE0&X;@7^`})#c{jrG0{w`A+4g|~_H7)O7_q3)&NOu%#FqK!v;-9`d zc}w;H#$UUBiz6QuJm&QAOfS!y;SO>$wK1RM?c*>#3!|q{@Kx|`-%g7+QxrmXrQI^} zdDls@z+gUkrqBP03k`Tj3z$F{ytBXYX$nhADAW z06tv$Wv_~b676hzvm8fau+IU$dlLIzXNT*$H`p7+<%{gb=rf3^6dygIxch;A4YAOQ z`4=t=vsVp|H5J`5Q{Hz8#^Q&v!W5GC!FIN0|Dt*a==%j)7|*ULzd}wqjZ=EaJU3jy zt2gp+x|={Kutdnx(hc!gtTo3qvu;&auc?UtX7(O6}@6#hmG&L6uA9IWLcC(_nnIJ*b|=&MLw7?BVC*Qj&bPufh3I z#j#uyoP=PEDD#&haKYl)LXYnK{6Xajx!I0s!9J&oJsDqQe3K^8j*y50pcw6lauw_?FHfLLp$ioc=|ZH$Nim6i|HGCk;9H-9j7eJ-ef1h@-pz$ z`z;L`LFjx?988czNuZAN3((HGT`t&Tn%8yWjpWQ5c=oY-KASK|00=KhbK`br+S%ex zLPwb=Z7++ zp*Y+~T2kUpvA$r)w!s1;PK?K>;G}a;g?PXqx4CM&c~C&v>Ov=uGuq^?+3Ki4i{p0G z&3~|RJ^jG7xdNP~TDz&2sZo_b;nt*iG163GZK)rZ8f_K}e6f-{b<@|DU_&V4tqUJy zXlI`##5C~eBY&sKZ(XPXW?jMp@VBA(h`xcrux|jN!CX@<>Wr#aw}(N8-(=;mQCExc z35zwzE@C>x1a=M&m#7ak3{Z$mgJ?5yAur1*>(Tq?6LTc3ze7N62~>(ixeorhHOHAJ$U-!pG=fyGl|O( z-49S`G7`LL=aYl2Av+~bQrTfJ zGgGw7MV`tGx>8APnQ?%CMcoT8j_-$9Ea^KI`$8SdJDHV_bMv`DQma$fWz<{z zhlFrzE0am#VxNCOkEW;b+IROHGOrXbgl?t5JU*Ev<74A3oE8)cl;1w3-HxZT= z6R^i8uAFI@u)gG_W^HEh#*Ho($f>w|wqX@F*0iBt+fxyyB@f}uUm}5K^ZFcV4DX_%h-r?J)o-mbR?8PMkevrD?Zc_w)Y-@QAg{rXPFP-v07_lJjchE_20u`4aX7e%O%oy@U z*Hoh4&#T907!88IY4^Deurh1?GKqQNGY;K3kQ}M{j?=8TWuvT8w&y?E!tT$%`U*u< z>Hz%GI-9syG3u%UG{+14vbC9X1{9GPY=}0vdba;Siwd~J`fanByU~s1h{F{EqRH&U zzAd<$`?!lla@^tBwIOS-lZdLzE7j{O1r5CAk;3ySSotXjMnWLR&YcRly^&WuA< zt!1wLuL`VR-yIj}15r)OvVps5x`DQ{Ae8d}pLOY8;yQ8IpkYTW{$i&7#eV6*Q(7N~ zR;xi290y|1W??~{&c&(KE9KR3c~Q^Yy4kw_5>i5XAb6cJaz~j>mC&2M9`Jr$sv_}f zR`G;yAhDl44Mgw15lByT$|6$-Ml_l zy*4(-5;V=y7PJnd(0cC$Z9aKNtWUN&}4+^FfBW+0B8W{fQ5lvgsm!u1daj zl0A2NR(ck(iy$C3!oEJuj{9_-U3wA=uNE*@HLdjZkN}B>R!I;Lj|N4~(}5Kb(}${_-f4_xy0YyJlPPfD$~Y8ZN2?B?1D@ zmRRT-7dfdy5phzu6S8mS{HhoI+UmS!!}2xHPQO5Zy2_%@KFk)_R@oZcJG-`6EmH}S zHc19JUywpc1#tz5!H8{+MsdBWheG2-+3S9BW4-=)3I7mrI4Kpr>&q1&R=6%_iJXh- ze(mP1=5{ZZ^>NqJA#NWiB3`s+I5a4@4uNEpx00ZAi7?R&iEX_#X@@ndUjeOGYx&7z z%QPI#wAOkYs?u>&7duOlsEf_l4@tsz)&1YGuNldv9)(? zyjQ>1HGcW7PiZ5nYEJrZ#ehB|@k zKqE&74toXKjg=|;3^biei`NZM@WI->3g7qQP0=o(1xw}Yzq8}AX)c9_J%e-K^@(}1 zIcx;AzJM|?P)u5zOGEKkzkM4xs+ZKUY})>uY1qMN*4J#|S#+w*Qi#lxs(WRf$a3d= z3=lMgYie5#qqRNuVC8p;TbED1k9s%S`vgcDp}&$ekbWCVIk?6!Ws;KQ*@5Wnx{b(* z*wRv1RVvMPwtZ!_;sB832ZmiEjuyLy@;U_oNlx$)#Wa&7xh^Eh%Z!iCmg)8zBVF=S zg9y<YPekDn_Q>j8KUYe1>91TGjZvhpwpuH*@y1z$2ea=K?-iy>b3@t=}XB>k%J| zS4`dn{Kdlz)9WH~fM}mhMAcX1y!Vds8@Qv~THd=lF)CgPnd=e@AFS+5rdg_{u8x+c zE3^3w;FUky8`a&DpDTP2{ccZemGt-L+e^w-gr_DE2e^t$?~NGhBRMUB18AG_IwIw@ zs5lUGv2e%M*`#&ifo)5<>&v-w*F-Chbc58HF{=JC!dWC&Hzg)Ib$~@Ar)&R^=!BP} zQ5}y%0G$zt*>%s*tmhJYm$Q4%1GQ&RHk|0!+FrF#hy>=v1HBqz!ae(}ZT>(t<|M{R z&Tm%3?YN8jFb8CRv9Il@1wolTK)7-~8>IoI6FN#Gswl+E5D`?Cg4II|!w@ZQ2-jPip zk{vhG?-VXE`b6Adtt~eYe%STJu8{*R-bx z>vTEsVAn}2iH7HEcP2LzZfN;GD$|9xe@F?8=f)qgSaBe_g(bdioFAOb8`=yP%>wy} zp0Ymm^&r3E3xh&iA5<^wfK3Ct%RALS1)PMv;mi<|s8WdSm)y0{+@eyU z-sI;$Azy6P_&QNOS=A(A>p--1NOsF#Se*RWgdT zoEfjjbpY=xcUih|%CQXVQF7z(8OeM7XgE_;Q*YY=Hoo$K2ssVsIpx=vEu_2Ix7*Gh zvR(m>a$vcn@XpcIzAZ9h!(Knzb`*W|w`KK{j!_Pb2tf~^ZF8NAxHE9380X2T3=^CK zJI7l#TA;n|wYj7MOUn2O7B0GjFhoZXx7Ew_AHsgIVqf`y=MKwN+|$f>vO5cgjM8`|yC=kq`^CE1 z_uCo|qsI7nhyhxI+c006eK)hiM6ePuLt(4%XwXtjv76mZ>&QqHBBQ%>CS~ z91hLOyJGfF0_P2a;Hyh@GC4(vC5NvkH5?PTYuyK3K>31x(1m*TU5PEro5y4ZBlR-k zUThcrqyf*?%dIdEBn)1Zm+4l%mS2p8<1uRRPR3hq``Q+b%PSYfUXT7Rf;FnGF*dcR zXSZTDn*7PI$mwGi(+r#Tu6lX8yfKiJJ-)tdmS+_N)!177be+NUpe8C zn^{#ZPShFEiN%{tI(3SaFp8JlJ=^VNaNX;ZoGsz>ta|Twd|9JQCBZMHw&}7S*oIwb zbMNzn@s%pzgKpt%BL-n~s&geqXR--CVf&2XvR%0M9ckfGg_uMBXwRa|2)$|p2?v}6ae8PZ zwzV|2cB zHiGYLP4T&J<|}QWsaz^(?7MPHCKkw|*yz-)!bgCXet33GU_c}gcQs1@g!C!|^d^6n zv_GTd%rVqipjjC*om^DLZkNFQVB}!cNNiF1dhh!PTTW)PmxSF-|IvQ0YtgL8N4DiL zI#r+JCL_bZRj<^u$G@yrmJZ7rgfrW95Df( z?sYy9DVbL8?wWO~a?0V*V;1Cx7YARt7NVsM5OE(wtQvtIoKT(MwfjLN@EcEke4S%} zyf=T?V>}ySlxB86K6Cou8UYk=Xa~@F6xBVv<#r6~Dx94UFV`#fz}mPs5gg`Tb0x+1 z%;$JH&&K0pV(}8aTN1~V)N5tfiL{nQvz+|0tY{CKYNR}8*4;=34V75B4I2~xHh8p z6rny2IzXGu{4}>u#Rzgi*uOvHlU-sn9^Kq_dnhl~d!PxeF+X*Gc%;fo0x%`Eu5)_2_TY&ia$MLcY1Pz)Yt9NiV0pChFE z1RS(2_tTF09g2ZFWVU&X=8Md>qy_f6yQDl!j}SZ1^&a7J)p@l0=5X0v$tTWL>`aN- za&N|(I~PQQW<}fDa36DQcaG-b3N#mq9WkDFW1cqrYvZmb8YgV zWM{t{HZTHR@-eRCc+mPvZ|{)L6WmL|_U@2bKdgvF$k0idqqZem+0E8nLVVuqC^vb# zKYG3dEQX!{KRuO$&z6=?z-N&V&Kar2~1mwzCHN-A%VP7q%255=JJTmo`_7 zFZKonz46+Xh+scJ++~4n6wYos9Dl2zvgUa1&G6aL?5}UOioHH)xBjPz7<)w-~f!8&YX%1 zolH<@O#Hjh*va6U3Si0k;Czl@ZU9j1NlEx}b5KO5=Z--R;&4nOD+3xbm!SCk_vTAB zHDo;1Q0Ps^$ia`Io%QNL_o!H02ITp|o~!I~sYayNzX$JD*2CRCt=k;N+*D71_3nGW}Q4C>g@yeh{`N4nfwNZxcYZxZW! zPzRW^+zZ+G9RZ8oxYks)%=G{e1G;EnjH;Z+XRr5WT+D3UB0Ytfi%dJqIcU4Y+PkD= z1dPi09uQU#;l1+4b}xU>_#wK_fDWbw)AjCjjh=)T-@+D(J09C*e-&^=*8{g&!b`ru zJO^p_kXZAOA;I;pz}7KryRrt{VJ#@RkcnM@!V>t1ElfcL-cZ^B6)RxOMePw{dP{RUbXyhY7}!sk)HsteyTI@b$@x=88s88Di$_oe*)TZl7)p z!I2$G_*LABR!z7$ps$=>Y6FD8CDt3V+#qFd^(s>4V0>;yj(K&UBL;HZG9zXuK)k-~ zA`X;sHgyyX4WU6zk#R0|=#{8>SS5(mW?((au%g&&8MeCtm{|V?OpOn)BJrhfK4m^3 z+#ETVTi{@1Wh-<3;?N{1x_Jxm`>oj$U5mUs2_l3`)l{7`3a>>3c++D6FL z!$|~5P9A@&3P{>JZzy6q5xBNw-x2vdBw~9t6mE)r?_UVjq@;^jxNPZr-u?4fmy{vy zAm54(kVwk=^3P&k1BHK2H1P$4TilgVVtYD*q;$VLhN2=?g*sBZ_=Eg*7c@ED2RF$m zDFUMN4=IiRhg|nVK>gDK>R$rY0AWlqSoSOi1X$0Q>70(e2#Q{^4l8WTEBr67rO7z? zqq^irb;*B2RoIU@DN>E;k2J1E&rmk>3 z265j4R2-Y9A3WPKMdv4sAWSQ8<{mC0a4rSZph~5y(<)Jlh8gzmT>>`i9bgKj&4Czo zg~h&WZ2LitE<04CYw_-p;t0sA>c3eBC1T_n&*c+OeP)N|9NuV8M|Ax}) z*xetVTFU!&cJ@SxAiF-izx^r(bfh@29D!O|pkyt`ucldri(lJLE$a26mI0d@<=bjZ z7D?eUgOVe5QFqxYWW2Gi1<(3e!knrr|g z2#A7^uHP~!8E(xS53kCL#ednF4ywE`230fnMN;<|Ap1ss;9?^MMch=;MvY<>Xmc{cZM8H5MQI@Z=5Iy`-XV|Cep1S5l5Y0u|lRbc@|ELe6sn63F)GdCd6LI>WEfv>u5l=6m zNo2^QvBl*Jx z_BxKm@}J06*EFQ|0jT4pt?2}l_y9A)<@+dH7Y7l1EQ`h-7dySkd8CP3Xyg4Dz_pVyZgIG^dU zzgV3HG#~^sN6IE^KvbK7+_ru{*Z*a{ap&H6BT8dOWYTNjw{lx9M$8&lcnjQ#0@BKO zcckD}h214Xv5pxLIH#_XcZ(Y}a^AcXaE3IZX2F(-28UWkyBH{2G0Xe_9{ZtaZ#U zba5-CS?eUM)U}Dvz~mdHb8Hh+9(fg*j2Kr6FZvlY#}IWsZDI4~==SapLpEPHyMtW$ zj|qf&w+_2E3Lrp;diGA=&aaHI_?=hm_kcc;dQm&jS15fSP=ZlJ?Ty_xB}gnM+d?;E z<*X_8=?c`4_(~&M;%+6j@R(f3c9;&`OutLd(koFcQ_xcF$m4sOH+7@PU(sOL7)*Qy z?~m}HeALR8M>D1HSa}~uBgws3jU&v87C5ZN$iO`r8}=n&pj;gp8gz;M97G$;W}EnoZ%QHx|!N?8PHXM-Nsvzy!;@Xg`y5Dx?luH zQu)Jg4S}w?J0qY&O9rEiTcK9Pxq>t)9?*@)Yh0Ao5a&o~)xlgNv08xL ze45NEg53TnK5+Y*l88DE^aWvGhAAhfk=nE7w+;4%FlmCKk87;(d9=*ak7S|q5Jpf^ zV=?!4U7m@qHd(dwZ_Bv2%`|m!3ut}W40Sw|ow!}y@B5lF`Y}|yH&{1tC~)bMX{Q3U zV@qAO4;zQfU^90IRiLRjEt$&YotXwQfDl*fKkDyh;JQ627(e-S5$uiy)f#1GJgZQH zQjR7)MMn?PO@MZx>Vr1Y^0W4dYrKW#HtF<)+t&M-G@@o9E%ty-BdmXff88napgCfqZtpG|;f zTLe%v>VV|s-)s?}^sR7I)d1-p1+rdu*#K1LLfDDP%LQ#vYzqylQ!Ykil!6>44iq<4 zjxx3L1rZu>+-B2^VGcw?)^u%L2SdIbXwZ#-%3nde;o7&L@8Dn zM0-DI^anHj5KmMH{E(wRG!xYchScW2NrgH&8;w;xciX7J!CtDE^)1T;>(=S4YB=~G QmC&dvYAWQMv-tV{0N-uUZ~y=R literal 0 HcmV?d00001 diff --git a/docs/images/05-UserInterface-Level2.png b/docs/images/05-UserInterface-Level2.png new file mode 100644 index 0000000000000000000000000000000000000000..e8bb6923a1bc970a1499e831d8d88bf2c5a3ad17 GIT binary patch literal 103665 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 ==== White Box Business Logic +image::05-BussinesLogic-Level2.png["Level 2 Business Logic"] + __ ==== White Box Database +image::05-Database-Level2.png["Level 2 Database"] + __ diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index 93c50cf4..a3608816 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -34,16 +34,12 @@ There you will find links and examples about ADR. **** -[options="header",cols="1,2,2,2"] +[options="header",cols="1,2,2,2,2,2"] |=== -|Date|Title|Decision|Explanation -|08/02/2024|Language Selection|English|English is chosen for its widespread international use -|08/02/2024|Programming Languages|React and Javascript|JavaScript is selected due to team proficiency, especially for API usage -|08/02/2024|Database Platform|MongoDB|MongoDB is opted for as the default database solution -|08/02/2024|Version Control System|Git-GitHub|Git-GitHub is preferred for its familiarity and utility -|08/02/2024|Data Collection Method|WikiData|The choice of WikiData is dictated by project constraints -|=== - -Consequences:: -As a team, we recognize the need to familiarize ourselves with React, MongoDB, and Wikidata, as most of us are not yet proficient in their usage. -We are committed to investing the necessary time and effort to acquire the requisite skills and expertise in utilizing these technologies effectively for our project's success. \ No newline at end of file +|Date|Title|State|Context|Decision|Consequences +|08/02/2024|Language Selection for documentation|Accepted|The project requires documentation to be written|English, is chosen for its widespread international use|The project documentation can reach more people, but since it is not our first language, it may not be very well written +|08/02/2024|Programming Languages|Accepted|The proyect requires the develop of a web app|React and Javascript, JavaScript is selected due to team proficiency|We need to learn how to use React, and maybe other languages are better suited for this project +|08/02/2024|Database Platform|Accepted|The project requires storing user and question data|MongoDB is chosen as the default database solution|Learning MongoDB is necessary +|08/02/2024|Version Control System|Accepted|As a team and scalable project, version control software is needed|Git-GitHub is chosen as it's a project constraint.|The choice of Github is dictated by project constraints +|08/02/2024|Data Collection Method|Accepted|The project requires dynamically generated questions|WikiData is chosen as it's a project constraint|The choice of WikiData is dictated by project constraints +|=== \ No newline at end of file From 54e2d0accf07cb4b820196102c2b2bb5aec4fbd1 Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Fri, 16 Feb 2024 19:05:21 +0100 Subject: [PATCH 26/82] =?UTF-8?q?Arreglo=20nombres=20y=20error=20imagenes?= =?UTF-8?q?=20documentaci=C3=B3n=20parte=206=20y=207?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La imagen de deployment view tenía un error y no se veía en la página final y añadido un prefijo de sección para ordenarlas mejor. --- .../{loginSecuencia.png => 06-loginSecuencia.png} | Bin .../{nextQuestion.png => 06-nextQuestion.png} | Bin ...gisterSecuencia.png => 06-registerSecuencia.png} | Bin ...ramaDespliegue.PNG => 07-diagramaDespliegue.png} | Bin docs/src/06_runtime_view.adoc | 6 +++--- docs/src/07_deployment_view.adoc | 2 +- 6 files changed, 4 insertions(+), 4 deletions(-) rename docs/images/{loginSecuencia.png => 06-loginSecuencia.png} (100%) rename docs/images/{nextQuestion.png => 06-nextQuestion.png} (100%) rename docs/images/{registerSecuencia.png => 06-registerSecuencia.png} (100%) rename docs/images/{diagramaDespliegue.PNG => 07-diagramaDespliegue.png} (100%) diff --git a/docs/images/loginSecuencia.png b/docs/images/06-loginSecuencia.png similarity index 100% rename from docs/images/loginSecuencia.png rename to docs/images/06-loginSecuencia.png diff --git a/docs/images/nextQuestion.png b/docs/images/06-nextQuestion.png similarity index 100% rename from docs/images/nextQuestion.png rename to docs/images/06-nextQuestion.png diff --git a/docs/images/registerSecuencia.png b/docs/images/06-registerSecuencia.png similarity index 100% rename from docs/images/registerSecuencia.png rename to docs/images/06-registerSecuencia.png diff --git a/docs/images/diagramaDespliegue.PNG b/docs/images/07-diagramaDespliegue.png similarity index 100% rename from docs/images/diagramaDespliegue.PNG rename to docs/images/07-diagramaDespliegue.png diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index e76114bc..ad9ee1dc 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -6,7 +6,7 @@ ifndef::imagesdir[:imagesdir: ../images] === Register user -image::registerSecuencia.png["Register secuence diagram image"] +image::06-registerSecuencia.png["Register secuence diagram image"] 1. The user wants to register in the sistem 2. The app redirects the register request to the RegisterService @@ -20,7 +20,7 @@ image::registerSecuencia.png["Register secuence diagram image"] === Login -image::loginSecuencia.png["Login secuence diagram image"] +image::06-loginSecuencia.png["Login secuence diagram image"] 1. The user wants to login his account 2. The app redirects the login request to the LoginService @@ -32,7 +32,7 @@ image::loginSecuencia.png["Login secuence diagram image"] === Request a question -image::nextQuestion.png["NextQuestion secuence diagram image"] +image::06-nextQuestion.png["NextQuestion secuence diagram image"] 1. The user asks for a new question 2. The app redirects that request to the QuestionGenerator diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index ef91cea4..04efab78 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -6,7 +6,7 @@ ifndef::imagesdir[:imagesdir: ../images] == Deployment View -image::diagramaDespliegue.png["Building Block general diagram"] +image::07-diagramaDespliegue.png["Building Block general diagram"] Basically when a user wants to use the application, using his web browser he can connect to the application server where the web app will use some From eb4e792a7c20a98120c687ba0d7e5fe12189cb86 Mon Sep 17 00:00:00 2001 From: sonia Date: Fri, 16 Feb 2024 19:48:40 +0100 Subject: [PATCH 27/82] =?UTF-8?q?A=C3=B1adido=20punto=2012=20documentacion?= =?UTF-8?q?=20y=20arreglos=20en=20el=205?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/05_building_block_view.adoc | 73 +--------------------------- docs/src/12_glossary.adoc | 20 ++++++-- 2 files changed, 16 insertions(+), 77 deletions(-) diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index 00af6b4f..590c2bb5 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -67,8 +67,6 @@ In the best case you will get away with examples or simple signatures. **** -_****_ - Motivation:: The motivation for undertaking this decomposition is to gain a clear vision of the system developed for the WIQ application. @@ -76,7 +74,6 @@ By breaking down the system into its constituent building blocks, we aim to esta Contained Building Blocks:: -__ User Interface (Frontend) @@ -90,7 +87,6 @@ API Questions Important Interfaces:: -__ [role="arc42help"] **** @@ -133,16 +129,6 @@ Responsibility:: Provides the interface to register, play and check participation history -__ - -_<(Optional) Quality/Performance Characteristics>_ - -_<(Optional) Directory/File Location>_ - -_<(Optional) Fulfilled Requirements>_ - -_<(optional) Open Issues/Problems/Risks>_ - ==== Business Logic Responsibility:: @@ -150,8 +136,6 @@ Responsibility:: Automatically generate questions and corresponding answers from Wikidata data. Manages the time frame allocated for answering questions. -... - ==== Database Responsibility:: @@ -170,16 +154,6 @@ Responsibility:: The system will allow access to the information of the questions generated through an API. - - -==== - -... - -==== - - - === Level 2 [role="arc42help"] @@ -200,63 +174,18 @@ image::05-UserInterface-Level2.png["Level 2 User Interface"] ...describes the internal structure of _building block 1_. **** -__ ==== White Box Business Logic image::05-BussinesLogic-Level2.png["Level 2 Business Logic"] -__ - - ==== White Box Database image::05-Database-Level2.png["Level 2 Database"] -__ - ==== White Box API User -__ - - -==== White Box API Questions - -__ - - - -=== Level 3 - -[role="arc42help"] -**** -Here you can specify the inner structure of (some) building blocks from level 2 as white boxes. - -When you need more detailed levels of your architecture please copy this -part of arc42 for additional levels. -**** - - -==== White Box <_building block x.1_> - -[role="arc42help"] -**** -Specifies the internal structure of _building block x.1_. -**** - - -__ - - -==== White Box <_building block x.2_> - -__ - - - -==== White Box <_building block y.1_> - -__ \ No newline at end of file +==== White Box API Questions \ No newline at end of file diff --git a/docs/src/12_glossary.adoc b/docs/src/12_glossary.adoc index 192b2353..8d1bc176 100644 --- a/docs/src/12_glossary.adoc +++ b/docs/src/12_glossary.adoc @@ -34,9 +34,19 @@ See https://docs.arc42.org/section-12/[Glossary] in the arc42 documentation. |=== |Term |Definition -| -| - -| -| +|Accessibility|Accessibility is the practice of designing products, devices, services, or environments to be usable by people with disabilities. It aims to ensure that everyone, regardless of their physical or cognitive abilities, can perceive, understand, navigate, and interact with digital or physical environments effectively and without barriers. +|API|An API (Application Programming Interface) is a set of rules, protocols, and tools that enables different software applications to communicate and interact with each other. It defines the methods and data formats that applications can use to request and exchange information, allowing for seamless integration and interoperability between systems, services, and platforms. +|Back end|The back end is the part of a web application that operates behind the scenes and is responsible for managing and processing data, as well as handling requests from the front end. It includes the server, application logic, and database. +|Database|Database is a structured collection of data that is organized in a way that allows for efficient storage, retrieval, manipulation, and management. They facilitate data organization, retrieval, and analysis, enabling businesses to make informed decisions, support transactional operations, and deliver valuable services to users. +|Docker|Docker is a platform that simplifies the process of developing, deploying, and running applications by utilizing containerization technology. +|Front end|Front end is the part of a web application that users interact with directly. It encompasses everything that users see, touch, and interact with in their web browsers. This includes the user interface (UI), design elements, layouts, content, and interactive features. +|GitHub|GitHub is a web-based platform and version control system that facilitates collaboration and software development workflows. +|JavaScript|JavaScript is a programming language primarily employed for web development. It enables developers to add interactivity, dynamic behavior, and client-side scripting to web pages. +|JSON|Stands for JavaScript Object Notation. It's a lightweight data interchange format that is easy for humans to read and write and easy for machines to parse and generate. +|MongoDB|MongoDB is a NoSQL database that stores data in a flexible, document-oriented format called BSON (Binary JSON). It is designed for scalability, high performance, and ease of development. +|Node.js|Node.js is a server-side runtime environment that allows developers to run JavaScript code outside of a web browser. +|Performance|Performance refers to the responsiveness, speed, and efficiency of a system or application in executing tasks and handling user interactions. It encompasses factors such as response time, throughput, resource consumption, and scalability, all of which contribute to a satisfactory user experience. +|React|React is a JavaScript library for building interactive and dynamic user interfaces. +|Usability|Usability refers to the extent to which a product or system can be used by specified users to achieve specified goals with effectiveness, efficiency, and satisfaction. It focuses on enhancing the user experience by ensuring that interfaces are intuitive, tasks are easy to accomplish, and interactions are pleasant. +|Wikidata|Wikidata is an open knowledge base. It serves as a centralized repository for structured data. |=== From 59827bfb73ec5dd969d9baf9abecd766133146dd Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Wed, 21 Feb 2024 18:26:33 +0100 Subject: [PATCH 28/82] =?UTF-8?q?A=C3=B1adido=20ToDo=20al=20technical=20de?= =?UTF-8?q?bt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/11_technical_risks.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index 0b697166..b9c46d8a 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -33,6 +33,8 @@ ifndef::imagesdir[:imagesdir: ../images] === Technical Debt +TO-DO + [options="header" frame=all] |=== |Technical Debt |Description From 70a016abac0c1b30def744d5b9e88c37025d61d1 Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Sat, 24 Feb 2024 16:40:02 +0100 Subject: [PATCH 29/82] =?UTF-8?q?Correci=C3=B3n=20secci=C3=B3n=20Riesgos?= =?UTF-8?q?=20despu=C3=A9s=20de=20la=20revisi=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/11_technical_risks.adoc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index b9c46d8a..084879f3 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -10,7 +10,7 @@ ifndef::imagesdir[:imagesdir: ../images] |=== |Risk |More detail |How to fight it -|A member quit the project +|A member fire out the project |It's possible that due to reasons like having a lot of pressure or being overwhelmed by the project members of the group quit the project or the subject |Try to communicate with each other and having a sensible rhythm advancing with the project. Also helping each other when we can @@ -24,11 +24,15 @@ ifndef::imagesdir[:imagesdir: ../images] |New technologies |Some technologies that we will use in the projects are new for us such as React or managing a database due to our lack of experience -|Learning the new things that we don't know and not being unwilling to confront new things such as technologies or languages that are new for us or near to new +|Learning the new things that we don't know and not being unwilling to confront new things such as technologies or languages that we have lack of experience on them -|Not arriving deadlines +|Not accomplish deadlines |It can happen that we don't archieve what it's requested into the project in time and end up sending an uncompleted final product or during the middle deadlines |To avoid this we have to keep a good rhythm advancing and planing good and adequated tasks in the weekly meetings done in the labs so we don't run out of time not done + +|Depending on extern technologies +|It's possible that due to depend on external libraries such as react or external services like Azure we can find ourselves with the poject not working derivated from failures on that external technologies +|Try to investigate and use reliable services and libraries that are not likely to end up deprecated or with bugs and failures on their releases |=== === Technical Debt From c85b247feba9299aeda8126740912d448d7bd4b7 Mon Sep 17 00:00:00 2001 From: sonia Date: Mon, 26 Feb 2024 17:43:49 +0100 Subject: [PATCH 30/82] =?UTF-8?q?Arreglos=20en=20la=20parte=205=20de=20la?= =?UTF-8?q?=20documentaci=C3=B3n=20tras=20revisi=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/05-BussinesLogic-Level2.png | Bin 104606 -> 0 bytes docs/images/05-Database-Level2.png | Bin 99739 -> 0 bytes docs/images/05-Level1.png | Bin 44619 -> 0 bytes docs/images/05-ScopeAndContext.png | Bin 25814 -> 0 bytes docs/images/05-UserInterface-Level2.png | Bin 103665 -> 0 bytes docs/images/Level2-BusinessLogic.png | Bin 0 -> 21652 bytes docs/images/Level2-Databases.png | Bin 0 -> 17004 bytes docs/images/Level2-UserInterface.png | Bin 0 -> 21070 bytes docs/images/level1.png | Bin 0 -> 46225 bytes docs/images/scopeAndContext.png | Bin 0 -> 22633 bytes docs/index.adoc | 2 +- docs/src/05_building_block_view.adoc | 182 ++++-------------------- 12 files changed, 31 insertions(+), 153 deletions(-) delete mode 100644 docs/images/05-BussinesLogic-Level2.png delete mode 100644 docs/images/05-Database-Level2.png delete mode 100644 docs/images/05-Level1.png delete mode 100644 docs/images/05-ScopeAndContext.png delete mode 100644 docs/images/05-UserInterface-Level2.png create mode 100644 docs/images/Level2-BusinessLogic.png create mode 100644 docs/images/Level2-Databases.png create mode 100644 docs/images/Level2-UserInterface.png create mode 100644 docs/images/level1.png create mode 100644 docs/images/scopeAndContext.png diff --git a/docs/images/05-BussinesLogic-Level2.png b/docs/images/05-BussinesLogic-Level2.png deleted file mode 100644 index e6defb4acb5f61cf107b7aad05215c335422fcd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104606 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

yBBzw;?pEXeN;+XxAE|H~U5yma0D5aeNrT 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 diff --git a/docs/images/05-Database-Level2.png b/docs/images/05-Database-Level2.png deleted file mode 100644 index 51cc686b19b384e571b0938f80594b846d58ca1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99739 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 aUl4lLUhBdmwGuJ#W3$VC=e_M-QU3%?AeDgt diff --git a/docs/images/05-ScopeAndContext.png b/docs/images/05-ScopeAndContext.png deleted file mode 100644 index 0a63bda71a8f68553bb2e405cad826583e40e889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25814 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

$Qqmu;)=Oyi^37rn!ojnrg>;W#9>G{l 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 QmC&dvYAWQMv-tV{0N-uUZ~y=R diff --git a/docs/images/05-UserInterface-Level2.png b/docs/images/05-UserInterface-Level2.png deleted file mode 100644 index e8bb6923a1bc970a1499e831d8d88bf2c5a3ad17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103665 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 Ky&@gw3;zosuA<%m literal 0 HcmV?d00001 diff --git a/docs/images/Level2-Databases.png b/docs/images/Level2-Databases.png new file mode 100644 index 0000000000000000000000000000000000000000..b87d1c38f20848387e1bfef80ec3f5d40752d3f3 GIT binary patch literal 17004 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/images/Level2-UserInterface.png b/docs/images/Level2-UserInterface.png new file mode 100644 index 0000000000000000000000000000000000000000..1d1bb3ee34b1a4938e7b61d7b21b8e5cf46b3c9f GIT binary patch literal 21070 zcmeHv2V9fcwlBn}AcIB`P*I8wVgrFtq$5U9sfvh57eWsK5_$6+j#X50le6{hTlz2BLbIKJRdU&doRtZW_7OoGT$ ztDgkLMQyM+ydV-KC@ya9J)`N?ci;Z*GltTqCH7^|EzvFc%b8l@t*Lqz>uZI$C1gap0rY zMev81C>TbnfKT8DDT&pO9#RsA!N^G`CkM1X`l`Au;6qgsDJ_DO0>g*Y&s@~h5EMTJ zK0DajqrqQlXbXERwB(eH3l;-LRK>)_L;z{Vp1S5%<}S8BlhD?=0L>AVUY`S<5{);v zUOnNJOL|i3D5RF9tCXANSv91TfdiNi&2dA!;B2vuYl1+Eh>1w7{($#%La&ZmqTOsQ z01M)R$kT$NC&41-;I{oRO1=i6KZLy~EHHzjgE|8uX z=Uf}I!aA&-Zf(E`SjwNwfCh9e%pLx6RNvMTZ?ii0gt+u7FVO5WXj^NW^_|6}WLAH{ zn6FP>I|~%S=?E}o}Kfd;d zG+ci8&3}cQ^F`EEH%(Qnn1$8_Q#@WvTjh*|u*{m~-OL?a*QC2DDjeQ(UED5MS4T^R zn?pY7Zexo_>pGbOV@9Iffq{WB8$8AVd=q2%>6$~}(QEehSB}9L`uno{U7~7e;JbJi zPaxHGiei$hOs*U7x?#HiZVl290f-fwpDaOQeb9W(0GPkhvMj; z*}`8{z=<`}{I^no_`1N?6o3?66ZTIEkVO6!1&B$n4gTvWKzc12{-gjs9NGn#!&yf> z+QkYobcP}QXFUSsRfkhp2doPt%pk2Kp?`s=SYaLUKaGPR48>uj3J&jrwMYN-ixlIZ z{~_O!5L-)K>%JxVm#P(8ccY(uOX^=wvupX_C(WvX9LvZq|0RvC+5<@X|HK$4@nWdAOf@>@E_hoDTPJfo1Ybe2 zw8i1EP^yK};eR&Z{ZF`ur1YOcfPZ86kXZ|yKZU8kkU!ed@+1VDK?-riIs)XSVrh=E zVPG-{bp3?C{uHdCJ#6up!6FE_L7xqN`iz3m)cOx7$h@I1t6QTj{{n&k4no%e9S-a2 z!T^C_$=`uCe;+16nFMSLz|v1J?r!q>~C%<@#kBve_!7cZ|-7^#{Va_M1txV;MX6r z{`-p6tviAu0Wx;TBS6LE;t5&%k1xNQJM_~Jdtdhu#=QSG z9wIKfs!zb}-*Tl@koxy^@VhzvP_MY?zmzLUo>&WYYq?bX&#Qs|epixQcb&B@k$>*J z|3a?BaJRqFW>|OJ-y1qV8w2Cl^-j|24{Hmcrrv7j0rBzmBoh-q(^=HXiykJ!)NRi& zXal7&^y%%tn(aLC^@*~o04(?k3wh_uZvJ~!{3p%AcC%c&zUko|#PZ2&{`;3VaqW2g zh9v;C{nm}evl};{5Ikm<65%dkh!>V+WKv&I0~U9J(9-EXN-t|Ph)3eoO5C%i6i53# zM=QGMafK8=t!4@PJ*IFL1i!LB6Eh6XGRftk#oA=w@}{Z0X78ERF$BM;4Y6OoU*;}C zfhK4+@nd?=7M7--TQYHsm4JlV7))idI}$WE*QOAiHwMt0YxZjYAmqU;;5DWWnw@J? zs*1sq;;SJ-Yx^U1mH8tSW(AqnS16kqfh9&_wH)g#{$ipW#JjkIX?+F1Xf{}q{ji61 z{S=#y^P{%;u`;c%Ky*SRy^n>Uh;`pBvhcYj*daK+q?c5`=XS!dq9gm^O3vCA$ zm<*H>&Lz#u4C7!6L-@8BSZn%Ja13&t=zD0fN1$|sH!XyTxB~3MkR8tQWIH0Uxxg+_ zC6E^UIR@pg{F^^w9~^rb27e9gqgJ{ee*+PlW@sm=mL`r| znP4U&KeK==OXo8<%N;;56dUpV7Xew_qL1hN{Sg>;1pjZU%0XJq>A_n#6NRqgb}++E z!c_2xGILhME>mETUB{YttKd@{)54jU1={xTEA!v=N5rP+ac~|%X}{|G6$ZZs51{dT zRPW#ytpFxoVUU6hplMJq9A$>76i6!jEAIjOYi1lgaxo|_hRE6WmZlcqqqbmwiL9unIs#t%rGR`9zw)Ctzu<{rB8~$&kCVk?1yI%l5m#6d zh{P=57$3ko+bfdiAFE8F9JKZ;^Pf=;+Img;7&EK~xKmFwTJ}^>!$;x59sEE68~(i% zP<8Cor?XL)x)IVdhU z+n$48R1YX`{FwsZd|GOpU4z_cnN{V|w4wMD?ZT7xo?-%C!pyN+{#Ca?^gUXK5rx59 zRQY95?s6pb*3J9y?>n+xTXPksKU+j&{piu;7DFs`u{D0lfQ0j<7`sdM#}oYMv7TR8MMBt`!@wb#-xLV{1+DaZRG_*b&s z%QLc)hES1A6*HaQ(v^$#l^x3~`ek1^$#LEzGTg=WxyFZ%*M`%xE0^c{?y2$GZj~Ra zI^8ds(XJ9ed$d^Sd>#h30w&(b(t>71JgiU_7VwflMerM5!xSyZd-1ulb|w*|j^ybC zji`*!;_u#|%@KVi4k?X#Hrj7+WqmF9EOgm`wf6R1V?V;0};f2rzd@JQ#ZzT=leMYubi5xEzGL?lgI-U<$vx3PU9 z)b4YasF{EAKr4zw@y44t_CI_(;RYms9|W(rds2*Gr??)XgG93FSo2-JFg5OTq|~eU zB3u|d>_xyvu0q@jmecpMRt*JZ>03+p%VB$ti9T+og2?R+$ErZY0S<%DgQG6R8KCdGxH8O8~u&na<|6#z31MB;)BTH#z!Lz|2%$F3A$O7AM7C5d5xk-Fzo zB3FV&G<%g{@FO4=AGNu*g9Sko;z!Nk>b$}bv4yySgQ6NBtUUCUwuc=C2M@yx8W$j_ z(RD;P%S8~5_20t<5&ZA9m4in5!=?@i$lCXR)HHhtEJ<|1u?2ns1e?R{EhHO(Qt9vw ztca%|C1xkEp5s?ei1$ZO8xIejSHZV5q(xVW0^;V=)J)bVKz6#%v)r3h@Yo}pckt^F z{Sn3|Il@5RQUdah*KJ7(pk>DDN)yci@#-Ox0mm62yHp3m(Zs<2FBJ39uyZ1!?-bv> zPRqn6P5-JYU?4=v4m_(RqPRcKJBm%DIN|VPPtx%7=%XczMLD02I`zl8OUVsAJ4II` zOsWm9%S1dws@U4F8HP{hne4@`W*#LyFW1 z6TD2At>$xdPX$BN&VFFd%&>eeM549u&^(;w*rBmk9NGm%4l#t~IdX)dV`~RUh)-DL z)w`SHm+>T|@6r^d=;Zulvvw*9;E*HWphwygSb%?d^zd|j?##<=){rJF$-bUL7Rr$_PDKV}s2E!whA#x+TE?hqe&|L^{&KQ&E!^B5y^7FK$VPT$L zN`~puKp%Ex8XL_n-Qm>Nv&Ua~`|Na4C3Qq2(zJK(E5!)Mz6+Ee?=%3ryR+DUiz}D7 zCJiZLf&Q!EqJu}^b~!JGu#8iH&waiUY%l>>?*_5D zY}}lG*oJNLqE9wm-*H(hLH_z8-|`o}HhyEjIYeadt3?@Rm@iO*;<*q3PcOuoH8Z@5EZxoqk2$%p8d7zXvZa&f@uj3}7gf@)1{Z zlNz7qttvCP-`I7&0_}-Iq~>0p*GVC=>8&84Y(^3|0DP7Qp;G?18pq{NFyM%exVhfQ zB2q(d@TLluU-S|d6;99+uJ@&^0H`C~=sSYDS!dn}yZ}PAT<}fD-us?7SJGJGvqV!< zvhy3N^>e7&pQ6>>3ez`s)mzX+&jgia6?N|600y>4plv_Ds4{V)I0wR5zSU-}t|FB_ z$7YzguN|J@njO%uZ0qdHwIWCLh3RU2_l*Ow_i{Oi$^*k$kG6Y6R8cCIr>yeHQuc(E zZx6H`tLX=$9aL^H5#wNjs7S(zddld^@@NqscBN0cvZTLt>j7mmNsxUq(xUrR%(fHj zMM#-c*G?e+=$VR{@)+PQ*OcdM#wTpb+8s$*C4Eu$QL%1qwp;XFSz+)zkd6#wleJ(R zTYM&y_%I?BvtQjPCG!2P+|00M&SC(&qA|}~Q_5{x(<&g}+-C=x3z?2UnyxdHp-qPv zl3~m~derGlAh(otjI%2JC3nR$nW1OZQ5&|NFhjG6?qP--No&UW$ zNSig^_+hTBJ_EY(b`3K9F>Vyk8LE3u#)(fLt*R&Zd~W)rZ%Q4}at|dBx+Y#{K|BQ@ zI6IO37XPz?DutPj<`LO=_fF5JEQrg3Fc2Y5fv8C*OM|Eh%88XDj~>|~cHIDR<&I)B z`YI8Gog!b$OOUZhQSr^M^3TgM!{{4FK>Y6m6@!D)l`^03b_KUqG`9{&@FF0=ck=hL z>vq59!N!m@L0E|#8@kOzG-nB$k;yFT^coft;Kjc`S^coUV8@w5{3s!ZsQdbxb5CG4kvUAI{?KB}li~B$@AjC`qgXLaXC>Quc)&0Prln&+9_jLw$ z^&8bfT`K|N(o9!n2`GY~_=u^P>q`Ji5CBFSn81$IAWoQXL8m@lZ1e1oU1D*2SYMUN z`tD*kaWk(CmVTn=4$?|CVh3(*;5yXkE`sHfpZcg99a;8Ga6^QsD-6DWW8DGq zdY!Ib8kLZf;@l`6_H7Pp0;pOM*o z8Z`D2Si(X%M|nf_m)+}yi{PjHm9+sv6bh@pany+{Nhy$Pgc1}T1VgW4gcYcL(|1Dp z4V{(>jh|18x9bG4E2~Z>YUg^nLe@K=l%>B>9>xnI-< znC1InzL9UoNke&VlsTxE;I~jj@MZ{xi72+Q&O)IQ6!`BH4yl zx@RCG$8oFD;uvVWh1i;mUE}^`+siwkMf(f}ON#fIy^HlpD*1AQCvN<0&{3Uh0xX$N zLBvk%*kou+L^hmAVt+rFQ@MO@8%7?8@0Uy6ZT2}B_mui(`8o{msNW1}v%UG(4A9m! zDKFpG@viQ`KwVBz#Z(pr-|ceP2gjZ`d*6o#krf^88tQBum-vhmjd+=0>h0A)K+ zpSdpFF!Y)Ea;Uc?xp#29mJb`Z(9yq@`_(&exZh9-@>dHw2Arv`6iFV3XD9Echo1$B zU!_3r9ssBC;b5V-&mCTaS;N`++tki}Qmom*58*G<#jo7a>LMjisIi>@n6qqOYc)P& zTN-h%Yw%qVl^Y)^7Qm_VTa&sEe9VPrZJN{L*AIIaP5gtz@Rq2Vfuv(*@t{PxU}D zDnt(05z5?~HKhxS9EJ*-wNOy^+e{e-fRX#c7vWy1(2087^5&0=zv^-(K9I0uLA&vV zxO`8J+-hFh$G9!1X9?@qh?Eup4VRKkmW!YQ)u-J5!Z}Gx3YCHalCGlc^Nv9yw>Xf+ z$6AQHf%BWm5GR`7Zu9Bh0C3~-!f0j3m*to$4d54#CQ4^7z)a`r^rKAYlTGcm9S)V3 z1?2$|bb5h$1viRRE>83%-WIX*>(%#5{?3cLbw@b>gqp{S-D36GIL~~uIX%S}1MiTH zd!OA%gKiM2p1|CxuKG}1EK03h8pdLk(%c5KisB|+8V-m)2l-X%5l4$^H{Z%QU-U#q zN8Wf|WVr)Iq}K?t2mbeALNeio@^$6S!28s_GivQk7p{oItw4TljPdxqp~Iu+?r=6; zPv2P5fh8Zh)F3|El4+2i!v5jrKDW;rwa(5k&;-H=ze6RIJq+JR%sZvid5l(l-sVsdSyVH9Vak9anD) zCorx}h;|#Zi@)A-bDxJ=X>~mlZXM3GcJ_LgsUUPvm(ub|U7}w@9aEph9zLw!gb*RG zZV%^a$Oz#PI}XL)CxM!;@a7@_s90S^k{LjbMAd{M&`khMiPH)45AuDY02-eDa;ODV zH~>a&BH|ikQa!sCIw@rXdO3Do0Z^5keZ%%q^&Ma>yEj-@`ph|nL5RY0Y0$JwD_K6z z5n!-JMd2w(_e?}9J+!$x_oCOkNb_^-fV65@-`@5FR2}MYDGsDf;4lO=eWlUwxc;`-XG^ale}_L1RUlK$m8eLgkq1n@N`ukku%gITQ0*FS@1F zTmKr?E+3+_>|wM4WcgzN(joXCyF|0_+w{h~Zgq_VvC(fjU$bOt+}*F= zy$x6I9sC?*#N3>ofHI)M&d$5Wo}P88z>7Q^a3z#EP`&dl?9qZG3G@*stkdaV44TM= zpn&4o?wjQYIGmdCaJ-={KaS!_RQDHY^qO8(H;aaLH+H!X+h(Ys2ztuzsHYUlGe{RO zU>D53M^_c72L==;A8#ws^_86s(cGn|BHepON0rSmgmwSs(8`eZ_)IdDeQ$0Jz`LKYP5MXOH6Yc&M~c zjFXDo0j$$y!Ml>|&?aY&j{$65>C3TVZ$gi96A{$l1HF&${gRVVD^g#1Zr6xQ`)g3D zwE=97|8VxL^%Eax9sje^jiA3C+IQ4+?wohD+FarIYo44D)|?NmtW6mSxu8hVe{oTR z$T-R`D&0`lSvdIWwn(WBf^K~G!Olbu*Ft&YB%gG%nHwi(WQFYFE-)@Ht9HP8h3W}& zk%ZO}jnVR%&dePEb+JZ$4EKPp6GDMrz1v@dY!&v@B^hK6MnGpZf?BI1lR3)+Ia0tO zMqF+#(9J-iDrQz^H|-1J7PV=p#?5_-bEe5xh-b+YmGRYjfIuj4nr z7&lXv>Z@TgxAWDG6he=*-+{AJ8I>9Wr5|{`7d4abo(E+Wq*QZaYMfVkIk^X<1CuZJ z*o(qIur5;sc^gYEKR*WIw8K_eT0-}&U)FAnKOP(VvW-ye3EJZ_plXI9RZdBVo?$d% zUq{;qruCa^;@OQYnFh%3X$^*KzzT)OQk?B<{cDui&r()}RL$|*fv;X7sM^+|1BQz) z*hN>banBs%S9>L?9Tbw!op^nieRb13;G@p_b|&@=1=7sCt5+k(5HMAv&4IKN-U70p zJI5d+Q06BA?kOh)WE)I^wmz3$CHV%Vf?8Ld|2Rnnrn^>5OuXBmX94~R0fS zWci0I|I**Jc@par#|ulLP^3Ey&#JUDL>9ixtV}y!`W_CG%&81aIe^lB|Lt(>ev~$= z%ZGYPqs86!aRo}JY$*14 zy=;}~S$IqkB%cSnxe2eMuD8e7&9*HVdi$nD8Jp)8&J<10A91ivzt1>a8dqSu%m7B8 z!LXOUvTrzpY(`E}$&qx3p~#H(DZOaublExd2YQx5UgAY*vEk0+)|sAm>^xP0cF^AJ zX2I|9w-~go+G3cEi3@h%Yc&l0FO(TqI{d`^;d7^SOlH+1(4#xqTOJ zzZ~8>^_+1!T=~(2iaG|_Pn0GjP6k8upN8kt$)CIKNKz?@iB8REzTgMKj0_4BBMhVldP@ z;O6_uY6$x}YH)DTlCw29?j6R?8qF}HE7hBv9y9jdaCtv6_A2ABkEE=bxEmq9b0U&| zMQwH$hZKl&iq>T}WoTJ1|LC#j3?m5?*3`QIsZZupqLZ9j`7q;jMx$Gv=HxNRPPt0x zpJp)R;!3KpLqf(m3`cA z;#cbr1`Ml9ZF$CQ^pvqTQ^XsM)XNN~N+IvA zs$uY*fj<0?J5@)+c`S)>ItmFkkdes{m+wBZ-gyQ?M%3(_Hil36#>Qvvmuq@ZqB)$& zusU7)&rBi=cfvBMTc+q{LWh-Z?)#0cP0lx*h~SknTz zSH`pCv~zWk`ckj#bnJgxWDHJcN!}(uri=s62}oPV`?}?Sx@1U}oGu^r#pZ)M5sAtL zQl%j_|G`DB)-FX<)0D#8w+D>&xRJ+~KwPg0=m@u%#P>~|I9OU)A6{(a+bcQXzhSEl z1Ou&&?Cwj7&zC|4u@qs(oxr%+B5SWqYAa>Db2R34c_ToEo=54B;98_Rzvi*_zdDgh zm`^2xes{A2Xp}Uba4qo+zpg(qA}o9)eW>u6P=~6F@DgJKqhA>R=%ko@k@9K0YqPmew`s3P1T%fy3vUevvuEb2DG`gUc*IRHB8 z(HrdDkJOJ?%8Y`GRG-&Z_E@t=+PlASca<)_ZoVzs6@Hw^Oe!&+Xj0%fO6>u z*%g5%NqwU`ju$FcEKo`|P3u}uo}944;G%^8>1PZc%p zG5BsF-ct5KHGhwGP+Yh};~=o}dy+G(O}%`PB2OZ?dk=)l=PjwF`GoW3L#G>dyeczd z!ME_aBi^+rIE>(57w;~2o1UZp(rG5Cb;7!L5Ni3h6D<9fD1>qa_kxC|LD!Y{;kdd` zG@s|UdnN6@RwaK?fl5iJaJ_Wyb--Ao zC`co<^mmckQl*9x zn%M4AvOdiXI;SBNt~7$@yB6LW&7{0*!k$w*HMwY*&eawS9-lkZ(}8c+9PT127P;)C zw^6!O1|=-WzAF`<{9*vGc??oaUSF>Ye#TMk9&-Fq8g>NUFM)6p(lWr44tGjGuI__ zf;NAsXf_7iZEJcWsWgQqs=}L|%m>b+!Eu*@{OS!mKg4(qq~SteL{G-i=88)0RLmqd zYU}SeHT8OZ!+KvtZr|DdEA5^tcqcUg4&Fp91kifp9NsHr;B(t$>ez;9zIUmZ-MusQ zThGZ<`uKi3z-OyU_;zAGWMSgK)P!oz$i{MSY0r{NtR20LrTyh070vSVm$u3^Etw!x zM*~Hy?8BjhK6jynJH0a)s*FJT5=(}iAPlRhrV4=(H zH;=62T75=v@rGmH_a@nw$G@5kz2)Qk9T^Q$s0eDtm=8RQDVf~ZEY9U6TU$K%gjAl{ z=#iu?KVYIunRW|lYH#QA!VE9-9-G34%n5jP%se_q=~A?}Ob&f}nSPFkY$q?^btz9F zCmI58CDw8g3Jx9I-vUKW%s&Z0Z~o;(0t0UyGkpG;$DnpMZdv$jPYh{CEd$9MRfu{m zYY=Rb^J-U*qP^THLO%(e=_%+{xx)fH#QM1G)vi_C_Nniz%H*Q^AZ6?rEm@ucdNu8{ zgz>RwUp6fo5ASh{&Z;!X-XTy*a~rH!T&Yp)b$%>j>EjDHbXeJx+3_im7M^e7^yD7` z{Z}8|ecvyknGYVWkjy}9rS;uoz|v2NEF!Cz*lFRzwpE#?#0sHcBHsnVmL~gqyrN-qpFwo7Zh(k%m@t8wzy4B z<52lTw=*~gf~gP^sv|cS$$T1Pc+v$)(#xxix=8Qyhl_$}sEX7T-cp47_)qU%q_t88 zxGv{gX%=!6ET?10AGhQ$r>K5c;b8e#w#*f!^?I+^NyBvc(?MGuZ`bg3Fs-$UU%^~Z zM)UyMi3K;y+e*dEH&)+m3f}lFsJM@{$$44@|E&BAqu;OW2HN!5*H!Q_<%oR_*wwd> zelu1M3K>j5?6W?O+T6~w`gWBic=n@5_7G@bvo*b#UL)BGZoP`PZux^GbbG0d=FsLTAIc)l!|t;y3n)n)ZM4_tBcgNVX-C2j3e*%QQwvT|MU zyf5R{;-`1qpern}VD+juEoSvP58P_~cxP*EfeE099lfXpT{c2PKVAY`Bgvlw-g78& zKl0-h&L3};tu6QsJf_poE*H+YNrM*scuj4MDC zEJAt_()Eo=?Cp;4?DxO^|2=1)^PlT7SaZ!e<`_@j<9?n&@KrU1)2Ggz!oa{dt)wV> z9RmXk4gOl-oB&t41qpec$ujft8Qs0hWol_;?qFo&$Yl$60++z|Hg=|#W|nZ%gM0XR`1m<__&E6lZ}18- z!=!mcz(4$aT>Jw3w-4?&GKbq94tT}R-O}3Hh?!4bfQttV#j0g#YifsZ1V5_X0RQmv zfXgr$@Dun#kpJLES3!O@a7Fs=U2C`&+*rjD%tKxPCd3631eaM=6mMKnW#+pKezvx> zf`k7Q;3igf&?A>E9PDhs6?tAhUM?{7{yQ~{%#0i?e;z{p>UHQI9-*UqpjE=1jLZ*K zC~s}*1h==j?QZJG371y3y6gbEbFeZOxPzmmo$a9@U|hUh{0Cn+x!r{yTs4KeSek$- z@G-;Wn0chZz|bGqZe%6u8dEX`|fX=}vEdoYmYp_KWZt>ySlm6h&t z8r$5y?Q%=ehEwhLgB}fSQ0GPAQjT;Ab@yTDX_a|d)m!^Ft?k5{!UO`R+b?iJ=cTo-h=BHYs4;^@u1f+7dA zv@trm`EVtU7DmAC4xZn?^s{yj1bHM*2Rl13-cQQ=`Rk*bY+NtHts!Y2$?@<#z^?wE zKl_U`9DZ?}|2MmogCc2u!kdx@EpqF(17^`4(5#b)fj{X4sWse$q)p24{tO&G(huThK45nKT#66 z=TOK0c=}Kr{hcZNsr>m5E%SdSe@MW8A%6!uCnKkWV8khM5Jdm?6~fCS4CCTE6z)+} zfeCZ*9>$fQ6vHn7;}SZ&^Jm?_g#UKBIWnPtq#F=G_Cvghn>9#ba0l35YsmP(om7pF zT*lbQ#L9f%$<&>lz%Y|m5eS+XU(5sGIi~rD%eo~>}pSYIr z;kCbyXC1ENC*?_-IN3S;A-WxD(AmcN;0Bls6um4#x=}SUhFf2?bF@5kC}TS(Cp#OU zjiVc+tu4)=wC`m1yC`UPpvcR=B*1^3Cmto~Lk033Y33&d!u~{oM@s$sDDW_L{G>ot zxXV72Im{?Or6`bWKyv;$4;dY*#suU}xWk|5%*N8x6v}Xa8c=_m^8OjlCj#Z4pBxW% zl;eKV8}E^Be-k+WcAh8rNBzJ}0f0M16m||y7Ix-#wno-+zh0I3t;B!5N7WAUt^Ig- z2kzwLc8EreoSp1`t8lohrPD2NCl8c}U^380?ZXG5pJgHJ0D0m52go`0KiC3b@$*yA zXXvqCzWnt$=quTy2M=@wEeqTXKK$Q64j+%BowLI}RswhZDFom<+AJ73n1j95{&0VK zqrg5^_{X^8Phpb-+!|m4m)}nH@8jr40{F?(55)VEga6h%{sIFXJpI3mL3w$F{*Wwr z|0G%R9{KgpKKu6zwnyOYCmm=yg1E`YqXflIGYIbQho_%(^6wvXfpYkMk9c?m4uR-T zfmi5H66R47{rmV4AWD9(qJL`K1+f0txcf_}{j0cp@YGSWy(*dWsW^4$Mg+&!cV zoc{kBcZL3?d3s;dhe`UUoc*ibp`?A3Zud=MKTjXo$9|GNO!a>=dpU>}|ABe>&|!Yc z5q}6c{}y=~_V1ggkFw5BI*@U81e}2*M4qeKnOmCtK_~wadHN4v3-%{@`UqG3jJ1v= z_V>xtus`l>WsRJSjEx)tss8&6{-3El{v!(TCy@2;p*(@Zr1_Hr{y}F)l+u3$DJXEH z7bq8lrNWLJ>MvAx#5?_c{7&d!i;sT>$6QBH`7hwkFL3w(?)-|Ce|_$M3myv`5~zO( zkN;EQ&XE9q@^mdrD@#)ls{i2e{{d0@4}N~M>HP~oKMDtbA3r}TVf;i@{C6MxSF|D@ z&tE$F0Z;dzx33XA#AE*|d-*rxs}E@C|B1cq?-&2`?Bz%RKP3hQBPTe*$V~(8aMb1l zi2pz9pnwwk-;}-P`;#_`e-rjv@Q||oN#y_3h<}9UAe45*YyFDQ{+!492Jnb2=G2fq;M zzZ%1z+R(pncW?v_{~9#>hbDm|0sJuuTyusyLJcE-X0)ylE<;t(d`Oifg2gv0w&Fi2$_TRz0VBp+={Qspz zeE+-ObmRZLqWy1=jsYBeargjqBIBTI{K*+{Qw$7x3?*6V8?O4ZiFlTEW>n52tS!#z04MSfjyS*0;$}M z^VQFHv(WLqwe$8ZZmW(-JLzRT`sf{Zx5Q_;tG9>ITU%b;o3ktFW!vPz(~;vf-iK>XC>gOt^pV{$t-xVOAqA zKKi5vJ$*P38kc^kOdS*B*DE+hG8l{V%CE9Xj_$#cs`S7LLZCG;Fn)S{CXrMr@(kPT z&o55GKn-r4#rSn9zP=Z+iO`v{r^FZzCJhZx%Hr#~CUG2`efeb~|DD=@rFLjF|FyNh zk%#)dBU%5^sXo5kDjB;n)6*z4?8$WTX8J>e-KAK~tcQ?Sqj8#&B@GB9x9|44&t#;! zuT1BRMu;_JBInt4Z1STK9Cs3xhu9iRB_Vv z%WmK4PG|F&%a5H!qRSn=`JHU|c#@7Ikkko2Ys8IW% zGMZ?8EK0pe_Tyt_71KpjjTx3S%NdF7h07arc0L!w&j~ypjg-_^6CS}9mZ`i5B4yU6 z@LVF+Kicn({3oM_@D!H1bO zJuDpd)=?7~KWq8rUGy{i&y*7hQd~HuaTqA^#`YQ^oEtKR^8>|8bxe_U>x-k!swD*O zqU$tHZPIt|0q^;SkD2(wXZmg0*kUc6kYsQ@@|CtCV92LxO}qLrf|@-=_zkcvta*?490nXsbByDRPdipGhAiIBG+?z zG&zs!v(ac^+A6-rp$Y541DP6Fb_reSJaHDXqbozF=i;z^_i6A#A=Le7B37p7X(y5p zLvA@hVgvRc;!xSv)$pSkI z!+X03k*QZvIp67NMdW}*-YDYfR={eG7l;CGqq4WVH$|MMpyt2OSZ4IQozZx>AzVp?CnwfJ;{Um0|g9v#x%APL?J7+58fjI$!jz@hU2A1b5gx!~CY0}bHw9>6pwn(Yac^PP3MzyP3j#T8P&x z_O>KNcGpLH8wZQ)jCepGA@QSxnbiT2ab{KQmULz6^|SOW3K)TieE*o#G7%0*+i1~> z9BcRW$K;TBJJh8Rm*^LX)4pPx<}q)J(El3z0r5qwb7@eeqjAh9FPQe!sJI^jzz$zxr z@4LSg8&H&rbhIb~k)PDg<_dhW?S;c9Tozf@E5rwL_p4kR_TdJp{L@^;5%e9d0jaHu+6|UlH@v0BPe14(a<+nbEQIZs2 zI?e#B3PjAt)qXqfO??t_Y}5r`*T@9c6=`}bOmXEckQ$$4>LKM>=k$q5(Iw|`?7!>J zrrc8X1n?uQ6?@2a^t8xKdah~xV`d4H%C$2eWL1i#14BoJpfAUYkE2X{d=XC!KnG9BYrs*Oi5o-Y~B6GNJf+5*D>5 zwRAoM4vnkvmj`-H5@l7Yg@Dgaox>bNdx1>jfG%4rF%w;V{S0Vf9P?A@EV1zSXO3fC z8tT!ZTqUd?Ejz7D)p}-^t*DvGdn34qYAzd2b)+u!5AWW*nQ@y`J)jE<(`=|76Xz=n z2qcn<0C<>gERDzM@!c!RP1Y*VkuB}NpyrWzMi>M_c-wR7S@wxL7#eqkU}(0}_-61Z z-=q>m=M|xPAkL>(PR6;lI_Vz!PK4IKPsw6J--blkwP!Hp4+DMb0za~U^okZJ|L&l3 zPklkZt(CrU!%{#|ql1&SVAR|sO79uAQ_2LCeL!3gX}R;Z(GetrRuYW0xic1DvtJB& zE;l<2*w^;je08u2LNr!#3MqJU9!nER!?iA3>0YX5Nv?|!o1e_1qe!L&mhht*ONCGE zTY_CVZ|*$sq(tlD@tC+(GW*!6g{4n-3aUa8yd-TJc`G_SWSqCFbzxsNAShrpw%9M~ z2mD{@M^~Aaf!7!J{sJmU4z`8jD63eZjN&WLA?)zdKS|u9WDci0?E#R!z>CU<=_C}q z#`igHWlPD2pNn?Zii>M@y-$p$B;=W|Q8pYXvgdPKGIcCJ2`mhxlgN9F&QkPPerk!L z^$^I^D{%_G+Be4-Bvv>Y+v<)=h$Qj}tc=7S^4_ws94yH%U2YLG^poNMg8X3k>I}{p zOIx}&Y&qX@d7^ol+@%y7)v|~&!JE8pCRXlB&h2+4L9m`o$9kk@OKtJ-%YqQ#Q1z#A zZZT#<`E+M+#k?C>V*!(@XD*FFX=rjK0MXp);ww);CKlRlc-t-pgpZbqs8S+oyDVDJ zcjsbnk-f>8W*s{cdvluNFDHVtGza)&FtIkn-_Hv>b||sHE2(r94DP}JeAe&w6gT!ygH?>AD|TTfRK(01dJbyG23F{6v!40%$`d`#!aHBsMJAq_nASaH$eAnX7mYom9hBwR#{1P03k10e zD9y-6(#}DKO#lqrsT%VlFl=t0jZoEO3B4a_gj!_PdJ>D}7VV6bVlL^#-`rQGIu-f~ z?YNQiCGU0bempK;Cv>MvF)xYq;?1WHz+j?U62%$;-cKCjmY1xMTVMT z_n38w^0hPZO}OSzd#4&H_Tkg@K-~3idvoc5aT0V1zWj0EOg2}{ro~Q+j%K3D>_TA^u@xpXKx3q8S;Z@i9}fYGw>Xv${Yk zA$lS|up}w$^Jm!rW-7yR9XRFp2HSI{D3^XnprBaA@RL{rwy`(J-4{;#!(p4~1zXt1 z$8jajGx3{G-6A*NzM#g=xm;PuOE30FC5;8B@AL8ZeDcsrE~3OuEGZJis)Yof+!({f z9R7@<{we-xLeN@uTW7X9^b%r3Z;LG|VQw9zw+%@H#iAGv;0|I56N?N7NS0}yUjF#$1_IJ>n&!Y1S%lZtYV=4|U})0A+wG+Jy7N0Db4*qJ$|VWK<2p&*>t^Aw zUDH751ul%SYU)JjsW7~o@Gvj~#O)fr8`o&_b#3D_wR7d&S7+Idog_&AF;cnmL(R%l z?|aBjFY~v4iid-Wud86y9-=5;Qc9L@I<<*6?a9f;-)m(F<}QfM7rn$j$q6vC3NR)X za^1UrmzJAg9Vv2nj(qQ8#McHK;k(-#@QThj4{;|Y^RHSNx0wTJT%M-i`XH0!F)xBk zVAip9PRLd_X7IMpOZo7oy+A^T>8~GN;#2a;{^p>!Ndhp^s10B zCx0tUXepVlTGHOl0zDKTBn&Gtn94O}xedxot=+;utM3iH*WzX>tr`b=GnPa#M9ku7 zZD`W-cQ7s<)xra#-gGLx>67Qt`P_Ix&}FW*W9 zSbQo-;;-lU^(@2f;wg;qKxP<|dJ6$3xfpi_B1RA#6-38E*0PJbDbXKHYIkKzxo_vy z1zC{}i}urIGOgJeEoP=%@(h^KYNyLf&7J#5O1A!y!_#g2@$2A&zF+qGw9euQ%C4GgUk!=W_D7dK$4Zsm!$dG$I478x|eE!i2kMi7F# zDx$OC&=57{O06>Q_ms|bkdZELYQ#3*;9sUCL-*ShCTdq?YGuEcC^c1(E7!N_%j>mH z^mO&|a(yu5vdcIWbwO<_lVrgL|E{>cWg*>S(khOT!3D_8kX%D60oO@q-N)wzNjT!# z1?HlgOHXn?n^qHaSFiBiF$LKj?$M-`_g-~<%~F@|rE15yVO1wG;YUhP?1{rS4tXY1 zn#M};^syea${^(I1RqMg|3eM3g9yBk^|aib(@=&!j&qA1n02^o;lmrag3_KO_tiUr z(7}}W6bUH9T@kFeo=$Te_$0FUT#W;YD&P#9et`*6l(E5WkRCdgQeAK;4&GwTBC*)) z;4NYT_$uqWNXz{EQUE@Y3{KVAs3^Ix#++n=b~iF$^Y#At%!cp8Ju&^(G9 zg|uGYQiHHAKDPIH;DS=KDk>O@`nSuw2rxld1MwwxuA1clUaCW3&fC9>0wiV@I(kD8 zIYDq~k-5(N6?^dtk;D}-C2&V&J-vu2KWgxWq0u|!!93lFUN-^MNusB(@9}+sis30m8#R>1P zaj=wMW4(3)OA^u?{c0++uPZmF!JR-~hJBefx}Zpgt!v5AC>9`4B1!2x_#{%LQG`U< zQu_imXLx(Y+JF55*cv86BL8Okkect@;{4TYo-YUHBZhDk2pO*yI>p=|^-TfNZFPAb z5J&2`${Z07BvZ`+J%@T`S;;DFuJUzbuxnO*AYLtiQ>_50NW!7(1}!iIH%wp%lSQ0T zWW>W}_fHbia=^@6p1jpa>%&yN2zsadx?2wA7lW|)>JKGR57wys! zc9Z@p59ViI|3~)6P>IyOQaNDia|>&7r6+Uet$H#A3=w^nEM~)VuP8F4o-1Qh9D8>^ zJb|6QGKcc|F_10W>~(x++jHU;(mkYNdJ$qG@)wEToB{*ByE>Y51dr*ZYHcucSWtTA zgGlF@3kiZYj|UOMdgU7vRPB_mb4@x0)@)#3mUk=xT5uhB3FFHYLu}x7I1gE|{ETti z?8#Ml`gSBZ5+FzyW>^6L-Pk=s2_79eeLyUCfao75?on`QZ+ki2D>8=biNCJ^Rv2dY zRgZQe)L1Pzr%4go$%r#W$j#z-PFpwExAvDZBtnJ;f})(SXCV{OizhZiT;9{ZqGJ z6$!qq+P8~Oz>Lm*4(*60F`P)m_XEDk{=mYJg)m5!_K)mO$_Sd&sGMcBm*s23pAwKbM*L0>z|G^YdiVl?-5#1jidOH2{Rc z#w8hK`Q}k8Zr(zjOBEKfQee}soNLx>TCuYll~K^wu=CBV?Or&QPy?VSENF8ss6I6; zZ!TK=Om$_p2*mbJxa$%p&Z>opu|uSsBm`z!Y1Y1eFiE`}NWkYXrf7DTbL=)-{8O+s zcAD$cybUq~sAW2`#XncWF^%_aHIaIKEa9Oepr$K3(+#ja=ZezQ64{|rL|T%&a)kKm ztqT7nUb~(Q9hS62m-uI{s9=yCvclW~#fVrrF%4>cJFc%3x>O@8KGZsfVtdXO30Z%o zcb@4MfX$1VG>%L7f!%x^u>v&%L=*x`FF_O0N>!f0q^reHu_&`Xu{aO^YTqY_Nhdb% zy|WqT+_^T0NVXZs(~`j|N#1?JrZF~^mds^z@y2OCYvKia{JNXio#Urb;(Cjf@nL5c zK8$994F|Cs*dg7Le>t6{lYi&SFqp>VOoG9=cD#W9ZxUR)ghwZ)vpVi%L{Y==gwR zYxKtQ_XMPv%Pi~V2l$UbL9^ggzKyp^B}6Pe0hBJOo&f`CHRZ5OUn&Q-E@Z~v?mW}| zK(*i6)M*KA5bT4IfMKK<$w1`+>hZ!!|KX{_SCS0xOW>uo;xeD>OFH=@VN3=Jx zU0V}t2+h7|etk!D)4tSw<<9ajC?v`Tpr1?Mdj;q(N#daqN;lGNzxAHp4G=72y_lZ6 z#H?jV(SNEMX2*6Oa_YR|u(Q&mve0(MI|!;9HJEKy`Fnw;2Z2>WI*C&27=!*6uWVei zImbrQ_+k6%!ZtxRLd;mmMvAB}l3Od3B8ix-ouH_Rphjip#I0q!c8}G0y~qa?vt*nb zVdy0N3xD`|CWQ!o6+L~g6-|+m`y^1)$b?)cpvbD4Qf6{u7w%nNACcb6$X#JyVgZ?N z`mF`0_bpZR1i=hzZS}9TUPL(Dfw;67PH_*tRfvLq0KI3b)>*|3FpK)R62{;jx4~`< zaj3v$9lK1X;E87$nL~6p5h4a>7L}1ZL2G#mI9q(u5Xs49uhkw8=GX(jI6^twU^WD( z)vDms6;QI#$pOqaY;+g!&dOjH*}ON?dloA2Z)HVS{?m5a>0;H%M-RZ@);KtnSe@(FmdHVK%s>j zi?&dPo*hzYQMDc%*$nWS!~}Cow(H*JOqNi8;_DOvwCD`A{vJ)bb5H(4$*Nv#1wNIa zYG&z@GAtA@M<2rqKTCXF<#lDt1L+s8V&-6=cG|2>Q}umz&$!4)tky9P!2FKH8dmkg zr$ck@Xxu98d9P)cn?LvQa%70-jy(OX<;)7gK0^JJ@c60`2m6{rb{j`RY~B6My>Xas z4&~zf^}Osa+WVdoiX33RIN~+rh|u0|$guO-(uvFN(X(g(jCbj>^8A^^f&3Ap#q>tC z8{Z+s~((go~JAsFl>1yVy5&Ffbt6f)24x< zdrn<8uM5!& zT1%JZt0k=VD8ZV6s6iF2-5Q(Ii{YSD4u^bSs(Ump&nIZ@71Py}Rc%2H#%#^>ZfNyd zHL~_&f~XnA=R7b0h~2w>OycDOptp0k^lx3!GW41Ob&jcqilPjLa(j~0@^nbKb?%p< zRtXoAoUoO@O6bVN5ZU@^?l0_=Dp73+i9s#agW_Q5Mn!7Z&!?qI&4nweJDwzc+k_V1 z5#^DZeSba1pWWFk4w_nwN!*EHBD7_Y46aREK3WgyLV92=Mk*R#ix#!0&H-sHMFK z^&x=2PdjhWd9NF}&E@xuwTPklw~&rC2L?dyLy-Db9+mLg!Y~wYuT;l$gMu3c8He;D z^!*Az+}8#B8D3~-bmUcy5U@9YX8*tmRO~DJSoNWrl`W{h^^WLkqh|D*vV}pk2*<4N zXz`v2TAQsc(j^pF0DRR_m&cavzMy8mKW!!p&brc<7Y*3Ua7^tW?RYP#(lilK=DgF3 z`Z7i1H|BI|#X(WpZS0YPtd9dcva;>PDKBEHBu;*0edU>sKQO zzio8eS8Plqbd)$-X@kp&3iCEW z6~oGu@#`1RRX5dNXm|hdB3ZlO){iL?yHv`o=Gq9I*=aJ;!}*;$*PfZUl}JJrbAsw#|SSO7LMH4 z!6Vpn2OW}48(6yYXKoeRCO&iNvvfcOvnXfjmkl^$H!?iLfOd1(fZ{t3QG9z{Nl?piQTF>y$gz@_k&A zrjND|iVLOz4Q^M3F^6k?KLy(>Ks}d96DLuFw%?|T_8PZ92gMW6CP#U#$Z6_2(?oHH zf?+6U!9(%YuT|D3d*5kZEaz1+2+FSG1>5Y1;~e7?j6)i<&#%V?x<*E(&zCHMrnt_~pG;}LkP#fX`tPWOrwKkF>@lxb(uw+jp8ZRo@0l z0yKW*veUrgVrKe<bRu-vS+#vXS8x-~92;Tv0vkNtSitN_@~~>7CBl z`A?EBce#qP9xj2ts!UG+iQ$Tf0eb}|RI=Bqw&T;&fOxcC{wwAiG@0-UECnM-=S8Wu zfOt}6N@w^YIrOJvxtMYGIM4{`IODxl5UA?hz9+KmfetCqTPAR)4s^XR15b>4pH+U_ z8}w{44skNabA!VF4DECH>frUq?fBU509e*PZZUA30TW$=Y>99|59xtD5}Y0?zk)%| z7sJK~CAYIVv~#MTalCaSFwX*V>O3gJ(`*%x| z-6rCezM4eV6Nt?kn)PQDPn?U=0Dap!acqF1O+npr?a@Yf@pQGK!M=oR*mF6262H`C z!ab;?I+$dx5@KQL`2e+B_lA|i&vy-_Cs(4+-k|A;m>2H&;76+Xy@Id-ScAWP8fK>pKn9aY7)WgzXST0q6j6{E3HZ27N>bVo=*mRerxWkxN^?b6QD53bK=(hIcW|3&^3@1 ztS?mGqjVsh0?im!y`pZ-_sYGt8Wu*Xpk`sSn-WiLdbHOUKysq>yyKvIX)dp`>2gA* zW7cHKXh9UYM9>;fy{=Ebk8z`-STQJBfR<|$DTX}Ogh&k3jz8X5oOx1jSX8Ex5^vE4F`_wP|01k@J~{&8nZG`;0&n<3jf0-Cq(v{F zHo~UJY`8kzZnv+V@wOl68lgCbGM{z~4_d=lsAyZ64Tx#wDfz1Rax{X*vY2%9f|=KH zj~ZF~DQpx=B`AApBwNV>*tV$|r^IdgTB2&w7!e*J=JF~C(OufF#12Np2O}E$Dw0Bp zit@?>~0YvN!J2XVe0NS6g_ zVU511)xeVM$q0CcXz0iZ=nLiCZwMSHx>hjYpz`x66J-#;;D9KN1#!JzVr!OZ3tdqm z@;nEmp8%?;95Es^8=fNdL^ZF6ezf+MuyyMl8eq$e2^Y=sJ6mNG^oYf)k-sqD^pYQe z|JQ-8Z*GuHQlLgIeV-lYw+0pE!~-X(@A}Sywru&J_w>W?SiM&ueC7DN*$=g2sj>Qxqtrx|A|!WREkQFTv};>h zPTsrJ!t=Dmsniu9Uendt-la&N?W#*0+w+KuC|HZ|*cEtSHXT|6^GQq;2CVf zzUdpeg|}H~Czw>;ONGc7+rg5!EYD^+@6SE ziXWbI$DDTDA<_#p5j#Nru^Zo$=^p7i)HrQZ2;Y4khcP`|Q94(ByzjOls9KRxTXk|0kV{N{s zDo^)b-(aq}`f|85i1i$W`re>GapV3AVJ7RQuviDP3SsnMQUCXd{+std<)S5;N|=Uh z;AC@B&t0)3A}}|Hu0b1Xp%lBt!?4bDlp3@Bm009!0GDxN_q;YJWqyRBv=8^4z6wPoVwT?e{Pp7 z0;{pX8JtmQfV$*6UMU5a+;>$!>ti3z!b@dq5>p|}K2_QeNTs)|__UX9K`m6Er2r74 z@8=kYGElF1ac)4ny-HBmuqBWy0S9N^H*sVL={vQ{nQ1-aHTitrj1eWy`=dr^0Far> zWIsU3LE95fY}K}c-Yh68XeI^wSen9+2GA&eUX)&06dZ~PR&-ckXXY6cR5R~(qO%Ym zkSnAcSEj=xy$Ur!h}>1El^Go3&WKevsSFnyVg)CY1Uw4OSMCfHedxWuwA9G0UM*Mc z!T8m(O9)HCdElIm+5Oza5$*7-r0F+EvbVQ-{EC0V?$L9;qSJ#Abf1dbd?;Y_341vs z;gmwSULTjiXJ06gfi42(z0IDAXZoW_+&&P$XW5&R%3)BhThMEk;8|m`Cx#Mtd36KF zFZs+u>L|gb)^|lrg?lRWp^G3jr8`ZwNy|r2$4yh}I%FGTxi6^qWa@>#DFGWgjev$& zUa7*HH!vlQtAlPVatH9148lPl+$*rC)HmfFqQvO#N1e|>gU(bDG1}V{(Or$?I^Lzn zo8&&tCbIg~WCzDszDyTvf!wYwRgrbgUro$skCL?nPq9;j5x-idC60l8 zYAh&xijWSdSXP5Zd5(&WW;?(dO0dCU>=fA0dZmKmVWbXMP=a{QKS7z)d zb$c0}f0uyzdy_zryCFPYMUidUc_9}sboa;jb>hVP6+s9CK72_M=5Lp4X-+(2wvV+y zy~*fxb_I~)hICaiJ+Ngv=rd1O*el`O(aCW;x_nu|PmUv^CVz8G^u37kx*^fGTeM_%4f(CxrGaXNe(y=RJ21OC_vNeA^F4hl1z3+!&Bd8XW z$_6-FU-Ad1cvjniD!=3O>lyE{<*16iCsOfC{8lEFpgD)NaL^?o4D4ERbBX;2wV+dX zz2HF3I5-m0s(VM@`HSWfIN(U$v45`E z-LwK^O(^l&rYSW?0xoxP`;I*lf#%wLUEZCB(pzgjU0tfzn$v!}TXf#@no{TUxYnDy z`ofr6sP~_|7QTIi4xGkIpaDNU)TFJoy%Ue|b^^(lM3+#@w!|CCedq76e84m#! z({qB>tk5YJYOpzk8?S;58($!t2IL7o(3;+Kek@u`pA9n?duQ~?gNHM5z2Y$~=5j1e=T)fXfoTX&D#t>}IW{}F&+mcmh^RJYS5l#m}G zMz_F!I)1}?934P%m#rL%_Zt&;XEF)}VSYx$=*M&c3c+Gvh8z)?Y0n%&pw`<9?RUD~ zFr1`udRV&Da1q|9SiZBWct;MDAZ_35`Cx^`u`&4%>CEl$mL zGsD=M?h!tUzfs}smD`jGr4F((z)VDkAV{Y`&jv?=Ue8GknlaGPZ(Hr*hLSv4Fk9Usvk7T0Fm!Q)4ASUZ02vLe~NEOYpV>XA}wAYrEcHcRWc8h`=m~ z*aYQ&9&Xv`)&U=_)xrgF`zP<;5a@}fq-;xq9kCfhFF=uSP(5*&d=VHwOn8pJPIY%m z{R>m3UdibRLu&B-y%R!1L?g0e_*1@*sszQDJ|3YanVkH*ta1 z>qq-itIw_mzq+$!$S(da-kuNKr?E^ZGe=q+^s>OvAE&Bh);r*LN{-J!`D}FtSj1rZ zi8e~>Ik6VWz3r}AS+An;7@aWh4g@ZMl?%y$dQtbH=(PL>(riPbHX*l19N@fq(@Qel zdbHiWPU)98S&j*ygVs=}NLTI%Iz(EiuL_}gQ)${og!S#H*O!`66wezKe*|cj{h;C$ zufIw6;9|d*ocWmZ-j3$`oAm(AULZH{{4kqcMIhLj(oyiEU${8|2vW;s*b6b$osp0S z&We5VAVR;zP1JcXxkQ$zT?AMX!G669x0D?L066y{GZ$Uvu_oAZTewzQ6(*2>d=L6*w&n_x+bPTwoo|i_ ze1ncb16r^VpvrNmaKu9MUa?!-t3TG;@i`%>`>p;W`_ZvyjxCP}XhiF9S)M)YIa}?a zFMHP47m1zIZT~$~7QC>s+fX4DRET5ahCvHsZgn~+scz_Q)(_vaEBk>d((uCKxX?os zRR_iJ(%ldJsv%Kz{+5;voxop9LZi6Y+AlNsfFq8va=BM|w*WqgUt5MK-`s1Tl~@wb zgX~q>`*GsU%LqP|093it={=|bl55^dHYo5NIw9&+G(VVmQg0sc4v!Kzx`yjWzq7rW z+f|jV82@@!E3xYsCe9d9-R;^$?n+>4RVeW_op;|1VJ_Dj$lIIul0L8B9K+lyB`53W zh*r}`0)hA}lbLf(<LbrMJ$F>X4@8q7*be*G7`~YkFcqvlj1r zohw|rMOVRjE>i-z>zL)xxx19oQ;vGcnKF9Ekz8Kw%tGvA`F7pTKiC(17DEl{K;OUR z{R&%Boh*IvTs*bxFD4(7?+Nd4R+CkG0G0*Mj~$w}%azhVgmHuT3_TGV)R5W5zN#A3 zog$F#TuB5y^ah3cj?Dsa^i%AU37nwOf41z2;mplM@po_Z2gO8$6*&j=0vDgabqR72`RKtT=Zs^v$czdQtb_H%Mir-ZCk z)-J>&65R;7>v4Mo;0;fjTdv~lzE*JtweCAGlPpH@q95-^vt89kPcmOgc|#!q5;w&O z?Q)_0#I2~@bRoJ{X(QBCogI}oLyBo2I-eK1HXwi=;nZAt-wWOn6TGni8eo1ry+o0umq+RBo?9+=2FH8px0cyD`Bg{`-cRfYa#k(r)A4p;uT2I?mSB6 zvBp(|cq4=gauw=J$NmH%4_XoV6-Oq2mMYSz!EcjBd0 zlk-+KAbg*ua(+yAm$MqGf`5XcM+DF%m*nYAIf-wRYUvsk+-}S$1eJ;Lg4+1Cb!3=K zjb8Q*cHyV;oTplv>&*4!SoFRlxmzl%<{wlX54q!^Y5iu_>+!oTt!R%^;dYvRLGF>< zCQ{dp1@BO!xMCqi6)`D!5wQk>2_gDwJm%vOgAY_|+_NVx2{)<6=1=;#rEcwZy)Y-2o%*itdb`W};$c_WozKr7u9HP6T$=}g5!ju4uryo4`EhPk+1d72Y9K=G zgV(J`o0ezfYKS7I73gUb_$`fNG&G$8VvVLk8%NeIe1f$bwNnpC+=#Up1Q-nZZ3^w< zH^DJk-ZU);uETYnOy|7ICL)x)F&451&R{lxU#ie7(L1sxg0)rUJg-*_{ z^cdI?2x>$W6B0(-6rLMTMGxo(of|fGV4W^IaH%);K}g-};CRYt#Q7Cza6Iu{{_FFm z+t?lFLqZn0-qC>uh`^fMzBBq~Quc-`e0-RmJJxu}^#?{!i*#@}yRCfD8V9HDAA;R_ zJmu6u1IS6(=EvVRfLwd@%;SM{CC79VGGtArP>j=VLQmw4%?JWJ<;@BXjs~Q>ElPco(m5{r$JvMh`PqXMf zD}fnOV4)bvemr+&1b#7^Sy66RKG7}9y4kDEmLc#d>6u~0U;|l(0~Hd#V4LoKwGE#r zdy{Ps!%l%>seGwId`4L+>QGmRFsQLxfW8nz@|bUzd>2|SmL!Cq@+2K8_95(! z4x}8LzyA`pRiZC>tB+(`Z{|zI)V<3KSFe7VQ~NS3jrQ4LZoNue;0Jw?cUZdKW=CX(la?gzU_v(4Me8lGO1#~y>H;0BPT zMuiB^xyx0?Mu_3u0nkZ?B!h1;2|4WKdV=Q?>@6&AWNzV8{}0Xa8l;RDtFv3|D3w_h zsU%jiKXsTWOmF&W0*LtApw3J!hiX_7kG8B=_ zp)!=ALZ%~QQIRq8Q1|fFC`-@oU1{&}8tul1~R{%I{|@BRJm@4l|j`2M`E8@IHC zuZE3rj>hPh*)?yX6rXx$ylS|n===0_E%<~a{+B^K8df+B2v(sGMUjWx#ZlP2Vb829<;(>*+(xvy0Zr3vb&3H z^XZ<-3^S06DisZ!9RK?9wOF-D`_w_D0`5C^FZCc>u9|;P)NbQE^%(vzk2oJEtRI#HS}I6kUVh0Z1>RI zp4snyabh|}2f}FrrsiXr)iL+sx%ho|7gb)b+5S8s;?+aj(NxuywULsQMRZ%dXHU7T z`Gnv#_Sn?dz(W1CS5JB}B>bj>MJUWZoG;n?#{t4?62EjgWgDvA>9Vp$8IN9Vuhu+u zL*^^@m)XQiaqZ64BGz;_XiXCPpO>O=yxIKB=!MqNO;gvzybtFA5L7LwckX3m*V?yT zTOM|eWL2?+L{1g)C^9OPVg&2dyW*g!u7S?OIc7Q!mTM=SlCj^EBY$9J%Fz;{tU-J6 zT1N4#`YDBmUL}+XRZ`nkitcTfS6Um9BoEh^tXb3VrAW{ZlY?zh$HmY4=-k?}`?i$5 zVNPv2e-KSf3!9#4;Qk|AXRgAbX^K!4#k{MgWY2!cDYluln4w7C3>)`1| z3^0s$D>dIwTEJ}Ljy>hAf8N~-A)E8A!$e$<-iP_@#DGvi_P&w_Fl1q*M6+}S*GBZO z+jVR@uI`*YI)f5tb#dMD;3>3RB1JsUtA&kRF@HL?wl)cEDhMVyKIt|;|M)dGZ+ZH( zlbMkShjIS}g#biPGCl2AvzhnSk%l|2Bx9~Y7m@D5>|eBO>nquhTy>GV(!a32(2FTp z84X>i!O`@fV;ue48;YTb$!a~pG4?Umr&u1Rn#wBN;+(Asz*S^|R z`>x!{&$I5)#?1oa-48sU7uF`LnrB(5wO%oO8hoFlw&-I_hHhPrmq+E6$AOXVxx40! znEi~%Dwq7qtx=Fr96Hv-Mz_A0=n0(Kw>K5t+ZogEg0X<@L+JtTGud7jugm<>#sIx4u307I{>xNAscIj;~cQ&59rB zo;Y5xAqm&wQ5j$Dyp~?0F+I z+33KGPeDD$f7{6ew?}Kx@2~JPq)LfBo*!7d@FOjR8J z7T}T~%r07IW&R$%O=t6-wdF+rw2n<~PPBu6_YEjYC%6*JTlRmnyaDdJ>bH|*si&YZ z(MjvxuKX;O!=TKJfrC+vs&ZtW%a4qP^7rgaxoGZs6N;n9i)WIuo!bBS!dZ)vh0~$; zxR)k~Neg2on_n~aoWdXU({D~*inLXGmnafZe^@8HCv8q`pyqzeYzs(jTf53Hu4ljm z{4=h%l0Qo9*B_U=6pC4vYRe5;bx5{A9P*wfqURvGp^~lco!$i9my3hZ|Fano>G@}Y zUCQF8m~Ow$4uMK;ulqc^Ymy^Q7Yw6bFDMk_5ie^hDG~wahPF-ZQ`Ooi8J%Ubp{>7P zdP9g6sHhlZNeid09(7tL%QUO{=TcR1v(+lHe_L^7-KKThPi>JLnT_X<@S@t(+~R|b zPpUJHfMHUcOC!V&ca{1P)XuNs7JE~tBc9zNlnW&IzdCQ{aE?32f|;a)!eG zI`@v#FYwK5uc#ewx*z!kP2{XbLz5X+qsk&ocHi|hKZ53_1iCRUUl!2iF>)*OzWr_# zMe*)pptD|<03r5O!ox5FrSumxbX>fo#mYL8gR-DwPxeOvl5#)vDESboQFQsSm^NHZ zxdiTCvtSPGimC*)u*(|{6`V?8{fg|?t18-tsxngQAQTsOk*J$f;R2O z#@%u96m$)DT2p%3?;U-=iOML{^>sDLt{yqw`}PHpf$kBuVoPLoeM*xwzbw5KYnMmF zofK)S7))uo_noh4I*-BI|2{qpXqfA4sh#K84EY!EESkffu5~p!1fcAB6I3YS(yvoB7yV&S}2&-nxP9Gl&+dchjx2 z(w1yTxt9PcY-EFnX7%nWGqoZYPk?uew{XK;W}m`ifGrLdPxmZ)R2?Gv+8AxV%_ccD zcV=gaAZ>o;Ywhd=gyx1&V+zAgL?Alqli8vq009Q$(j+S)X>qemi-DjS{G#&;nMD2} zl>Fc8e>2!(m$x)ed=`Fd@Nl4>)71Iy9y8h}>30wKeGfLD-!u8nMTdWW;!QHTsM`E9CxF;0V+fWkZlc zoDqJaayHG*1tJ6j5cGd7@}Z@knSFLqiA9xY2-mkrwr%X$@#y#R%&kz=Y46|KlW7fG zR1W}HE3%_R=#j>dCcXq)OOTlFJLti}P?dSCiC+bHrze!IuP$vdSi#$|pJT=4m%=pL zha8mM(EGj)Jgj5iA?TQ_o}QzvDX^9N;6dvrj7k1vHfg6+Ul29k5~2p700_PDe^os7 zsZNnhKs3z~Au7o#C{1rRP}#m!sVHI@&LRg@Z()EG6Oe#{~~}NhhPh)xZr@QViqr&(kr7dw%VE ziAE7)QCJUnm(19vX9BWz@URX~8a0GgVrII1`8T3MAb}y_5NBDvWP21_`062K;0Jep zpLZdd5*fOV;fR;be&CF&&~~6e~fky$M}H(96WO?IzLuuwcLcheBarH0rP5T zU55l&?q6I&P2G#BYW0@96bcYfe?cv{6xj>DSc7ILVc)dbv-jqK4+9w`;fgC{%Qjyi z8RVz2)g159#ED}4C|sZ0YP0rHbD>#5^BmFGfW2k&dJ4p{w*d>i)e&n)OFTv`JmHNK zU=E$}cow||q-PP3p2;sAz?E54H$fVetz4l6xsy``Q`$OyxP}hj6xG2}=7>Yg_*OTqNv48zLyNnlTnjhm9#$p#BLCyT= zRiBmZ8Zn@7{##Q%bB!oS!!b~;2FKi+nwGBa5WYh=khDFa?5=sPOwy1niWik zBzR0fZe=~PoR_I*gRjTKHHQp;Y5}f>3A*l%qhR~IOsH^qy+erLb&Yp*O1#LVPB0)K8diiJuLn0aEXWk#7Ok%W~HxFx9q9_!d1KR#oy5*)<}z8xW+x|<~TLjR$*K*IbkE`1=v=?)`?TaQ&yr}_9%?e{{sUM zo`~+&cXYdDqMD>Z#Ep;qFJh&j&Qjq!UQwY`%`z;i%oG)k9pNZs6(*z;jws6rvo03* zp8A`BKWS1^GuQR>JbR9RAD${;Dod~NoP=enR0}KM-A6<4CMk8r-d>)V5w-3p@^o9H znRgQlSGy_0d^n_p;eC=PG;XloH|tJX%0d>KK>LH^V!XHD)MtyFOC*tqUdryI6j4nm z>K!1c`-}YUNw44=>F!**3aTBE`t0{o_&0i_6Vs^i8fqj6lVcKmr;ZhEjo54qWg-Cw zhFZlXFf;%4J!DKEoD90zOzs#ctaX5f77;L=?8Mvs*3bMI+?Ff?Rs^uz44zeJaezS^ zw&sV`wPMvBJ&Wl71vG3oXS_Qm1Pr{z59C&GN!naqS4#LQ`hn!DJv_<2$WU=6i}c}v z(VZ@RnxFvfPSP>*ejg(90ZDKKqW%|{iH7pIJ{W8qYjQp1%8*_bAZD_EI+yS0VU&A8 zCX@*Ah|Nq5)~Un2lNt|*-Cvy0f%eTh?Lm$N^QM|2lXE(fEXhP^DtzvJjx**8)t3KQ zbIz(oX}7$wS$bYaCCu%XWH$IbL(rSN}VS$U<6D$FK_#(?$ zQsOVe*;)O(pN|3Vj-yatg@MkhioqXVObkD^+#7hX?)km(wHL7Q)gUt0+7vLw_B81r zeHrLTyf$$$2QGO`$C&&pI4K%jF)1sL}C~m$ilAcdV>kbx-Ot3i^e= zKC``@p|f+QEWowhAPFHy?^zejU%5~-nZU9-yqtF}u|@xBf86x=V{a`$oWc+N(WQ5A z-t`ZUDCUpXYrwc_XIdUAGbDQFe29#C;l-q@EitUU-L?OQm-|j1erYvvP;>tMjqzC+ zPMvS&G@00H=*^&S?xb~0`fO{Kbsw#XcfMi7%%|-O$Qv~gyT4X{%F&Y%P5*`fj<^vU zkFD26QE!`_9w+sdr_NTo)b%#zp1m9{aSiM`@_bOgoQFK&-TmNQgt!S7$fm$u1sjyx zqCp-eG|g~PQ(>t3LdgaP(&N|s+SKW_`Ob_0&}V{FS9visXfJhCd(BU{l4XmxHQ*-_ zmKDqSQw|IiSGKD|n`ULE(75AsnloQV+MW zdO!7;97CSc#-Q}h!tlZrf(*O8xk1M{x=*Wy28}^Oc&K=OOoP7(axbseY`ZYlQK;n} z>t~pmx?!p)#rRRu{8&WE4fBQm16eS{i!}@sH8L!t>aMn#%jsfZU|I#4L&>d(ddo7e z-#+WfP`@FwY10;-{@3~m;}%Ua zK7&@Qn6f_$J1{Cak*{1<_`0sr-JV#GxJj*=*}jawk39rccs>CfTz>t?^7YxL7GQix5|S#H9CvEt*1x2^+3;ItS-UsmH=AfR|%^Ca;ApoKu96HrBnP{ zI=^}nB`_T@w^u5fTjM#OqfQpU(4o=v2TLuyQGTd@;^m%#NXd-msz)xn*g-#EF%m`x zX0O`?NZGcAppWGD+MrJgQ6YPxT%2dPdzhUUoV({)IF zULf4u9K1?oRxKYi0 z8SA}4>9k>}8SAaC4zC3iuizOW>`KP(WNFwPg;Bc4k-f+369QRVyDu$$AZB#zuJjK& z?{U!RX0`lwu0Co?hEFGnAUS-qvBkF}X4)Tgiz?WxBM#jE%|Gs^C9Z$z57(csFq%%0 zJ#(Qs;}X%MOr4PB7#7Yln6}Rk3U5p98iFR(lb1diV?&+~a^nkt3NjSzcrFdbnotHd zRXHsC#&F&#Ny1+%l^}br^s7h|LwJ_IZSHfi$8KL*MupHksd6zt%T$%(!Cdli&8p#i z4afdJF(fk8uKHhc9ow1|2(=<&mi<<>h0%w|nACrTfB|TT z%1+g!C-ZPueD!|P9fK8@^eP-k++&=9Hdbd%(SWvCey@JZC3if-hEE44N9tEUIdGx4 zc%xSttI9393-6*WvmZb{&@CXDFW3Cgp+b8n8Hz&k!osQ6uS@X0OMURt1y4oc9%85y&is#>(NCCvA!vg! zL{LWd4V4!cZ)d<#`@M@a{UK~6o5B`yv`p&>dNDRY#&lNh3Ypu}MWo*dZUVo35MD>K z=t;swU6OyLBnp(;KF&Vlowjat$fRskhLu8+7zTDhDB;N~m#TKoij?U!gTUVNiubkVj5I|@-_J0Prx-}U!v6`^HD*q1X?CEwTm zzEvqzJr2R&7=p$q&gWkGUuP$Bg%eNO2l0dHr!AjCx-)qkuJ*dgx?1M?HEy<7)z~ zUm+luV;5fT8eJ-Oc66EN*IF4RALpAFONojTfe+h4((_9L@xh{@L>mktZ{PXCX?hx4 z1}>m5Y;rTP;N=E>xp?mqZ2peS($LH7+kT+SoiQh7^RB_FU2eMTJZVyek(}CIHPECJ zEtI$SjT<(z|AAVP`nxra$SlfPl3^=JB#z>6h(&6*8KAWR?rb!aaC!)!waMW}b**~o z^{j6MHo)_Q68(4j^_6e$7aAs?@WK1`A7&DSQh+XpfAH=bKJ|6 zh5c|E4l-#8lM9gVIL<8FAHR`8n%V@oFA#A^Pk)Eq6JwnLLRqSnxR05!W;-eNLLBVD z>WOiFD>%G(lcg@Zc?oiT+eSS)>Ux$pSLQGh5P|x*D4zaG#V%MXaY<7|%n5e@G%44= zS>QF1HU*=tTL7RE=4~{iy;oCd=pD34Z)yx>@&N6w6My?mauC#q(qEWwAWD-bpQ_P? zvz8(xU&}Y#Io5_Eheeu3`2rE~qo1t|J@=W(U~Q$nTPTznhQ;%oB-3I|Md{0+4CAI# z>h}fqub`|OLhvJ%egQ>6B1xUjpX8PnXQ&ZK3CatOjAoDQTI136ZPvnk?LpM+dGGgJ6}&ax_((W%ky#j$CJmu z$$cy~Z+`FU`s&fw;^6_|1uZkRE*`4Cd&7B!UupHG3qHjMTc84IU3ARR{20l~`5Ux*A=<)IX3@i-pZKO2J*3x>B@rC3(0P@}s7X;zcO`AnIIz9Su_ zaoQ?fvDEr1a*RnZhP-`+AC&?eX#oSTd*A>kj-nFbp1%Kqzuo5Mv(pC+Y%p&o4sorz z=mAG6{d`F29a)$4gS*6!cgXLguF+KRIKD+)X#L1A<+p3DpWg7HZkOxhlX+lkUMY{y zJS()?SH>^gmX=Y^Z6M~1>1_1uoh>5Yr!mb@0Rd)kn`ON@(g+i8bc zNyR8EKX8!3d%6!*RQk6XybG!gKz{W|_F-A2H|G~cmijQ# z5BL4zC$TKS{A{j6D;rVre7$KpG)%2OZ)K-=4?|@Y(86)xyfWdTU>&(0a_UmZx$tk4 zu=FVDFm!AT96F14VDN?q+bIZ@FR3c2=o?G?#uyVW)iiv+R)X1%-X{;!44(Lom`#XC zm#VW*W1HN?6hkJ44%Ih3=o?UDj(C9WPT%<3As%^;haRPQc>LuLHVwArUd5m&Ka{2H zus*_Pwd6pnipO5R&<;394|pWyj=K1i5W*w#*eAVk`x`Q*GT2^Yd5;1huRfu2bqEtW z<-a7`X`QB{p)?9y3lGrrsnaO5m!sdBfR%9V_A8~hy?z+GuXu5t|2;}>qND4~+~lcx zBiev#@#aW9&{Z>*66q(Vy%y%du${_6b4^TLd$In#t*@~*pZdBxP zvS@y+y8OYK6%;BxOR}gR&W&4Dtte{rFs@*!%~lRR-l7A0*RIqJrhIM+M&P=#Fnv2c z3$H@lX)4lY{msmgZN+Sj4SxOHfg@(^3sMD)t8Q&MvS%LSqT*1!FsAF-;d6OUY^Hps zX~f8LmWNx#?l^HQu8MuG+7to$1iAwa3$H&H_v6f&M1OY=1{&Omet`mvgGI~3Bjvm3 z{3=*jI@T&S$}-&8cukr?omo;lMn1pH-Q(BAm!>Kld?4(YJ_%E%e=M*+l|s|~gz@%K z`WeQAo0|Ro{XGbQasyS09rb1LdPcwOnGVu0cgX7FePcv<=4JVEyO#$ZZB6cZpB)92bDIQPjH3LZZqOa+@ zgobhwrS1x}vDbnZnYcSnm)3tux!2X1l1Ps3NNk}V#V~E+lc#Bm572_z_bPg=-OWfs zm9jXdr#gY(rLoO~zgjbnEX6Skl)|g;JNL5TX}i(Zi>BI5eK^%t0|~iqA&at^G`^?9 zThYB;v9xeA+=KzG?iaYncZuI+Dh^&^wQG1ny6JaQZ{B|7I}+nE_14Ul0tVaWrZcfS zyxbZ?YJJI~heKvSN7cZ7+8hgfdj0PDuxybpFh!ai2r-LacI$eRM!D08@bE*xj5 zY|W8$`!<$9T;Q=$d#!`!4n4jtJei6A|tS_b-I zsb=S2Ua56KRC3imJzubXDevb95A0(qJr|E(_I0ya`Ll5Lmhi`w_vjA@u;|`*xX~oN z9sWR<7i%}J6#U$vo6AWhZqpk5!#+3m`YKE;`+~#qrsvm5I~ZMFCzmrz=itvFg3Wcx zYo$t832l8&8yJs)kRw;e9@ApPwQlGhh8F51$~TKL-Qn44n|_lzBteY&QQ>|g*g@CT-&UF|DM;!9P|_<$ zW@riTFHl@vO_pMp5pD6e*@2#~(mRfC^&I

0Q{&esn9=SKZO*TMF;#6AV^3p;Qd8 zta4^#*m?Xw)HQ~Oq02A-=ul9y0D;o+mN2=sey6d5C#d6YluE_J$U#m*lvfUM=juQx$VtIU1}-H!4-~03uPQ$@)$N zzNCTBLyys(JOFQca30cS6wdSdD{K`Sh48bP>x3jL)4C14`;}RKMBxlH?PxRUtdyf! zw2ocFw8&9)sgv2MHCR}8;VzQttzb)S>jah9Hkx*!d#-_yWth%JJqg7X zrFgf%XsS--Ud1_NDAMcw!Y^HRjE$uuEhVaAPnQpM1=qHHU#Pc++V5<&(;FQKCBMaE z(T8Bt-I8`ZNV*kDM~SNESajL6exzE=DRx=#v7DIEh{bu@+n^YAj@LFKFv(i-F}L9pCTpp%$ORPx6C~J^qfV=G@O?T z7PGx-={^RQWH&z%lbkZt%Gc9QiJBIyl+&F{eDX)3naO+h4*RrDWsNwN7F1eBd&Aw> z}u36xGxlO1X~y?9VGGxMHoOJFNF|2oE%A|=s2(M!rENNE^{Krux9z)d{QjVg z5x9b=T{GXc-%GKB*L>bNGkzhmcw4Sh`x+8!;FdV~zGXLP2SdQ3glf)vthUS9d#zDr zlHf`SU8~6J{d61sd{iltqKybK-$*SBh(GZ=UY%;dx*u}Puo@II$7J>sWd|NMg$el^?rjn;5=KVHGoQTyjx7yl3mpA@-OotU^Eukd$w`RlWM z6$IhO1w-_Rf%)-@?sl%fKI@;$|MT$wS$aSA#{Y|rXD4~yXvq@FNwvMZ_5ay~|Ck_R rv;Qv};Q8YouM^Dv#X%(7`F*G8O4(%AWY=ph!GCH>+I!RY96t9SOfT|> literal 0 HcmV?d00001 diff --git a/docs/images/scopeAndContext.png b/docs/images/scopeAndContext.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8a1d0a28feaf1faf7e03516bdf95e3c81d9949 GIT binary patch literal 22633 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

%*oSNdw%kw_Gr~Sw$dD(l5 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 VF*J?@|L_ | __ -| __ | __ +| User Interface | Provides the interface to register, play and check participation history +| Business Logic | Automatically generate questions and corresponding answers from Wikidata data. Manages the time frame allocated for answering questions +| Database | Stores information about users, games, questions and correct/failed answers +| GatewayQuestions | Recover the needed data from the Wikidata database +| GatewayService | Facilitates communication between the different ports of the application |=== - -If you use a list of black box descriptions then you fill in a separate black box template for every important building block . -Its headline is the name of the black box. -**** - - -==== User Interface - -[role="arc42help"] -**** -Here you describe -according the the following black box template: - -* Purpose/Responsibility -* Interface(s), when they are not extracted as separate paragraphs. This interfaces may include qualities and performance characteristics. -* (Optional) Quality-/Performance characteristics of the black box, e.g.availability, run time behavior, .... -* (Optional) directory/file location -* (Optional) Fulfilled requirements (if you need traceability to requirements). -* (Optional) Open issues/problems/risks - -**** - -Responsibility:: - -Provides the interface to register, play and check participation history - -==== Business Logic - -Responsibility:: - -Automatically generate questions and corresponding answers from Wikidata data. -Manages the time frame allocated for answering questions. - -==== Database - -Responsibility:: - -Stores information about users, games, questions and correct/failed answers. - -==== API User - -Responsibility:: - -The system will allow access to user information through an API. - -==== API Questions - -Responsibility:: - -The system will allow access to the information of the questions generated through an API. - === Level 2 -[role="arc42help"] -**** -Here you can specify the inner structure of (some) building blocks from level 1 as white boxes. - -You have to decide which building blocks of your system are important enough to justify such a detailed description. -Please prefer relevance over completeness. Specify important, surprising, risky, complex or volatile building blocks. -Leave out normal, simple, boring or standardized parts of your system -**** - ==== White Box User Interface -image::05-UserInterface-Level2.png["Level 2 User Interface"] - -[role="arc42help"] -**** -...describes the internal structure of _building block 1_. -**** +image::Level2-UserInterface.png["Level 2 User Interface"] +[cols="1,2" options="header"] +|=== +| **Name** | **Responsibility** +| Homepage | Allows a user to log in or sign up an account +| Gamepage | Allows a user to play the game +| Participation history | Allows the user to consult the history of their participation in the system +|=== ==== White Box Business Logic -image::05-BussinesLogic-Level2.png["Level 2 Business Logic"] +image::Level2-BusinessLogic.png["Level 2 Business Logic"] +[cols="1,2" options="header"] +|=== +| **Name** | **Responsibility** +| User Management | Manages all aspects concerning the user interface +| Question management | Manages all aspects concerning the generation of the questions +| Game Logic | Manages all aspects concerning the game +|=== ==== White Box Database -image::05-Database-Level2.png["Level 2 Database"] - - -==== White Box API User +image::Level2-Databases.png["Level 2 Database"] +[cols="1,2" options="header"] +|=== +| **Name** | **Responsibility** +| Users Database | Store all the information of the users +| Questions Database | Store all the information of the questions +|=== -==== White Box API Questions \ No newline at end of file From 2d92ff03c17987026f1a8507849c04668a7284b0 Mon Sep 17 00:00:00 2001 From: sonia Date: Mon, 26 Feb 2024 18:10:45 +0100 Subject: [PATCH 31/82] =?UTF-8?q?Arreglos=20en=20la=20parte=209=20de=20la?= =?UTF-8?q?=20documentaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/09_architecture_decisions.adoc | 45 +++---------------------- 1 file changed, 5 insertions(+), 40 deletions(-) diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index a3608816..4a3116fd 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -3,43 +3,8 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-design-decisions]] == Architecture Decisions - -[role="arc42help"] -**** -.Contents -Important, expensive, large scale or risky architecture decisions including rationales. -With "decisions" we mean selecting one alternative based on given criteria. - -Please use your judgement to decide whether an architectural decision should be documented -here in this central section or whether you better document it locally -(e.g. within the white box template of one building block). - -Avoid redundancy. -Refer to section 4, where you already captured the most important decisions of your architecture. - -.Motivation -Stakeholders of your system should be able to comprehend and retrace your decisions. - -.Form -Various options: - -* ADR (https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions[Documenting Architecture Decisions]) for every important decision -* List or table, ordered by importance and consequences or: -* more detailed in form of separate sections per decision - -.Further Information - -See https://docs.arc42.org/section-9/[Architecture Decisions] in the arc42 documentation. -There you will find links and examples about ADR. - -**** - -[options="header",cols="1,2,2,2,2,2"] -|=== -|Date|Title|State|Context|Decision|Consequences -|08/02/2024|Language Selection for documentation|Accepted|The project requires documentation to be written|English, is chosen for its widespread international use|The project documentation can reach more people, but since it is not our first language, it may not be very well written -|08/02/2024|Programming Languages|Accepted|The proyect requires the develop of a web app|React and Javascript, JavaScript is selected due to team proficiency|We need to learn how to use React, and maybe other languages are better suited for this project -|08/02/2024|Database Platform|Accepted|The project requires storing user and question data|MongoDB is chosen as the default database solution|Learning MongoDB is necessary -|08/02/2024|Version Control System|Accepted|As a team and scalable project, version control software is needed|Git-GitHub is chosen as it's a project constraint.|The choice of Github is dictated by project constraints -|08/02/2024|Data Collection Method|Accepted|The project requires dynamically generated questions|WikiData is chosen as it's a project constraint|The choice of WikiData is dictated by project constraints -|=== \ No newline at end of file +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-1 [Architecture Decision 1-Language Selection for documentation] +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-2 [Architecture Decision 2-Programming Languages] +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-3 [Architecture Decision 3-Database Platform] +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-4 [Architecture Decision 4-Version Control System] +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-5 [Architecture Decision 5-Data Collection Method] \ No newline at end of file From ab414d7de6862c57f6d88d917fad5bfe46953ee4 Mon Sep 17 00:00:00 2001 From: sonia Date: Mon, 26 Feb 2024 18:16:34 +0100 Subject: [PATCH 32/82] =?UTF-8?q?Arreglo=20en=20como=20se=20veian=20los=20?= =?UTF-8?q?links=20de=20la=20parte=209=20de=20la=20documentaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/package-lock.json | 230 +++++++++++++++--------- docs/package.json | 4 +- docs/src/09_architecture_decisions.adoc | 10 +- 3 files changed, 151 insertions(+), 93 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index ae39a379..46d5b7a3 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,16 +5,20 @@ "requires": true, "packages": { "": { + "name": "docs", "version": "1.0.0", "dependencies": { - "gh-pages": "^3.2.3", "shx": "^0.3.3" + }, + "devDependencies": { + "gh-pages": "^6.1.1" } }, "node_modules/array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, "dependencies": { "array-uniq": "^1.0.1" }, @@ -26,17 +30,16 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true }, "node_modules/balanced-match": { "version": "1.0.2", @@ -53,14 +56,19 @@ } }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -68,14 +76,16 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", + "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", + "dev": true }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "engines": { "node": ">=0.8.0" } @@ -84,6 +94,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, "engines": { "node": ">=4" } @@ -92,6 +103,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, "dependencies": { "filename-reserved-regex": "^2.0.0", "strip-outer": "^1.0.1", @@ -108,6 +120,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -124,6 +137,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -133,16 +147,17 @@ } }, "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=14.14" } }, "node_modules/fs.realpath": { @@ -159,16 +174,17 @@ } }, "node_modules/gh-pages": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", - "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.1.1.tgz", + "integrity": "sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw==", + "dev": true, "dependencies": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", + "async": "^3.2.4", + "commander": "^11.0.0", + "email-addresses": "^5.0.0", "filenamify": "^4.3.0", "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", + "fs-extra": "^11.1.1", "globby": "^6.1.0" }, "bin": { @@ -202,6 +218,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, "dependencies": { "array-union": "^1.0.1", "glob": "^7.0.3", @@ -216,7 +233,8 @@ "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==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/hasown": { "version": "2.0.0", @@ -263,9 +281,13 @@ } }, "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -274,6 +296,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "dependencies": { "p-locate": "^4.1.0" }, @@ -281,15 +304,11 @@ "node": ">=8" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -323,6 +342,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -339,6 +359,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -353,6 +374,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, "dependencies": { "p-limit": "^2.2.0" }, @@ -364,6 +386,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, "engines": { "node": ">=6" } @@ -372,6 +395,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "engines": { "node": ">=8" } @@ -393,6 +417,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -401,6 +426,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -409,6 +435,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, "dependencies": { "pinkie": "^2.0.0" }, @@ -420,6 +447,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, "dependencies": { "find-up": "^4.0.0" }, @@ -458,6 +486,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -497,6 +526,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, "dependencies": { "escape-string-regexp": "^1.0.2" }, @@ -519,6 +549,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, "dependencies": { "escape-string-regexp": "^1.0.2" }, @@ -527,11 +558,12 @@ } }, "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "engines": { - "node": ">= 4.0.0" + "node": ">= 10.0.0" } }, "node_modules/wrappy": { @@ -545,6 +577,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, "requires": { "array-uniq": "^1.0.1" } @@ -552,15 +585,14 @@ "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true }, "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "requires": { - "lodash": "^4.17.14" - } + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true }, "balanced-match": { "version": "1.0.2", @@ -577,14 +609,16 @@ } }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true }, "concat-map": { "version": "0.0.1", @@ -592,24 +626,28 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", + "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true }, "filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==" + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true }, "filenamify": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, "requires": { "filename-reserved-regex": "^2.0.0", "strip-outer": "^1.0.1", @@ -620,6 +658,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -630,19 +669,21 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, "requires": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "fs.realpath": { @@ -656,16 +697,17 @@ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "gh-pages": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", - "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.1.1.tgz", + "integrity": "sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw==", + "dev": true, "requires": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", + "async": "^3.2.4", + "commander": "^11.0.0", + "email-addresses": "^5.0.0", "filenamify": "^4.3.0", "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", + "fs-extra": "^11.1.1", "globby": "^6.1.0" } }, @@ -686,6 +728,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, "requires": { "array-union": "^1.0.1", "glob": "^7.0.3", @@ -697,7 +740,8 @@ "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==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "hasown": { "version": "2.0.0", @@ -735,30 +779,29 @@ } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "requires": { "p-locate": "^4.1.0" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "requires": { "semver": "^6.0.0" } @@ -779,7 +822,8 @@ "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==" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true }, "once": { "version": "1.4.0", @@ -793,6 +837,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "requires": { "p-try": "^2.0.0" } @@ -801,6 +846,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, "requires": { "p-limit": "^2.2.0" } @@ -808,12 +854,14 @@ "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==" + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -828,17 +876,20 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -847,6 +898,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, "requires": { "find-up": "^4.0.0" } @@ -872,7 +924,8 @@ "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true }, "shelljs": { "version": "0.8.5", @@ -897,6 +950,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, "requires": { "escape-string-regexp": "^1.0.2" } @@ -910,14 +964,16 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, "requires": { "escape-string-regexp": "^1.0.2" } }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true }, "wrappy": { "version": "1.0.2", diff --git a/docs/package.json b/docs/package.json index 4a13c872..4f59b6f3 100644 --- a/docs/package.json +++ b/docs/package.json @@ -8,7 +8,9 @@ "deploy": "gh-pages -d build" }, "dependencies": { - "gh-pages": "^3.2.3", "shx": "^0.3.3" + }, + "devDependencies": { + "gh-pages": "^6.1.1" } } diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index 4a3116fd..223bd296 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -3,8 +3,8 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-design-decisions]] == Architecture Decisions -* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-1 [Architecture Decision 1-Language Selection for documentation] -* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-2 [Architecture Decision 2-Programming Languages] -* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-3 [Architecture Decision 3-Database Platform] -* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-4 [Architecture Decision 4-Version Control System] -* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-5 [Architecture Decision 5-Data Collection Method] \ No newline at end of file +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-1[Architecture Decision 1-Language Selection for documentation] +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-2[Architecture Decision 2-Programming Languages] +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-3[Architecture Decision 3-Database Platform] +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-4[Architecture Decision 4-Version Control System] +* https://github.com/Arquisoft/wiq_es05c/wiki/Architecture-Decision-5[Architecture Decision 5-Data Collection Method] \ No newline at end of file From 1acf8a158c9e465da78f8c024ba0ba6a3affc3aa Mon Sep 17 00:00:00 2001 From: UO283535 Date: Tue, 27 Feb 2024 15:31:05 +0100 Subject: [PATCH 33/82] =?UTF-8?q?A=C3=B1ado=20cambios=20en=20el=20punto=20?= =?UTF-8?q?8=20de=20la=20documentacion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/08_concepts.adoc | 67 ++++----------------------------------- 1 file changed, 6 insertions(+), 61 deletions(-) diff --git a/docs/src/08_concepts.adoc b/docs/src/08_concepts.adoc index fff7b092..9de9a2a3 100644 --- a/docs/src/08_concepts.adoc +++ b/docs/src/08_concepts.adoc @@ -5,65 +5,16 @@ ifndef::imagesdir[:imagesdir: ../images] [role="arc42help"] -**** -.Content -This section describes overall, principal regulations and solution ideas that are relevant in multiple parts (= cross-cutting) of your system. -Such concepts are often related to multiple building blocks. -They can include many different topics, such as -* models, especially domain models -* architecture or design patterns -* rules for using specific technology -* principal, often technical decisions of an overarching (= cross-cutting) nature -* implementation rules - - -.Motivation -Concepts form the basis for _conceptual integrity_ (consistency, homogeneity) of the architecture. -Thus, they are an important contribution to achieve inner qualities of your system. - -Some of these concepts cannot be assigned to individual building blocks, e.g. security or safety. - - -.Form -The form can be varied: - -* concept papers with any kind of structure -* cross-cutting model excerpts or scenarios using notations of the architecture views -* sample implementations, especially for technical concepts -* reference to typical usage of standard frameworks (e.g. using Hibernate for object/relational mapping) - -.Structure -A potential (but not mandatory) structure for this section could be: - -* Domain concepts -* User Experience concepts (UX) -* Safety and security concepts -* Architecture and design patterns -* "Under-the-hood" -* development concepts -* operational concepts - -Note: it might be difficult to assign individual concepts to one specific topic -on this list. - -image::08-Crosscutting-Concepts-Structure-EN.png["Possible topics for crosscutting concepts"] - - -.Further Information - -See https://docs.arc42.org/section-8/[Concepts] in the arc42 documentation. -**** === Domain concepts User Model -- ID (Primary Key) -- First Name -- Last Name -- Email -- Password -- Role + - ID (Primary Key) + - First Name + - Last Name + - Email + - Password === User Experience @@ -84,9 +35,6 @@ Additionally, they can start a new game at any time and, upon completion, view t === Architecture and design patterns In development... -=== Under the hood -In development... - === Development concepts @@ -96,9 +44,6 @@ In development... * Configurability - - - === Operation concepts - + In development... From 3eafd630f15e6c8600c36d318eae8142084d08a5 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Tue, 27 Feb 2024 15:53:08 +0100 Subject: [PATCH 34/82] =?UTF-8?q?A=C3=B1ado=20cambios=20en=20el=20punto=20?= =?UTF-8?q?3=20de=20la=20documentacion=20y=20compruebo=20que=20se=20visual?= =?UTF-8?q?iza?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/3.BusinessContext.png | Bin 0 -> 23323 bytes docs/images/Business Context.png | Bin 0 -> 57085 bytes docs/src/03_system_scope_and_context.adoc | 65 +++------------------- 3 files changed, 7 insertions(+), 58 deletions(-) create mode 100644 docs/images/3.BusinessContext.png create mode 100644 docs/images/Business Context.png diff --git a/docs/images/3.BusinessContext.png b/docs/images/3.BusinessContext.png new file mode 100644 index 0000000000000000000000000000000000000000..05ea95b03565b942a29d01d75868388e6d4fb42c GIT binary patch literal 23323 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 Fe*yogHUt0w literal 0 HcmV?d00001 diff --git a/docs/images/Business Context.png b/docs/images/Business Context.png new file mode 100644 index 0000000000000000000000000000000000000000..11cc6a998840ce21a34e68be9fb22c29d45d7653 GIT binary patch literal 57085 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 Q2-^L-%6GDF8@>3y0JH}@5C8xG literal 0 HcmV?d00001 diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 40ed146f..0b1aee86 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -4,75 +4,24 @@ ifndef::imagesdir[:imagesdir: ../images] == System Scope and Context -[role="arc42help"] -**** -.Contents -System scope and context - as the name suggests - delimits your system (i.e. your scope) from all its communication partners -(neighboring systems and users, i.e. the context of your system). It thereby specifies the external interfaces. - -If necessary, differentiate the business context (domain specific inputs and outputs) from the technical context (channels, protocols, hardware). - -.Motivation -The domain interfaces and technical interfaces to communication partners are among your system's most critical aspects. Make sure that you completely understand them. - -.Form -Various options: - -* Context diagrams -* Lists of communication partners and their interfaces. - - -.Further Information - -See https://docs.arc42.org/section-3/[Context and Scope] in the arc42 documentation. - -**** - - === Business Context -[role="arc42help"] -**** -.Contents -Specification of *all* communication partners (users, IT-systems, ...) with explanations of domain specific inputs and outputs or interfaces. -Optionally you can add domain specific formats or communication protocols. - -.Motivation -All stakeholders should understand which data are exchanged with the environment of the system. - -.Form -All kinds of diagrams that show the system as a black box and specify the domain interfaces to communication partners. - -Alternatively (or additionally) you can use a table. -The title of the table is the name of your system, the three columns contain the name of the communication partner, the inputs, and the outputs. - -**** -In our business setting, we have developed a web application called WIQ, where users engage in a question-based game. -This application draws inspiration from the renowned Spanish television program "Saber y Ganar," providing users with an interactive and entertaining experience. - - +image::BusinessContext.png["Business Context Diagram"] +[options="header",cols="1,2"] +|=== +|Element |Description +|User | +|Application | +|WikiData | * Users authenticate themselves within the system using their personal information. * The application offers a question-based game similar to "Saber y Ganar" . -* The primary objective of the project is to provide an interactive and enjoyable platform for users to engage in question and answer contests, promoting both entertainment and learning. * Users have access to various metrics regarding their participation, including the number of games played, correct and incorrect answers, and time spent on each question. === Technical Context -[role="arc42help"] -**** -.Contents -Technical interfaces (channels and transmission media) linking your system to its environment. In addition a mapping of domain specific input/output to the channels, i.e. an explanation which I/O uses which channel. - -.Motivation -Many stakeholders make architectural decision based on the technical interfaces between the system and its context. Especially infrastructure or hardware designers decide these technical interfaces. - -.Form -E.g. UML deployment diagram describing channels to neighboring systems, -together with a mapping table showing the relationships between channels and input/output. -**** [options="header",cols="1,2"] |=== From 51d55dbf11fa6b888e9a2f076b2a8e49219e4a03 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Tue, 27 Feb 2024 15:54:43 +0100 Subject: [PATCH 35/82] Cambio nombre imagen --- docs/src/03_system_scope_and_context.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index 0b1aee86..7b3e43a6 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -6,14 +6,14 @@ ifndef::imagesdir[:imagesdir: ../images] === Business Context -image::BusinessContext.png["Business Context Diagram"] +image::Business Context.png["Business Context Diagram"] [options="header",cols="1,2"] |=== |Element |Description |User | |Application | |WikiData | - +|=== * Users authenticate themselves within the system using their personal information. * The application offers a question-based game similar to "Saber y Ganar" . * Users have access to various metrics regarding their participation, including the number of games played, correct and incorrect answers, and time spent on each question. From 8285b29326109a3527225ea1d99dbc58a2f4f34b Mon Sep 17 00:00:00 2001 From: UO283535 Date: Tue, 27 Feb 2024 16:02:12 +0100 Subject: [PATCH 36/82] =?UTF-8?q?Modificacion=20vista=20imagen=20a=C3=B1ad?= =?UTF-8?q?o=20leyenda=20de=20las=20flechas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/Business Context.png | Bin 57085 -> 64699 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Business Context.png b/docs/images/Business Context.png index 11cc6a998840ce21a34e68be9fb22c29d45d7653..8e15964ab2bf4e42fcf97872d2969282b9df7744 100644 GIT binary patch literal 64699 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 F{u}*GzQq6l literal 57085 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 Q2-^L-%6GDF8@>3y0JH}@5C8xG From b93d374a6da0b3599388b9d199e37dcf21cfae3d Mon Sep 17 00:00:00 2001 From: UO283535 Date: Tue, 27 Feb 2024 20:03:16 +0100 Subject: [PATCH 37/82] =?UTF-8?q?A=C3=B1ado=20un=20fichero=20con=20el=20me?= =?UTF-8?q?todo=20para=20obtener=20info=20del=20pais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/wikidataPrueba.js | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 WikidataPrueba/wikidataPrueba.js diff --git a/WikidataPrueba/wikidataPrueba.js b/WikidataPrueba/wikidataPrueba.js new file mode 100644 index 00000000..3d26a439 --- /dev/null +++ b/WikidataPrueba/wikidataPrueba.js @@ -0,0 +1,44 @@ +class WikiData { + constructor() { + this.baseUrl = 'https://www.wikidata.org/w/api.php'; + } + + async searchEntities(searchTerm, language = 'es') { + try { + const response = await fetch(`${this.baseUrl}?action=wbsearchentities&search=${searchTerm}&language=${language}&format=json`); + const data = await response.json(); + + // Extraer el QID de la primera entidad en la lista + const qid = data.search[0].id; + + // Consultar la entidad para obtener más detalles + const entityResponse = await fetch(`${this.baseUrl}?action=wbgetentities&ids=${qid}&format=json`); + const entityData = await entityResponse.json(); + + // Extraer la capital (P36) de la entidad + const capitalId = entityData.entities[qid].claims.P36[0].mainsnak.datavalue.value.id; + const capitalResponse = await fetch(`${this.baseUrl}?action=wbgetentities&ids=${capitalId}&format=json`); + const capitalData = await capitalResponse.json(); + const capitalLabel = capitalData.entities[capitalId].labels.es.value; + + const idiomaId = entityData.entities[qid].claims.P37[0].mainsnak.datavalue.value.id; + const idiomaResponse = await fetch(`${this.baseUrl}?action=wbgetentities&ids=${idiomaId}&format=json`); + const idiomaData = await idiomaResponse.json(); + const idiomaLabel = idiomaData.entities[idiomaId].labels.es.value; + // Construir una cadena con la información + + + // Construir una cadena con la información + const result = `El qid de ${searchTerm} es : ${qid}.La capital de ${searchTerm} es ${capitalLabel} y su idioma es ${idiomaLabel}`; + + return result; + } catch (error) { + console.error('Error al obtener datos de Wikidata:', error); + return 'No se pudo obtener la información.'; + } + } +} + +// Crear una instancia de la clase Wikidata +const wikidata = new WikiData(); +wikidata.searchEntities("España").then(result => console.log(result)); From a9aa05de16a92831a4f908f8a045b8c2e1de8543 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 28 Feb 2024 15:30:33 +0100 Subject: [PATCH 38/82] =?UTF-8?q?A=C3=B1ado=20consultas=20de=20pais,=20cap?= =?UTF-8?q?ital=20y=20poblacion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/consultas.txt | 29 +++++++++++++++++++++ WikidataPrueba/wikidataPrueba.js | 44 -------------------------------- 2 files changed, 29 insertions(+), 44 deletions(-) create mode 100644 WikidataPrueba/consultas.txt delete mode 100644 WikidataPrueba/wikidataPrueba.js diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt new file mode 100644 index 00000000..7eef00b1 --- /dev/null +++ b/WikidataPrueba/consultas.txt @@ -0,0 +1,29 @@ +--Consulta que devuelve pais y capital -- + +SELECT ?country ?countryLabel ?capitalLabel +WHERE +{ + ?country wdt:P31 wd:Q3624078. # Instance of country + ?country wdt:P36 ?capital. # Has capital + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } +} + + +--Consulta que devuelve pais y poblacion -- +SELECT ?country ?countryLabel ?population +WHERE +{ + ?country wdt:P31 wd:Q3624078. # Instance of country + ?country wdt:P1082 ?population. # Has population + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } +} + +--Consulta que devuelve pais, capital y poblacion -- +SELECT ?country ?countryLabel ?capitalLabel ?population +WHERE +{ + ?country wdt:P31 wd:Q3624078. # Instance of country + ?country wdt:P36 ?capital. # Has capital + ?country wdt:P1082 ?population. # Has population + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } +} \ No newline at end of file diff --git a/WikidataPrueba/wikidataPrueba.js b/WikidataPrueba/wikidataPrueba.js deleted file mode 100644 index 3d26a439..00000000 --- a/WikidataPrueba/wikidataPrueba.js +++ /dev/null @@ -1,44 +0,0 @@ -class WikiData { - constructor() { - this.baseUrl = 'https://www.wikidata.org/w/api.php'; - } - - async searchEntities(searchTerm, language = 'es') { - try { - const response = await fetch(`${this.baseUrl}?action=wbsearchentities&search=${searchTerm}&language=${language}&format=json`); - const data = await response.json(); - - // Extraer el QID de la primera entidad en la lista - const qid = data.search[0].id; - - // Consultar la entidad para obtener más detalles - const entityResponse = await fetch(`${this.baseUrl}?action=wbgetentities&ids=${qid}&format=json`); - const entityData = await entityResponse.json(); - - // Extraer la capital (P36) de la entidad - const capitalId = entityData.entities[qid].claims.P36[0].mainsnak.datavalue.value.id; - const capitalResponse = await fetch(`${this.baseUrl}?action=wbgetentities&ids=${capitalId}&format=json`); - const capitalData = await capitalResponse.json(); - const capitalLabel = capitalData.entities[capitalId].labels.es.value; - - const idiomaId = entityData.entities[qid].claims.P37[0].mainsnak.datavalue.value.id; - const idiomaResponse = await fetch(`${this.baseUrl}?action=wbgetentities&ids=${idiomaId}&format=json`); - const idiomaData = await idiomaResponse.json(); - const idiomaLabel = idiomaData.entities[idiomaId].labels.es.value; - // Construir una cadena con la información - - - // Construir una cadena con la información - const result = `El qid de ${searchTerm} es : ${qid}.La capital de ${searchTerm} es ${capitalLabel} y su idioma es ${idiomaLabel}`; - - return result; - } catch (error) { - console.error('Error al obtener datos de Wikidata:', error); - return 'No se pudo obtener la información.'; - } - } -} - -// Crear una instancia de la clase Wikidata -const wikidata = new WikiData(); -wikidata.searchEntities("España").then(result => console.log(result)); From 00dd5d60fad33e2fb57d7b0536791a6c12e8b0ca Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 28 Feb 2024 15:32:18 +0100 Subject: [PATCH 39/82] =?UTF-8?q?A=C3=B1ado=20consulta=20de=20pregunta=20d?= =?UTF-8?q?e=20futbol=20y=20estadio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/consultas.txt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt index 7eef00b1..39525d34 100644 --- a/WikidataPrueba/consultas.txt +++ b/WikidataPrueba/consultas.txt @@ -26,4 +26,15 @@ WHERE ?country wdt:P36 ?capital. # Has capital ?country wdt:P1082 ?population. # Has population SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } -} \ No newline at end of file +} + +--Consulta que devuelve club de futbol y su estadio -- + +SELECT ?club ?clubLabel ?stadiumLabel +WHERE { + ?club wdt:P31 wd:Q17270000 . + ?club p:P115 ?statement . + ?statement ps:P115 ?stadium . + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } +} + From a3eb0fd7b98936920a1b14bbfb186d6b8c7ab187 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 28 Feb 2024 15:33:27 +0100 Subject: [PATCH 40/82] =?UTF-8?q?A=C3=B1ado=20consulta=20de=20pregunta=20d?= =?UTF-8?q?e=20estados=20de=20EEUU=20y=20su=20capital?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/consultas.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt index 39525d34..40912a55 100644 --- a/WikidataPrueba/consultas.txt +++ b/WikidataPrueba/consultas.txt @@ -38,3 +38,11 @@ WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } } +--Consulta estado de EEUU y su capital -- +SELECT ?state ?stateLabel ?capitalLabel +WHERE { + ?state wdt:P31 wd:Q35657 . + ?state p:P36 ?statement . + ?statement ps:P36 ?capital . + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } +} From 46010862e1ffdad00a6d8103509e4b7b1ed97135 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 28 Feb 2024 15:37:07 +0100 Subject: [PATCH 41/82] Agrego a la consulta anterior que tambien devuelva la poblacion del estado --- WikidataPrueba/consultas.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt index 40912a55..4956ffd3 100644 --- a/WikidataPrueba/consultas.txt +++ b/WikidataPrueba/consultas.txt @@ -46,3 +46,13 @@ WHERE { ?statement ps:P36 ?capital . SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } } + + +--Consulta estados de EEUU, capital y poblacion +SELECT ?state ?stateLabel ?capitalLabel ?poblation +WHERE { + ?state wdt:P31 wd:Q35657 . + ?state wdt:P36 ?capital . + ?state wdt:P1082 ?poblation . + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".} +} From 4045ce80f6eb044dfd8ba9dccfd7c4ad1be009c0 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 28 Feb 2024 16:01:44 +0100 Subject: [PATCH 42/82] =?UTF-8?q?A=C3=B1ado=20consulta=20de=20libro=20y=20?= =?UTF-8?q?su=20autor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/consultas.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt index 4956ffd3..1924f5c8 100644 --- a/WikidataPrueba/consultas.txt +++ b/WikidataPrueba/consultas.txt @@ -56,3 +56,13 @@ WHERE { ?state wdt:P1082 ?poblation . SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".} } + + +--Consulta libro y su autor -- +SELECT ?book ?bookLabel ?authorLabel +WHERE { + ?book wdt:P31 wd:Q571 . + ?book wdt:P50 ?author . + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".} +} + From ebef01f306655758b923af085115ef34a607cec5 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 28 Feb 2024 16:25:12 +0100 Subject: [PATCH 43/82] =?UTF-8?q?A=C3=B1ado=20que=20las=20consultas=20me?= =?UTF-8?q?=20devuelvan=204=20resultados=20y=20=20consulta=20que=20me=20de?= =?UTF-8?q?vuelve=20peliculas=20su=20genero=20y=20su=20a=C3=B1o=20de=20pub?= =?UTF-8?q?licacion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/consultas.txt | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt index 1924f5c8..acf0d774 100644 --- a/WikidataPrueba/consultas.txt +++ b/WikidataPrueba/consultas.txt @@ -66,3 +66,34 @@ WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".} } + +--Consulta que devuelve libre y su autor pero solo 4 resultados -- + +SELECT ?book ?bookLabel ?authorLabel +WHERE { + ?book wdt:P31 wd:Q571 . + ?book wdt:P50 ?author . + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".} +} +LIMIT 4 + +--Consulta que me da peliculas su genero y año de publicacion -- + +SELECT ?film ?filmLabel ?genere ?d WHERE { + { + SELECT ?film (GROUP_CONCAT(DISTINCT ?gL; SEPARATOR = ", ") AS ?genere) (MIN(YEAR(?date)) AS ?d) WHERE { + ?sitelink schema:about ?director; + schema:isPartOf ; + schema:name "Steven Spielberg"@en. # Edit this with different director's name to see their films. Use the English Wikipedia title only. + ?film wdt:P31 wd:Q11424; + wdt:P136 ?g, ?g. + ?g rdfs:label ?gL. + ?film wdt:P57 ?director; + wdt:P577 ?date. + FILTER((LANG(?gL)) = "en") + SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } + } + GROUP BY ?film + } + SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } +} \ No newline at end of file From fc4e80bf4160b6318b298a2edadd6b7be3c071c1 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 28 Feb 2024 16:33:56 +0100 Subject: [PATCH 44/82] =?UTF-8?q?A=C3=B1ado=20consulta=20que=20me=20dice?= =?UTF-8?q?=20la=20ciudad=20mas=20grande=20por=20pais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/consultas.txt | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt index acf0d774..b481adb4 100644 --- a/WikidataPrueba/consultas.txt +++ b/WikidataPrueba/consultas.txt @@ -96,4 +96,28 @@ SELECT ?film ?filmLabel ?genere ?d WHERE { GROUP BY ?film } SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } -} \ No newline at end of file +} + +--Consulta que me devuelve por orden descendente y solo 4 resultados las ciudades mas grandes por pais +me devuelve el nombre de la ciudad, pais y poblacion -- + +SELECT DISTINCT ?city ?cityLabel ?population ?countryLabel WHERE { + { + SELECT (MAX(?population_) AS ?population) ?country WHERE { + ?city wdt:P31/wdt:P279* wd:Q515 . + ?city wdt:P1082 ?population_ . + ?city wdt:P17 ?country . + } + GROUP BY ?country + ORDER BY DESC(?population) + } + ?city wdt:P31/wdt:P279* wd:Q515 . + ?city wdt:P1082 ?population . + ?city wdt:P17 ?country . + ?city wdt:P625 ?loc . + SERVICE wikibase:label { + bd:serviceParam wikibase:language "en" . + } +} +ORDER BY DESC(?population) +LIMIT 4 \ No newline at end of file From ec537523e926a1fc1289cb4061fd7852f9f03839 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 28 Feb 2024 16:43:18 +0100 Subject: [PATCH 45/82] =?UTF-8?q?a=C3=B1ado=20comentario=20mejor=20explica?= =?UTF-8?q?do=20de=20una=20consulta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/consultas.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt index b481adb4..cf3a0d45 100644 --- a/WikidataPrueba/consultas.txt +++ b/WikidataPrueba/consultas.txt @@ -77,7 +77,7 @@ WHERE { } LIMIT 4 ---Consulta que me da peliculas su genero y año de publicacion -- +--Consulta que me da peliculas su genero y año de publicacion del director Steven Spielberg -- SELECT ?film ?filmLabel ?genere ?d WHERE { { From 48414805f15a4cbe778df05b2770d00ea6a97911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Villanueva=20Rodr=C3=ADguez?= Date: Thu, 29 Feb 2024 10:36:15 +0100 Subject: [PATCH 46/82] =?UTF-8?q?A=C3=B1adimos=20los=20cambios=20para=20el?= =?UTF-8?q?=20nombre=20de=20la=20aplicacion=20cambiando=20la=20imagen=20de?= =?UTF-8?q?l=20docker-compose,=20como=20nos=20dijo=20Critian=20Augusto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 8 +- docs/package-lock.json | 388 ++++++++++++++++++++++++++++++++++++++++- docs/package.json | 11 +- 3 files changed, 395 insertions(+), 12 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c105ed50..66756d73 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: authservice: container_name: authservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/authservice:latest + image: ghcr.io/arquisoft/wiq_es05c/authservice:latest profiles: ["dev", "prod"] build: ./users/authservice depends_on: @@ -27,7 +27,7 @@ services: userservice: container_name: userservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/userservice:latest + image: ghcr.io/arquisoft/wiq_es05c/userservice:latest profiles: ["dev", "prod"] build: ./users/userservice depends_on: @@ -41,7 +41,7 @@ services: gatewayservice: container_name: gatewayservice-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/gatewayservice:latest + image: ghcr.io/arquisoft/wiq_es05c/gatewayservice:latest profiles: ["dev", "prod"] build: ./gatewayservice depends_on: @@ -58,7 +58,7 @@ services: webapp: container_name: webapp-${teamname:-defaultASW} - image: ghcr.io/arquisoft/wiq_0/webapp:latest + image: ghcr.io/arquisoft/wiq_es05c/webapp:latest profiles: ["dev", "prod"] build: ./webapp depends_on: diff --git a/docs/package-lock.json b/docs/package-lock.json index ab1646f2..ae39a379 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,11 +1,10 @@ { "name": "docs", "version": "1.0.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "docs", "version": "1.0.0", "dependencies": { "gh-pages": "^3.2.3", @@ -540,5 +539,390 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" } + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "requires": { + "lodash": "^4.17.14" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==" + }, + "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==" + }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==" + }, + "filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "requires": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "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" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "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==" + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "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==", + "requires": { + "hasown": "^2.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "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==", + "requires": { + "semver": "^6.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "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==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "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==" + }, + "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==" + }, + "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==" + }, + "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==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "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==", + "requires": { + "find-up": "^4.0.0" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "requires": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + } + }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "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==" + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } } } diff --git a/docs/package.json b/docs/package.json index 22e2370d..4a13c872 100644 --- a/docs/package.json +++ b/docs/package.json @@ -4,12 +4,11 @@ "description": "Npm project just for the docs", "main": "index.js", "scripts": { - "build": "shx rm -rf build && asciidoctor -D build -a imagesdir=./images -r asciidoctor-diagram index.adoc && shx cp -R images build", - "deploy": "gh-pages -d build" + "build": "shx rm -rf build && asciidoctor -D build -a imagesdir=./images -r asciidoctor-diagram index.adoc && shx cp -R images build", + "deploy": "gh-pages -d build" }, "dependencies": { - "gh-pages": "^3.2.3", - "shx": "^0.3.3" + "gh-pages": "^3.2.3", + "shx": "^0.3.3" } - } - \ No newline at end of file +} From 9d141e74f85ea74be8146215821220f26c4a5d05 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 6 Mar 2024 21:02:01 +0100 Subject: [PATCH 47/82] =?UTF-8?q?A=C3=B1ado=20cambios=20en=20el=20fichero?= =?UTF-8?q?=20de=20consultas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/consultas.txt | 34 ++++++++++++++++++++-------- "docs/images/Sin t\303\255tulo.png" | Bin 0 -> 12372 bytes 2 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 "docs/images/Sin t\303\255tulo.png" diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt index cf3a0d45..7f460699 100644 --- a/WikidataPrueba/consultas.txt +++ b/WikidataPrueba/consultas.txt @@ -1,3 +1,4 @@ + --CONSULTAS GEOGRAFIA -- --Consulta que devuelve pais y capital -- SELECT ?country ?countryLabel ?capitalLabel @@ -28,16 +29,6 @@ WHERE SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } } ---Consulta que devuelve club de futbol y su estadio -- - -SELECT ?club ?clubLabel ?stadiumLabel -WHERE { - ?club wdt:P31 wd:Q17270000 . - ?club p:P115 ?statement . - ?statement ps:P115 ?stadium . - SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } -} - --Consulta estado de EEUU y su capital -- SELECT ?state ?stateLabel ?capitalLabel WHERE { @@ -58,6 +49,19 @@ WHERE { } + --CONSULTAS DEPORTES-- +--Consulta que devuelve club de futbol y su estadio -- + +SELECT ?club ?clubLabel ?stadiumLabel +WHERE { + ?club wdt:P31 wd:Q17270000 . + ?club p:P115 ?statement . + ?statement ps:P115 ?stadium . + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } +} + + + --CONSULTAS ARTE--- --Consulta libro y su autor -- SELECT ?book ?bookLabel ?authorLabel WHERE { @@ -98,6 +102,16 @@ SELECT ?film ?filmLabel ?genere ?d WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } } + --CONSULTAS ENTRETENIMIENTO-- + + --CONSULTAS CIENCIA-- + + --CONSULTAS HISTORIA-- + + + --OTRAS CONSULTAS-- + + --Consulta que me devuelve por orden descendente y solo 4 resultados las ciudades mas grandes por pais me devuelve el nombre de la ciudad, pais y poblacion -- diff --git "a/docs/images/Sin t\303\255tulo.png" "b/docs/images/Sin t\303\255tulo.png" new file mode 100644 index 0000000000000000000000000000000000000000..6f99ad3f14758929c965c5e104ff47850e78bdf3 GIT binary patch literal 12372 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 Date: Wed, 6 Mar 2024 21:08:30 +0100 Subject: [PATCH 48/82] =?UTF-8?q?A=C3=B1ado=20nuevas=20consultas=20separad?= =?UTF-8?q?as=20por=20categorias?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WikidataPrueba/consultas.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/WikidataPrueba/consultas.txt b/WikidataPrueba/consultas.txt index 7f460699..b54719a6 100644 --- a/WikidataPrueba/consultas.txt +++ b/WikidataPrueba/consultas.txt @@ -103,6 +103,27 @@ SELECT ?film ?filmLabel ?genere ?d WHERE { } --CONSULTAS ENTRETENIMIENTO-- +# Consulta para obtener videojuegos y sus plataformas de desarrollo +SELECT ?videojuego ?nombreVideojuego ?plataforma ?nombrePlataforma +WHERE { + ?videojuego wdt:P31 wd:Q7889. # Videojuegos (clase) + ?videojuego wdt:P178 ?plataforma. # Relación "desarrollado para" + ?videojuego rdfs:label ?nombreVideojuego filter (lang(?nombreVideojuego) = "es"). + ?plataforma rdfs:label ?nombrePlataforma filter (lang(?nombrePlataforma) = "es"). +} +LIMIT 100 + + +# Consulta para obtener el nombre del videojuego y su género +SELECT ?videojuego ?nombreVideojuego ?genero ?nombreGenero +WHERE { + ?videojuego wdt:P31 wd:Q7889. # Videojuegos (clase) + ?videojuego wdt:P136 ?genero. # Relación "género" + ?videojuego rdfs:label ?nombreVideojuego filter (lang(?nombreVideojuego) = "es"). + ?genero rdfs:label ?nombreGenero filter (lang(?nombreGenero) = "es"). +} +LIMIT 100 + --CONSULTAS CIENCIA-- From 4bd9506fb26997eac918e7c0fe92a329d2ac22cf Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 6 Mar 2024 22:01:49 +0100 Subject: [PATCH 49/82] =?UTF-8?q?A=C3=B1adido=20xml=20con=20las=20querys?= =?UTF-8?q?=20de=20las=20preguntas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/preguntas.xml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 questionsService/preguntas.xml diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml new file mode 100644 index 00000000..8b4e01ea --- /dev/null +++ b/questionsService/preguntas.xml @@ -0,0 +1,28 @@ + + + + + SELECT ?country ?countryLabel ?capitalLabel + WHERE + { + ?country wdt:P31 wd:Q3624078. # Instance of country + ?country wdt:P36 ?capital. # Has capital + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } + } + + + + + + + SELECT ?state ?stateLabel ?capitalLabel + WHERE { + ?state wdt:P31 wd:Q35657 . + ?state p:P36 ?statement . + ?statement ps:P36 ?capital . + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } + } + + + + \ No newline at end of file From c4777327fbb2066525a5df9a6967521ff2dbeca3 Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 6 Mar 2024 22:02:43 +0100 Subject: [PATCH 50/82] =?UTF-8?q?A=C3=B1adido=20xml=20con=20el=20esqueleto?= =?UTF-8?q?=20para=20formar=20las=20preguntas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/esqueletoPreguntas.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 questionsService/esqueletoPreguntas.xml diff --git a/questionsService/esqueletoPreguntas.xml b/questionsService/esqueletoPreguntas.xml new file mode 100644 index 00000000..2becdd75 --- /dev/null +++ b/questionsService/esqueletoPreguntas.xml @@ -0,0 +1,10 @@ + + + ¿Cuál es la capital de {RELLENAR}? + + + + ¿Cuál es la capital del estado de {RELLENAR}? + + + \ No newline at end of file From 89dbfeb43ae21055d39ff3b8947861b9bb94aab7 Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 6 Mar 2024 22:04:18 +0100 Subject: [PATCH 51/82] =?UTF-8?q?A=C3=B1adida=20clase=20que=20se=20encarga?= =?UTF-8?q?=20de=20obtener=20la=20pregunta=20con=20la=20informacion=20saca?= =?UTF-8?q?da=20de=20wikidata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/obtenerPreguntasWikidata.js | 202 +++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 questionsService/obtenerPreguntasWikidata.js diff --git a/questionsService/obtenerPreguntasWikidata.js b/questionsService/obtenerPreguntasWikidata.js new file mode 100644 index 00000000..775fc369 --- /dev/null +++ b/questionsService/obtenerPreguntasWikidata.js @@ -0,0 +1,202 @@ +class ObtenerPreguntaWikiData { + + constructor(language = 'es') { + this.language = language; + + //obtenemos las labels de lo que queremos obtener (lo que esta en la select que queremos buscar) + this.labels; + + //obtenemos la información mas general de la pregunta (por ejemplo país) + this.question; + //obtenemos el "tipo" de la pregunta (por ejemplo capital) + this.type; + //obtenemos la categoría de la pregunta (por ejemplo geografia) + this.category; + //obtenemos las 4 posibles respuestas + this.answers; + + //para guardar toda la información relativa a las preguntas + this.finalQuestion; + + } + + /* + Leemos el archivo .xml que tenemos con todas las consultas disponibles + Posteriormente se elige una consulta al azar + Se obtiene la consulta y la información que necesitamos para posteriores métodos + */ + leerYSacarConsultas() { + //abrimos el xml con las preguntas + const xhr = new XMLHttpRequest(); + xhr.open('GET', "preguntas.xml", true); + + xhr.onload = () => { + if (xhr.status === 200) { + const xmlString = xhr.responseText; + const parser = new DOMParser(); + const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); + + //obtenemos todas las consultas disponibles + var preguntas = xmlDoc.getElementsByTagName('pregunta'); + + //cogemos una consulta de forma aleatoria + var pregunta = preguntas[Math.floor(Math.random() * preguntas.length)]; + //obtenemos la informacion relativa a la pregunta + this.question = pregunta.getAttribute('question'); + this.type = pregunta.getAttribute('type'); + this.category = pregunta.getAttribute('category'); + + //obtenemos la consulta que vamos a realizar + var query = pregunta.getElementsByTagName('query')[0].textContent; + + //obtenemos los datos que estan en la select de la consulta para posteriormente obtener la informacion del binding.result + var consultaParte = query.match(/SELECT(.*?)WHERE/s)[1].trim(); + + // Dividir la parte de la consulta por los símbolos '?' para obtener las labels + this.labels = consultaParte.split('?').map(part => part.trim()).filter(part => part !== ''); + + //obtenemos todas las entradas de wikidata para esa query + this.obtenerEntidadesConsulta(query); + + } else { + console.error('Error al cargar el archivo:', xhr.statusText); + } + }; + + xhr.onerror = () => { + console.error('Error de red al cargar el archivo.'); + }; + + xhr.send(); + } + + /* + Hace una llamada a la API para poder obtener la información relativa a la consulta + Si la llamada tiene exito se llama a otro metodo para procesar la información + */ + obtenerEntidadesConsulta(consulta){ + const apiUrl = 'https://query.wikidata.org/sparql'; + + $.ajax({ + url: apiUrl, + data: { + query: consulta, + format: 'json' + }, + dataType: 'json', + success: this.obtenerInformacionParaPregunta.bind(this), + error: function(error) { + console.log('Error:', error); + } + }); + } + + /* + Obtenemos 4 entidades aleatorias de los datos devueltos por la consulta que hemos realizado + */ + obtenerInformacionParaPregunta(data){ + //obtenemos el label y el resultado de todas las entidades + if(data && data.results && data.results.bindings.length > 0){ + var entidades = data.results.bindings.map(binding => { + return { + //obtenemos el label de la "pregunta" (ejemplo country) + label: this.obtenerValorPropiedad(binding, this.labels[1]), + //obtenemos el label de la "respuesta" (ejemplo capital) + result: this.obtenerValorPropiedad(binding, this.labels[2]) + }; + }); + + //obtenemos 4 índices aleatorios únicos + var indicesAleatorios = []; + while(indicesAleatorios.length < 4){ + var indiceAleatorio = Math.floor(Math.random() * entidades.length); + if(!indicesAleatorios.includes(indiceAleatorio)){ + indicesAleatorios.push(indiceAleatorio); + } + } + + //obtenemos las 4 entidades aleatorias que vamos a utilizar para generar la pregunta + this.answers = indicesAleatorios.map(indice => entidades[indice]); + + this.generarTextoPregunta(); + } + } + + /* + obtenemos el valor que queremos de la entidad + */ + obtenerValorPropiedad(binding, propertyName) { + //si tiene la + if (binding && binding.hasOwnProperty(propertyName)) { + return binding[propertyName].value; + } else { + return "Ninguna de las anteriores"; + } + } + + /* + generamos la pregunta con la información que hemos obtenido + */ + generarTextoPregunta(){ + const xhr = new XMLHttpRequest(); + xhr.open('GET', "esqueletoPreguntas.xml", true); + + xhr.onload = () => { + if (xhr.status === 200) { + const xmlString = xhr.responseText; + const parser = new DOMParser(); + const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); + + //obtiene todos los esqueletos de las preguntas + var textoPregunta = xmlDoc.querySelector('pregunta[question="' + this.question + '"][type="' + this.type +'"]').textContent; + + //comprobamos que el resultado es valido para hacer la pregunta (que no sea QXXXXX) + var preguntaCorrecta = this.answers.find(entidad => { + return !entidad.label.startsWith('Q') && /\d/.test(entidad.label); + }); + + if(preguntaCorrecta){ + //rellenamos el esqueleto de la pregunta con los datos de la entidad + var pregunta = preguntaCorrecta.label; + var respuestaCorrecta = preguntaCorrecta.result; + var consulta = textoPregunta.replace('{RELLENAR}', pregunta); + + generarPregunta(consulta, respuestaCorrecta); + + + } + } + }; + xhr.send(); + } + + /* + generamos un json con la info necesaria de la pregunta para poder guardarla en la base de datos + */ + generarPregunta(consulta, respuestaCorrecta){ + var respuestasIncorrectas = []; + var num = 0; + //añadimos el resto de respuestas + for(var i = 0; i < this.answers.length; i++){ + if(this.answers[i].result !== respuestaCorrecta){ + respuestasIncorrectas[num] = this.answers[i].label; + num++; + } + } + + //guardamos la pregunta para añadirla a la base de datos + this.finalQuestion = { + question: consulta, + correct: respuestaCorrecta, + incorrect1: respuestasIncorrectas[0], + incorrect2: respuestasIncorrectas[1], + incorrect3: respuestasIncorrectas[2] + } + } + + obtenerPregunta(){ + return finalQuestion; + } +} + +module.exports = ObtenerPreguntaWikiData; \ No newline at end of file From 1fd53e4607c8e065c3cb5be8a5d1f7a42400286c Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 6 Mar 2024 22:05:19 +0100 Subject: [PATCH 52/82] Primera version de la clase que se encarga de guardar las preguntas en la base de datos --- questionsService/guardarPreguntaBaseDatos.js | 165 +++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 questionsService/guardarPreguntaBaseDatos.js diff --git a/questionsService/guardarPreguntaBaseDatos.js b/questionsService/guardarPreguntaBaseDatos.js new file mode 100644 index 00000000..5d3f9d58 --- /dev/null +++ b/questionsService/guardarPreguntaBaseDatos.js @@ -0,0 +1,165 @@ +const mongoose = require('mongoose'); + +class GuardarBaseDatos{ + + constructor(finalQuestion, choice, category){ + this.finalQuestion = finalQuestion; + this.choice = choice; + this.category = category; + } + + guardarEnBaseDatos(){ + // Connect to MongoDB + const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; + mongoose.connect(mongoUri); + + //guardamos la pregunta y el tipo + this.guardarPreguntaTipo(); + + //guardamos las preguntas incorrectas + this.guardarPrimeraIncorrecta(); + this.guardarSegundaIncorrecta(); + this.guardarTerceraIncorrecta(); + + //guardamos la categoria + this.guardarCategoria(); + + //cerramos la conexion + mongoose.connection.close(); + } + + guardarPreguntaTipo(){ + // Comprobar si la pregunta ya existe + Pregunta.findOne({ textoPregunta: this.finalQuestion.question }) + .then(preguntaExistente => { + if (!preguntaExistente) { + // Si no existe la pregunta, se crea + var nuevaPregunta = new Pregunta({ + textoPregunta: this.finalQuestion.question, + respuestaCorrecta: this.finalQuestion.correct, + categoria: this.categoria + }); + + // Guardar la nueva pregunta + nuevaPregunta.save() + .then(preguntaGuardada => { + + // Comprobar si existe el tipo de la pregunta y asociarlo + Tipos.findOne({ nombreTipo: this.choice }) + .then(tipoExistente => { + if (!tipoExistente) { + // Si no existe el tipo, se crea + var nuevoTipo = new Tipos({ + idPreguntas: [preguntaGuardada._id], + nombreTipo: this.choice + }); + + // Guardar el nuevo tipo + nuevoTipo.save(); + } else { + // Si el tipo existe, agregar el ID de la nueva pregunta a idPreguntas + tipoExistente.idPreguntas.push(preguntaGuardada._id); + // Guardar el tipo actualizado + tipoExistente.save(); + } + }); + }); + } + }); + } + + guardarPrimeraIncorrecta(){ + //comprobar si la primera respuesta existe ya en la base de datos + Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect1 }) + .then(respuestaExistente => { + if (!respuestaExistente) { + // Si no existe ya esa pregunta la crea + var nuevaRespuesta = new Respuesta({ + textoRespuesta: this.finalQuestion.question, + tipos: [this.choice] + }); + + //Guardamos la nueva respuesta + nuevaRespuesta.save(); + } + else{ + //comprobamos si ya existe el tipo en esa respuesta + if (!respuestaExistente.tipos.includes(this.choice)) { + //agragamos el nuevo tipo + respuestaExistente.tipos.push(this.choice); + + respuestaExistente.save(); + } + } + }); + } + + guardarSegundaIncorrecta(){ + //comprobar si la segunda respuesta existe ya en la base de datos + Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect2 }) + .then(respuestaExistente => { + if (!respuestaExistente) { + // Si no existe ya esa pregunta la crea + var nuevaRespuesta = new Respuesta({ + textoRespuesta: this.finalQuestion.question, + tipos: [this.choice] + }); + + //Guardamos la nueva respuesta + nuevaRespuesta.save(); + } + else{ + //comprobamos si ya existe el tipo en esa respuesta + if (!respuestaExistente.tipos.includes(this.choice)) { + //agragamos el nuevo tipo + respuestaExistente.tipos.push(this.choice); + + respuestaExistente.save(); + } + } + }); + } + + guardarTerceraIncorrecta(){ + //comprobar si la tercera respuesta existe ya en la base de datos + Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect3 }) + .then(respuestaExistente => { + if (!respuestaExistente) { + // Si no existe ya esa pregunta la crea + var nuevaRespuesta = new Respuesta({ + textoRespuesta: this.finalQuestion.question, + tipos: [this.choice] + }); + + //Guardamos la nueva respuesta + nuevaRespuesta.save(); + } + else{ + //comprobamos si ya existe el tipo en esa respuesta + if (!respuestaExistente.tipos.includes(this.choice)) { + //agragamos el nuevo tipo + respuestaExistente.tipos.push(this.choice); + + respuestaExistente.save(); + } + } + }); + } + + guardarCategoria(){ + Categoria.findOne({ textoPregunta: this.finalQuestion.question }) + .then(categoriaExistente => { + if (!categoriaExistente) { + // Si no existe ya esa pregunta la crea + var nuevaCategoria = new Categoria({ + nombre: this.category, + }); + + //Guardamos la nueva pregunta + nuevaCategoria.save(); + } + }); + } +} + +module.exports = GuardarBaseDatos; \ No newline at end of file From 40887d225a6f0aaffeed2ab9358dc825b05a747a Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 6 Mar 2024 22:06:53 +0100 Subject: [PATCH 53/82] =?UTF-8?q?A=C3=B1adida=20la=20primera=20version=20d?= =?UTF-8?q?el=20esquema=20de=20como=20queremos=20que=20sea=20la=20base=20d?= =?UTF-8?q?e=20datos=20de=20las=20preguntas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/question-model.js | 67 ++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 questionsService/question-model.js diff --git a/questionsService/question-model.js b/questionsService/question-model.js new file mode 100644 index 00000000..d077fcaa --- /dev/null +++ b/questionsService/question-model.js @@ -0,0 +1,67 @@ +const mongoose = require('mongoose'); + +// Conectar a la base de datos MongoDB +mongoose.connect('mongodb://mongodb:27017/questionsdb', { useNewUrlParser: true, useUnifiedTopology: true }) + .then(() => console.log('Conexión exitosa a MongoDB')) + .catch(err => console.error('Error al conectar a MongoDB:', err)); + +//preguntas +const preguntaSchema = new mongoose.Schema({ + + textoPregunta: { + type: String, + required: true + }, + respuestaCorrecta: { + type: String, + required: true + }, + categoria: { + type: mongoose.Schema.Types.ObjectId, + ref: 'Categoria' + } + }); + +const Pregunta = mongoose.model('Pregunta', preguntaSchema); + +//categoria +const categoriaSchema = new mongoose.Schema({ + + nombre: { + type: String, + required: true + } +}); + +const Categoria = mongoose.model('Categoria', categoriaSchema); + +//Respuesta +const respuestaSchema = new mongoose.Schema({ + + textoRespuesta: { + type: String, + required: true + }, + tipos: [{ + type: mongoose.Schema.Types.ObjectId, + ref: 'Tipos' + }] +}); +const Respuesta = mongoose.model('Respuesta', respuestaSchema); + +//Tipos +const tiposSchema = new mongoose.Schema({ + + idPreguntas: [{ + type: String, + required: true + }], + nombreTipo: { + type: String, + required: true + } +}); + +// Definir el modelo de respuesta +const Tipos = mongoose.model('Tipos', tiposSchema); + From 2055ede850769eb82d2f03dc2a1ab0bdb24bf577 Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 6 Mar 2024 22:07:49 +0100 Subject: [PATCH 54/82] =?UTF-8?q?A=C3=B1adida=20primera=20version=20de=20l?= =?UTF-8?q?a=20clase=20que=20obtendria=20la=20pregunta=20y=20la=20guardari?= =?UTF-8?q?a=20a=20la=20base=20de=20datos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/questionGeneration.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 questionsService/questionGeneration.js diff --git a/questionsService/questionGeneration.js b/questionsService/questionGeneration.js new file mode 100644 index 00000000..f932c50c --- /dev/null +++ b/questionsService/questionGeneration.js @@ -0,0 +1,16 @@ + +class GenerarPregunta { + + constructor() { + this.obtenerPreguntaW = new ObtenerPreguntaWikiData(); + this.baseDatos = new GuardarBaseDatos(); + } + + // Método para ejecutar las operaciones + ejecutarOperaciones() { + this.obtenerPreguntaW.leerYSacarConsultas(); + this.baseDatos.guardarEnBaseDatos(this.obtenerPreguntaW.obtenerPregunta()); + } +} + +module.exports = GenerarPregunta; \ No newline at end of file From 791b2f230a9d6c313b1679b9de97371cb0cac599 Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 6 Mar 2024 22:26:51 +0100 Subject: [PATCH 55/82] Actualizacion orden de como se guardan los diferentes datos de la pregunta --- questionsService/guardarPreguntaBaseDatos.js | 155 ++++++++++--------- questionsService/obtenerPreguntasWikidata.js | 4 +- 2 files changed, 87 insertions(+), 72 deletions(-) diff --git a/questionsService/guardarPreguntaBaseDatos.js b/questionsService/guardarPreguntaBaseDatos.js index 5d3f9d58..ee04dd9d 100644 --- a/questionsService/guardarPreguntaBaseDatos.js +++ b/questionsService/guardarPreguntaBaseDatos.js @@ -13,62 +13,93 @@ class GuardarBaseDatos{ const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; mongoose.connect(mongoUri); - //guardamos la pregunta y el tipo - this.guardarPreguntaTipo(); - - //guardamos las preguntas incorrectas - this.guardarPrimeraIncorrecta(); - this.guardarSegundaIncorrecta(); - this.guardarTerceraIncorrecta(); - - //guardamos la categoria + //primero deberiamos de guardar la categoria this.guardarCategoria(); //cerramos la conexion mongoose.connection.close(); } - guardarPreguntaTipo(){ - // Comprobar si la pregunta ya existe - Pregunta.findOne({ textoPregunta: this.finalQuestion.question }) - .then(preguntaExistente => { - if (!preguntaExistente) { - // Si no existe la pregunta, se crea - var nuevaPregunta = new Pregunta({ - textoPregunta: this.finalQuestion.question, - respuestaCorrecta: this.finalQuestion.correct, - categoria: this.categoria - }); + guardarCategoria(){ + var idCategoria; - // Guardar la nueva pregunta - nuevaPregunta.save() - .then(preguntaGuardada => { + Categoria.findOne({ textoPregunta: this.finalQuestion.category }) + .then(categoriaExistente => { + if (!categoriaExistente) { + // Si no existe ya esa categoria la crea + var nuevaCategoria = new Categoria({ + nombre: this.category, + }); + + //Guardamos la nueva pregunta + nuevaCategoria.save().then(categoriaGuardada => { + //guardamos el id de la categoria nueva + idCategoria = categoriaGuardada._id; + }); + } - // Comprobar si existe el tipo de la pregunta y asociarlo - Tipos.findOne({ nombreTipo: this.choice }) - .then(tipoExistente => { - if (!tipoExistente) { - // Si no existe el tipo, se crea - var nuevoTipo = new Tipos({ - idPreguntas: [preguntaGuardada._id], - nombreTipo: this.choice - }); - - // Guardar el nuevo tipo - nuevoTipo.save(); - } else { - // Si el tipo existe, agregar el ID de la nueva pregunta a idPreguntas - tipoExistente.idPreguntas.push(preguntaGuardada._id); - // Guardar el tipo actualizado - tipoExistente.save(); - } - }); - }); + else{ + //guardamos el id de la categoria existente + idCategoria = categoriaExistente._id; } }); + + this.guardarPreguntaTipo(idCategoria); } - guardarPrimeraIncorrecta(){ + guardarPreguntaTipo(idCategoria){ + var idTipo; + // Comprobar si la pregunta ya existe + Pregunta.findOne({ textoPregunta: this.finalQuestion.question }) + .then(preguntaExistente => { + if (!preguntaExistente) { + // Si no existe la pregunta, se crea + var nuevaPregunta = new Pregunta({ + textoPregunta: this.finalQuestion.question, + respuestaCorrecta: this.finalQuestion.correct, + categoria: idCategoria + }); + + // Guardar la nueva pregunta + nuevaPregunta.save() + .then(preguntaGuardada => { + + // Comprobar si existe el tipo de la pregunta y asociarlo + Tipos.findOne({ nombreTipo: this.choice }) + .then(tipoExistente => { + if (!tipoExistente) { + // Si no existe el tipo, se crea + var nuevoTipo = new Tipos({ + idPreguntas: [preguntaGuardada._id], + nombreTipo: this.choice + }); + + // Guardar el nuevo tipo + nuevoTipo.save().then(tipoGuardado => { + //guardamos el id del tipo + idTipo = tipoGuardado._id; + }); + } + else { + // Si el tipo existe, agregar el ID de la nueva pregunta a idPreguntas + tipoExistente.idPreguntas.push(preguntaGuardada._id); + // Guardar el tipo actualizado + tipoExistente.save().then(tipoGuardado => { + //guardamos el id del tipo + idTipo = tipoGuardado._id; + }); + } + }); + }); + } + }); + + this.guardarPrimeraIncorrecta(idTipo); + this.guardarSegundaIncorrecta(idTipo); + this.guardarTerceraIncorrecta(idTipo); + } + + guardarPrimeraIncorrecta(idTipo){ //comprobar si la primera respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect1 }) .then(respuestaExistente => { @@ -76,7 +107,7 @@ class GuardarBaseDatos{ // Si no existe ya esa pregunta la crea var nuevaRespuesta = new Respuesta({ textoRespuesta: this.finalQuestion.question, - tipos: [this.choice] + tipos: [idTipo] }); //Guardamos la nueva respuesta @@ -84,9 +115,9 @@ class GuardarBaseDatos{ } else{ //comprobamos si ya existe el tipo en esa respuesta - if (!respuestaExistente.tipos.includes(this.choice)) { + if (!respuestaExistente.tipos.includes(idTipo)) { //agragamos el nuevo tipo - respuestaExistente.tipos.push(this.choice); + respuestaExistente.tipos.push(idTipo); respuestaExistente.save(); } @@ -94,7 +125,7 @@ class GuardarBaseDatos{ }); } - guardarSegundaIncorrecta(){ + guardarSegundaIncorrecta(idTipo){ //comprobar si la segunda respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect2 }) .then(respuestaExistente => { @@ -102,7 +133,7 @@ class GuardarBaseDatos{ // Si no existe ya esa pregunta la crea var nuevaRespuesta = new Respuesta({ textoRespuesta: this.finalQuestion.question, - tipos: [this.choice] + tipos: [idTipo] }); //Guardamos la nueva respuesta @@ -110,9 +141,9 @@ class GuardarBaseDatos{ } else{ //comprobamos si ya existe el tipo en esa respuesta - if (!respuestaExistente.tipos.includes(this.choice)) { + if (!respuestaExistente.tipos.includes(idTipo)) { //agragamos el nuevo tipo - respuestaExistente.tipos.push(this.choice); + respuestaExistente.tipos.push(idTipo); respuestaExistente.save(); } @@ -120,7 +151,7 @@ class GuardarBaseDatos{ }); } - guardarTerceraIncorrecta(){ + guardarTerceraIncorrecta(idTipo){ //comprobar si la tercera respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect3 }) .then(respuestaExistente => { @@ -128,7 +159,7 @@ class GuardarBaseDatos{ // Si no existe ya esa pregunta la crea var nuevaRespuesta = new Respuesta({ textoRespuesta: this.finalQuestion.question, - tipos: [this.choice] + tipos: [idTipo] }); //Guardamos la nueva respuesta @@ -136,9 +167,9 @@ class GuardarBaseDatos{ } else{ //comprobamos si ya existe el tipo en esa respuesta - if (!respuestaExistente.tipos.includes(this.choice)) { + if (!respuestaExistente.tipos.includes(idTipo)) { //agragamos el nuevo tipo - respuestaExistente.tipos.push(this.choice); + respuestaExistente.tipos.push(idTipo); respuestaExistente.save(); } @@ -146,20 +177,6 @@ class GuardarBaseDatos{ }); } - guardarCategoria(){ - Categoria.findOne({ textoPregunta: this.finalQuestion.question }) - .then(categoriaExistente => { - if (!categoriaExistente) { - // Si no existe ya esa pregunta la crea - var nuevaCategoria = new Categoria({ - nombre: this.category, - }); - - //Guardamos la nueva pregunta - nuevaCategoria.save(); - } - }); - } } module.exports = GuardarBaseDatos; \ No newline at end of file diff --git a/questionsService/obtenerPreguntasWikidata.js b/questionsService/obtenerPreguntasWikidata.js index 775fc369..85d81036 100644 --- a/questionsService/obtenerPreguntasWikidata.js +++ b/questionsService/obtenerPreguntasWikidata.js @@ -161,9 +161,7 @@ class ObtenerPreguntaWikiData { var respuestaCorrecta = preguntaCorrecta.result; var consulta = textoPregunta.replace('{RELLENAR}', pregunta); - generarPregunta(consulta, respuestaCorrecta); - - + generarPregunta(consulta, respuestaCorrecta); } } }; From 6387581e10be3149f3b7f599a900f2b4e9c63caa Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 6 Mar 2024 22:27:12 +0100 Subject: [PATCH 56/82] 2-Actualizacion orden de como se guardan los diferentes datos de la pregunta --- questionsService/guardarPreguntaBaseDatos.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/questionsService/guardarPreguntaBaseDatos.js b/questionsService/guardarPreguntaBaseDatos.js index ee04dd9d..487f6f97 100644 --- a/questionsService/guardarPreguntaBaseDatos.js +++ b/questionsService/guardarPreguntaBaseDatos.js @@ -116,7 +116,7 @@ class GuardarBaseDatos{ else{ //comprobamos si ya existe el tipo en esa respuesta if (!respuestaExistente.tipos.includes(idTipo)) { - //agragamos el nuevo tipo + //agregamos el nuevo tipo respuestaExistente.tipos.push(idTipo); respuestaExistente.save(); @@ -142,7 +142,7 @@ class GuardarBaseDatos{ else{ //comprobamos si ya existe el tipo en esa respuesta if (!respuestaExistente.tipos.includes(idTipo)) { - //agragamos el nuevo tipo + //agregamos el nuevo tipo respuestaExistente.tipos.push(idTipo); respuestaExistente.save(); @@ -168,7 +168,7 @@ class GuardarBaseDatos{ else{ //comprobamos si ya existe el tipo en esa respuesta if (!respuestaExistente.tipos.includes(idTipo)) { - //agragamos el nuevo tipo + //agregamos el nuevo tipo respuestaExistente.tipos.push(idTipo); respuestaExistente.save(); From 47c5dafd474a76d4188f49dbc4ee94adb61a8198 Mon Sep 17 00:00:00 2001 From: sonia Date: Wed, 6 Mar 2024 22:34:11 +0100 Subject: [PATCH 57/82] =?UTF-8?q?A=C3=B1adido=20el=20id=20al=20esquema=20d?= =?UTF-8?q?e=20la=20base=20de=20datos=20de=20las=20preguntas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/question-model.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/questionsService/question-model.js b/questionsService/question-model.js index d077fcaa..fb088967 100644 --- a/questionsService/question-model.js +++ b/questionsService/question-model.js @@ -7,7 +7,7 @@ mongoose.connect('mongodb://mongodb:27017/questionsdb', { useNewUrlParser: true, //preguntas const preguntaSchema = new mongoose.Schema({ - + _id: mongoose.Schema.Types.ObjectId, textoPregunta: { type: String, required: true @@ -26,7 +26,7 @@ const Pregunta = mongoose.model('Pregunta', preguntaSchema); //categoria const categoriaSchema = new mongoose.Schema({ - + _id: mongoose.Schema.Types.ObjectId, nombre: { type: String, required: true @@ -37,7 +37,7 @@ const Categoria = mongoose.model('Categoria', categoriaSchema); //Respuesta const respuestaSchema = new mongoose.Schema({ - + _id: mongoose.Schema.Types.ObjectId, textoRespuesta: { type: String, required: true @@ -51,7 +51,7 @@ const Respuesta = mongoose.model('Respuesta', respuestaSchema); //Tipos const tiposSchema = new mongoose.Schema({ - + _id: mongoose.Schema.Types.ObjectId, idPreguntas: [{ type: String, required: true From 5840a5144769436b2513e81b5ff7703e2101400d Mon Sep 17 00:00:00 2001 From: UO283535 Date: Wed, 6 Mar 2024 23:21:28 +0100 Subject: [PATCH 58/82] =?UTF-8?q?A=C3=B1adimos=20primera=20prueba=20de=20s?= =?UTF-8?q?acar=20datos=20base=20de=20datos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/obtenerPreguntasBaseDatos.js | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 questionsService/obtenerPreguntasBaseDatos.js diff --git a/questionsService/obtenerPreguntasBaseDatos.js b/questionsService/obtenerPreguntasBaseDatos.js new file mode 100644 index 00000000..c33ac85d --- /dev/null +++ b/questionsService/obtenerPreguntasBaseDatos.js @@ -0,0 +1,51 @@ +const mongoose = require('mongoose'); +class ObtenerPreguntas{ + + obtenerPregunta(){ + // Connect to MongoDB + const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; + mongoose.connect(mongoUri); + + var pregunta; + var respuestaCorrecta; + var respuestaIncorrecta1; + var respuestaIncorrecta2; + var respuestaIncorrecta3; + + Pregunta.aggregate([ + { $sample: { size: 1 } } + ]).then(pregunta => { + var pregunta_id = pregunta._id; + pregunta = pregunta.textoPregunta; + Tipo.findOne({ _id: { $in: pregunta.pregunta_id } }).then(tipo => { + console.log(tipo_id); + respuestaCorrecta = pregunta.respuestaCorrecta; + console.log(respuestaCorrecta); + Respuesta.aggregate([ + { $match: { nombreTipo: tipo._id, texto: { $ne: [respuestaCorrecta, "Ninguna de las anteriores" ]} } }, + { $sample: { size: 3 } } + + ]).then(respuestas => { + console.log(respuestas); + respuestaIncorrecta1 = respuestas[0].textoRespuesta; + respuestaIncorrecta2 = respuestas[1].textoRespuesta; + respuestaIncorrecta3 = respuestas[2].textoRespuesta; + }).catch(err => { + console.error(err); + }); + }) + console.log(pregunta_id); + + }).catch(err => { + console.error(err); + }); + + return resultado = { + pregunta: pregunta.textoPregunta, + correcta: respuestaCorrecta, + respuestasIncorrecta1: respuestaIncorrecta1, + respuestasIncorrecta2: respuestaIncorrecta2, + respuestasIncorrecta3: respuestaIncorrecta3 + }; + } +} \ No newline at end of file From b2fce0b0c2e8d349a40f5214f4fb95243fc617a2 Mon Sep 17 00:00:00 2001 From: sonia Date: Thu, 7 Mar 2024 00:45:21 +0100 Subject: [PATCH 59/82] =?UTF-8?q?Lucia-Sonia=20prueba=20para=20a=C3=B1adir?= =?UTF-8?q?=20el=20microservicio=20de=20las=20preguntas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 15 + gatewayservice/gateway-service.js | 28 + gatewayservice/package.json | 6 +- questionsService/Dockerfile | 20 + questionsService/guardarPreguntaBaseDatos.js | 8 +- questionsService/obtenerPreguntasBaseDatos.js | 4 +- questionsService/obtenerPreguntasWikidata.js | 6 + questionsService/package-lock.json | 4716 +++++++++++++++++ questionsService/package.json | 32 + questionsService/question-service.js | 58 + questionsService/questionGeneration.js | 16 +- users/authservice/package.json | 6 +- users/userservice/package.json | 6 +- 13 files changed, 4902 insertions(+), 19 deletions(-) create mode 100644 questionsService/Dockerfile create mode 100644 questionsService/package-lock.json create mode 100644 questionsService/package.json create mode 100644 questionsService/question-service.js diff --git a/docker-compose.yml b/docker-compose.yml index 66756d73..e3aebad7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,6 +39,19 @@ services: environment: MONGODB_URI: mongodb://mongodb:27017/userdb + questionservice: + container_name: questionservice-${teamname:-defaultASW} + profiles: ["dev", "prod"] + build: ./questionsService/ + depends_on: + - mongodb + ports: + - "8003:8003" + networks: + - mynetwork + environment: + MONGODB_URI: mongodb://mongodb:27017/questionsdb + gatewayservice: container_name: gatewayservice-${teamname:-defaultASW} image: ghcr.io/arquisoft/wiq_es05c/gatewayservice:latest @@ -48,6 +61,7 @@ services: - mongodb - userservice - authservice + - questionservice ports: - "8000:8000" networks: @@ -55,6 +69,7 @@ services: environment: AUTH_SERVICE_URL: http://authservice:8002 USER_SERVICE_URL: http://userservice:8001 + QUESTION_SERVICE_URL: http://questionservice:8003 webapp: container_name: webapp-${teamname:-defaultASW} diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index 88b84c8f..ebe1dabe 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -8,6 +8,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'; app.use(cors()); app.use(express.json()); @@ -41,6 +42,33 @@ app.post('/adduser', async (req, res) => { } }); +app.get('/getQuestion', async (req, res) => { + try { + // llamamos al servicio de preguntas + const questionResponse = await axios.get(questionServiceUrl+'/getQuestion', req.body); + res.json(questionResponse.data); + } catch (error) { + res.status(error.response.status).json({ error: error.response.data.error }); + } +}); + +app.get('/generateQuestions', async (req, res) => { + try { + console.log("Generando preguntas en el gateway"); + // llamamos al servicio de preguntas + const questionResponse = await axios.get(questionServiceUrl+'/generateQuestions', req.body); + + } catch (error) { + if (error.response) { + res.status(error.response.status).json({ error: error.response.data.error }); + } else { + res.status(500).json({ error: 'Error en la respuesta del servidor' }); + } + } +}); + + + // Start the gateway service const server = app.listen(port, () => { console.log(`Gateway Service listening at http://localhost:${port}`); diff --git a/gatewayservice/package.json b/gatewayservice/package.json index fd16c42c..a39f3c8b 100644 --- a/gatewayservice/package.json +++ b/gatewayservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es05c.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es05c/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es05c#readme", "dependencies": { "axios": "^1.6.5", "cors": "^2.8.5", diff --git a/questionsService/Dockerfile b/questionsService/Dockerfile new file mode 100644 index 00000000..8855e4e3 --- /dev/null +++ b/questionsService/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/questionsService + +# 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 8003 + +# Define the command to run your app +CMD ["node", "question-service.js"] diff --git a/questionsService/guardarPreguntaBaseDatos.js b/questionsService/guardarPreguntaBaseDatos.js index 487f6f97..5021e629 100644 --- a/questionsService/guardarPreguntaBaseDatos.js +++ b/questionsService/guardarPreguntaBaseDatos.js @@ -9,6 +9,7 @@ class GuardarBaseDatos{ } guardarEnBaseDatos(){ + console.log("Guardando pregunta en la base de datos"); // Connect to MongoDB const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; mongoose.connect(mongoUri); @@ -21,6 +22,7 @@ class GuardarBaseDatos{ } guardarCategoria(){ + console.log("Guardando categoria"); var idCategoria; Categoria.findOne({ textoPregunta: this.finalQuestion.category }) @@ -48,6 +50,7 @@ class GuardarBaseDatos{ } guardarPreguntaTipo(idCategoria){ + console.log("Guardando pregunta y tipo"); var idTipo; // Comprobar si la pregunta ya existe Pregunta.findOne({ textoPregunta: this.finalQuestion.question }) @@ -100,6 +103,7 @@ class GuardarBaseDatos{ } guardarPrimeraIncorrecta(idTipo){ + console.log("Guardando primera incorrecta"); //comprobar si la primera respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect1 }) .then(respuestaExistente => { @@ -125,7 +129,8 @@ class GuardarBaseDatos{ }); } - guardarSegundaIncorrecta(idTipo){ + guardarSegundaIncorrecta(idTipo){ + console.log("Guardando segunda incorrecta"); //comprobar si la segunda respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect2 }) .then(respuestaExistente => { @@ -152,6 +157,7 @@ class GuardarBaseDatos{ } guardarTerceraIncorrecta(idTipo){ + console.log("Guardando tercera incorrecta"); //comprobar si la tercera respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect3 }) .then(respuestaExistente => { diff --git a/questionsService/obtenerPreguntasBaseDatos.js b/questionsService/obtenerPreguntasBaseDatos.js index c33ac85d..b4acd94f 100644 --- a/questionsService/obtenerPreguntasBaseDatos.js +++ b/questionsService/obtenerPreguntasBaseDatos.js @@ -48,4 +48,6 @@ class ObtenerPreguntas{ respuestasIncorrecta3: respuestaIncorrecta3 }; } -} \ No newline at end of file +} + +module.exports = ObtenerPreguntas; \ No newline at end of file diff --git a/questionsService/obtenerPreguntasWikidata.js b/questionsService/obtenerPreguntasWikidata.js index 85d81036..881ed316 100644 --- a/questionsService/obtenerPreguntasWikidata.js +++ b/questionsService/obtenerPreguntasWikidata.js @@ -118,6 +118,8 @@ class ObtenerPreguntaWikiData { //obtenemos las 4 entidades aleatorias que vamos a utilizar para generar la pregunta this.answers = indicesAleatorios.map(indice => entidades[indice]); + console.log("entramos en obtener informacion para pregunta"); + this.generarTextoPregunta(); } } @@ -126,6 +128,7 @@ class ObtenerPreguntaWikiData { obtenemos el valor que queremos de la entidad */ obtenerValorPropiedad(binding, propertyName) { + console.log("entramos en obtener valor propiedad"); //si tiene la if (binding && binding.hasOwnProperty(propertyName)) { return binding[propertyName].value; @@ -142,6 +145,7 @@ class ObtenerPreguntaWikiData { xhr.open('GET', "esqueletoPreguntas.xml", true); xhr.onload = () => { + console.log("entramos en generar texto pregunta"); if (xhr.status === 200) { const xmlString = xhr.responseText; const parser = new DOMParser(); @@ -172,6 +176,7 @@ class ObtenerPreguntaWikiData { generamos un json con la info necesaria de la pregunta para poder guardarla en la base de datos */ generarPregunta(consulta, respuestaCorrecta){ + console.log("entramos en generar pregunta"); var respuestasIncorrectas = []; var num = 0; //añadimos el resto de respuestas @@ -193,6 +198,7 @@ class ObtenerPreguntaWikiData { } obtenerPregunta(){ + console.log("entramos en obtener pregunta"); return finalQuestion; } } diff --git a/questionsService/package-lock.json b/questionsService/package-lock.json new file mode 100644 index 00000000..e85579fc --- /dev/null +++ b/questionsService/package-lock.json @@ -0,0 +1,4716 @@ +{ + "name": "questionservice", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "questionservice", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "axios": "^1.6.5", + "cors": "^2.8.5", + "express": "^4.18.2", + "express-prom-bundle": "^7.0.0" + }, + "devDependencies": { + "jest": "^29.7.0", + "supertest": "^6.3.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@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": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "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==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==", + "dev": true + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "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" + }, + "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==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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==", + "dev": true, + "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.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", + "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", + "peer": true, + "engines": { + "node": ">=8.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==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "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==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "20.11.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", + "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/qs": { + "version": "6.9.12", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", + "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/bintrees": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", + "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==", + "peer": true + }, + "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==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001594", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001594.tgz", + "integrity": "sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/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/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "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/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "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/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "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/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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.693", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.693.tgz", + "integrity": "sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "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==", + "dev": true + }, + "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/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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "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==", + "dev": true, + "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.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "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.5.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/express-prom-bundle": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/express-prom-bundle/-/express-prom-bundle-7.0.0.tgz", + "integrity": "sha512-VwVaCyGBGHkHdecpTqRdW1Jm2fXK8weCUKjGjNWorc9g4M+cZ3xoj+N9uQzfRWfIPXJG5QOaiAziOIalQzMwgA==", + "dependencies": { + "@types/express": "^4.17.21", + "express": "^4.18.2", + "on-finished": "^2.3.0", + "url-value-parser": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "prom-client": ">=15.0.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "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/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "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==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true + }, + "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/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "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==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@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": "^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-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==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "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/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "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==", + "dev": true, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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/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==", + "dev": true, + "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/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==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "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==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "@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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "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/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/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/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "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", + "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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "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==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-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==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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/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-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "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==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prom-client": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.1.0.tgz", + "integrity": "sha512-cCD7jLTqyPdjEPBo/Xk4Iu8jxjuZgZJ3e/oET3L+ZwOuap/7Cw3dH/TJSsZKs1TQLZ2IHpIlRAKw82ef06kmMw==", + "peer": true, + "dependencies": { + "@opentelemetry/api": "^1.4.0", + "tdigest": "^0.1.1" + }, + "engines": { + "node": "^16 || ^18 || >=20" + } + }, + "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==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "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/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/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "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", + "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-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/superagent/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/superagent/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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tdigest": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", + "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", + "peer": true, + "dependencies": { + "bintrees": "1.0.2" + } + }, + "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==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "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", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "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/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/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==", + "dev": true, + "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-value-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.2.0.tgz", + "integrity": "sha512-yIQdxJpgkPamPPAPuGdS7Q548rLhny42tg8d4vyTNzFqvOnwqrgHXvgehT09U7fwrzxi3RxCiXjoNUNnNOlQ8A==", + "engines": { + "node": ">=6.0.0" + } + }, + "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/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==", + "dev": true, + "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", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/questionsService/package.json b/questionsService/package.json new file mode 100644 index 00000000..fc1c7476 --- /dev/null +++ b/questionsService/package.json @@ -0,0 +1,32 @@ +{ + "name": "questionservice", + "version": "1.0.0", + "description": "Microservicio de preguntas", + "main": "service.js", + "scripts": { + "start": "node question-service.js", + "test": "jest" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/arquisoft/wiq_es05c.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/arquisoft/wiq_es05c/issues" + }, + "homepage": "https://github.com/arquisoft/wiq_es05c#readme", + "dependencies": { + "bcrypt": "^5.1.1", + "body-parser": "^1.20.2", + "express": "^4.18.2", + "jsonwebtoken": "^9.0.2", + "mongoose": "^8.0.4" + }, + "devDependencies": { + "jest": "^29.7.0", + "mongodb-memory-server": "^9.1.5", + "supertest": "^6.3.4" + } +} diff --git a/questionsService/question-service.js b/questionsService/question-service.js new file mode 100644 index 00000000..76e584d9 --- /dev/null +++ b/questionsService/question-service.js @@ -0,0 +1,58 @@ +const express = require('express'); +const mongoose = require('mongoose'); +const bcrypt = require('bcrypt'); +const jwt = require('jsonwebtoken'); +const Model = require('./question-model') + +const Question = require("./obtenerPreguntasBaseDatos"); +const question = new Question(); + +const NewQuestion = require("./questionGeneration"); +const newquestion = new NewQuestion(); + +const app = express(); +const port = 8003; + +// Middleware to parse JSON in request body +app.use(express.json()); + +// Connect to MongoDB +const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; +mongoose.connect(mongoUri); + +app.get('/getQuestion', async(req,res)=> { + try{ + //coger pregunta bd + const questions = await question.obtenerPregunta(); + //para devolver la pregunta + res.json(questions); + + } catch(error) { + res.status(error.response.status).json({ error: error.response.data.error }); + } + +}); + +app.get('/generateQuestions', async(req,res)=> { + try{ + console.log("Generando preguntas en el question-service"); + const instancia = newquestion.ejecutarOperaciones(); + console.log(`Ejecutado correctamente`); + + } catch(error) { + res.status(error.response.status).json({ error: error.response.data.error }); + } + + }); + +// Start the server +const server = app.listen(port, () => { + console.log(`Generate Service listening at http://localhost:${port}`); +}); + +server.on('close', () => { + // Close the Mongoose connection + mongoose.connection.close(); + }); + +module.exports = server diff --git a/questionsService/questionGeneration.js b/questionsService/questionGeneration.js index f932c50c..2a412bc5 100644 --- a/questionsService/questionGeneration.js +++ b/questionsService/questionGeneration.js @@ -1,15 +1,15 @@ +const PreguntaWiki = require("./obtenerPreguntasWikidata"); +const preguntaWiki = new PreguntaWiki(); -class GenerarPregunta { - - constructor() { - this.obtenerPreguntaW = new ObtenerPreguntaWikiData(); - this.baseDatos = new GuardarBaseDatos(); - } +const GuardarPregunta = require("./guardarPreguntaBaseDatos"); +const guardarPregunta = new GuardarPregunta(); +class GenerarPregunta { // Método para ejecutar las operaciones ejecutarOperaciones() { - this.obtenerPreguntaW.leerYSacarConsultas(); - this.baseDatos.guardarEnBaseDatos(this.obtenerPreguntaW.obtenerPregunta()); + console.log(`Ejecutando operaciones`); + preguntaWiki.leerYSacarConsultas(); + guardarPregunta.guardarEnBaseDatos(preguntaWiki.obtenerPregunta()); } } diff --git a/users/authservice/package.json b/users/authservice/package.json index 6b5b6239..31eeae2f 100644 --- a/users/authservice/package.json +++ b/users/authservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es05c.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es05c/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es05c#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", diff --git a/users/userservice/package.json b/users/userservice/package.json index 2462c8e0..6e98f3bd 100644 --- a/users/userservice/package.json +++ b/users/userservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es05c.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es05c/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es05c#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", From 3ee59841131b7ac528b77c2aad215d89b7c8dea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Villanueva=20Rodr=C3=ADguez?= Date: Thu, 7 Mar 2024 10:17:52 +0100 Subject: [PATCH 60/82] Removing multiple con --- questionsService/guardarPreguntaBaseDatos.js | 5 +- questionsService/obtenerPreguntasBaseDatos.js | 5 +- questionsService/obtenerPreguntasWikidata.js | 10 +- questionsService/package-lock.json | 6867 +++++++++++++++-- 4 files changed, 6123 insertions(+), 764 deletions(-) diff --git a/questionsService/guardarPreguntaBaseDatos.js b/questionsService/guardarPreguntaBaseDatos.js index 5021e629..4928ce2f 100644 --- a/questionsService/guardarPreguntaBaseDatos.js +++ b/questionsService/guardarPreguntaBaseDatos.js @@ -11,14 +11,11 @@ class GuardarBaseDatos{ guardarEnBaseDatos(){ console.log("Guardando pregunta en la base de datos"); // Connect to MongoDB - const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; - mongoose.connect(mongoUri); - + //primero deberiamos de guardar la categoria this.guardarCategoria(); //cerramos la conexion - mongoose.connection.close(); } guardarCategoria(){ diff --git a/questionsService/obtenerPreguntasBaseDatos.js b/questionsService/obtenerPreguntasBaseDatos.js index b4acd94f..a8b083c9 100644 --- a/questionsService/obtenerPreguntasBaseDatos.js +++ b/questionsService/obtenerPreguntasBaseDatos.js @@ -1,11 +1,8 @@ -const mongoose = require('mongoose'); class ObtenerPreguntas{ obtenerPregunta(){ // Connect to MongoDB - const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; - mongoose.connect(mongoUri); - + var pregunta; var respuestaCorrecta; var respuestaIncorrecta1; diff --git a/questionsService/obtenerPreguntasWikidata.js b/questionsService/obtenerPreguntasWikidata.js index 881ed316..f78bcd5d 100644 --- a/questionsService/obtenerPreguntasWikidata.js +++ b/questionsService/obtenerPreguntasWikidata.js @@ -26,6 +26,7 @@ class ObtenerPreguntaWikiData { Se obtiene la consulta y la información que necesitamos para posteriores métodos */ leerYSacarConsultas() { + console.log('Se ha cargado la query leer y sacar consultas'); //abrimos el xml con las preguntas const xhr = new XMLHttpRequest(); xhr.open('GET', "preguntas.xml", true); @@ -35,10 +36,10 @@ class ObtenerPreguntaWikiData { const xmlString = xhr.responseText; const parser = new DOMParser(); const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); - + console.log('Cargamos fichero'); //obtenemos todas las consultas disponibles var preguntas = xmlDoc.getElementsByTagName('pregunta'); - + console.log('Cargamos preguntas'); //cogemos una consulta de forma aleatoria var pregunta = preguntas[Math.floor(Math.random() * preguntas.length)]; //obtenemos la informacion relativa a la pregunta @@ -49,12 +50,14 @@ class ObtenerPreguntaWikiData { //obtenemos la consulta que vamos a realizar var query = pregunta.getElementsByTagName('query')[0].textContent; + console.log('Justo antes del select'); //obtenemos los datos que estan en la select de la consulta para posteriormente obtener la informacion del binding.result var consultaParte = query.match(/SELECT(.*?)WHERE/s)[1].trim(); // Dividir la parte de la consulta por los símbolos '?' para obtener las labels this.labels = consultaParte.split('?').map(part => part.trim()).filter(part => part !== ''); + console.log("SE HA CARGADO LA CONSULTA"); //obtenemos todas las entradas de wikidata para esa query this.obtenerEntidadesConsulta(query); @@ -74,7 +77,8 @@ class ObtenerPreguntaWikiData { Hace una llamada a la API para poder obtener la información relativa a la consulta Si la llamada tiene exito se llama a otro metodo para procesar la información */ - obtenerEntidadesConsulta(consulta){ + obtenerEntidadesConsulta(consulta){ + console.log("ENTRA EN OBTENER ENTIDD"); const apiUrl = 'https://query.wikidata.org/sparql'; $.ajax({ diff --git a/questionsService/package-lock.json b/questionsService/package-lock.json index e85579fc..cd34fb92 100644 --- a/questionsService/package-lock.json +++ b/questionsService/package-lock.json @@ -1,7 +1,7 @@ { "name": "questionservice", "version": "1.0.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { @@ -9,13 +9,15 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "axios": "^1.6.5", - "cors": "^2.8.5", + "bcrypt": "^5.1.1", + "body-parser": "^1.20.2", "express": "^4.18.2", - "express-prom-bundle": "^7.0.0" + "jsonwebtoken": "^9.0.2", + "mongoose": "^8.0.4" }, "devDependencies": { "jest": "^29.7.0", + "mongodb-memory-server": "^9.1.5", "supertest": "^6.3.4" } }, @@ -1051,13 +1053,83 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@opentelemetry/api": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", - "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", - "peer": true, + "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/@mapbox/node-pre-gyp/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": ">=8.0.0" + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/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/@mapbox/node-pre-gyp/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/@mapbox/node-pre-gyp/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/@mapbox/node-pre-gyp/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/@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/@sinclair/typebox": { @@ -1125,45 +1197,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.43", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", - "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -1173,11 +1206,6 @@ "@types/node": "*" } }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" - }, "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", @@ -1202,54 +1230,36 @@ "@types/istanbul-lib-report": "*" } }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" - }, "node_modules/@types/node": { "version": "20.11.25", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, - "node_modules/@types/qs": { - "version": "6.9.12", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", - "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, "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==", "dev": true }, + "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": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, "node_modules/@types/yargs": { "version": "17.0.32", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", @@ -1265,6 +1275,11 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, + "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", @@ -1277,6 +1292,38 @@ "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-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1296,7 +1343,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -1329,6 +1375,23 @@ "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/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1349,20 +1412,26 @@ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, + "node_modules/async-mutex": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz", + "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true }, - "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true }, "node_modules/babel-jest": { "version": "29.7.0", @@ -1474,14 +1543,27 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/bintrees": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==", - "peer": true + "node_modules/bare-events": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", + "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", + "dev": true, + "optional": true + }, + "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", @@ -1510,7 +1592,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1569,6 +1650,29 @@ "node-int64": "^0.4.0" } }, + "node_modules/bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true, + "engines": { + "node": ">=14.20.1" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -1664,6 +1768,14 @@ "node": ">=10" } }, + "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/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -1733,10 +1845,19 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "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/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -1744,6 +1865,12 @@ "node": ">= 0.8" } }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, "node_modules/component-emitter": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", @@ -1756,8 +1883,12 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "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", @@ -1803,18 +1934,6 @@ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, - "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/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -1901,10 +2020,16 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, "engines": { "node": ">=0.4.0" } }, + "node_modules/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", @@ -1922,6 +2047,14 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -1950,6 +2083,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -1976,8 +2117,7 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encodeurl": { "version": "1.0.2", @@ -2148,22 +2288,11 @@ "node": ">= 0.10.0" } }, - "node_modules/express-prom-bundle": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/express-prom-bundle/-/express-prom-bundle-7.0.0.tgz", - "integrity": "sha512-VwVaCyGBGHkHdecpTqRdW1Jm2fXK8weCUKjGjNWorc9g4M+cZ3xoj+N9uQzfRWfIPXJG5QOaiAziOIalQzMwgA==", - "dependencies": { - "@types/express": "^4.17.21", - "express": "^4.18.2", - "on-finished": "^2.3.0", - "url-value-parser": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "prom-client": ">=15.0.0" - } + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", @@ -2186,6 +2315,15 @@ "bser": "2.1.1" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -2215,6 +2353,38 @@ "node": ">= 0.8" } }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -2232,6 +2402,7 @@ "version": "1.15.5", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true, "funding": [ { "type": "individual", @@ -2251,6 +2422,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -2291,11 +2463,37 @@ "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-minipass/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/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", @@ -2319,6 +2517,25 @@ "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/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -2380,7 +2597,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2464,6 +2680,11 @@ "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.1", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", @@ -2505,9 +2726,42 @@ "node": ">= 0.8" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "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/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { @@ -2557,7 +2811,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -2568,6 +2821,25 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "devOptional": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "devOptional": true + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -2598,7 +2870,6 @@ "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==", - "dev": true, "engines": { "node": ">=8" } @@ -3368,6 +3639,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "devOptional": true + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -3398,6 +3675,89 @@ "node": ">=6" } }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/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/jsonwebtoken/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/jsonwebtoken/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/jsonwebtoken/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/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "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/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -3434,6 +3794,41 @@ "node": ">=8" } }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -3508,6 +3903,11 @@ "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", @@ -3583,7 +3983,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3591,484 +3990,5503 @@ "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==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "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==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, + "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": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, + "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": { - "path-key": "^3.0.0" + "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, - "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/minizlib/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/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/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/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==", + "node_modules/mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "dev": true, "dependencies": { - "ee-first": "1.1.1" + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" }, "engines": { - "node": ">= 0.8" + "node": ">=14.20.1" + }, + "optionalDependencies": { + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } } }, - "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==", + "node_modules/mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", "dev": true, "dependencies": { - "wrappy": "1" + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/mongodb-memory-server": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", + "integrity": "sha512-gzcpgGYlPhuKmria37W+bvYy6W+OkX2UVG7MoP41OWFvQv2Hn7A+fLXkV+lsMmhog1lMQprdV6AR+gixgheLaw==", "dev": true, + "hasInstallScript": true, "dependencies": { - "mimic-fn": "^2.1.0" + "mongodb-memory-server-core": "9.1.6", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.20.1" } }, - "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==", + "node_modules/mongodb-memory-server-core": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.6.tgz", + "integrity": "sha512-3H/dq5II+XcSbK80hicMw4zFlDxcpjt4oWJq76RlOVuLoaf3AFqVheR6Vqx9ymlIqER4Jni58FMCIIRbesia1A==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "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": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.20.1" } }, - "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==", + "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, "dependencies": { - "p-limit": "^2.2.0" + "debug": "^4.3.4" }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "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==", + "node_modules/mongodb-memory-server-core/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=10" }, "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==", + "node_modules/mongodb-memory-server-core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=6" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "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==", + "node_modules/mongodb-memory-server-core/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mongodb-memory-server-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==", + "dev": true + }, + "node_modules/mongodb-memory-server-core/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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mongoose": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.1.tgz", + "integrity": "sha512-UgZZbXSJH0pdU936qj3FyVI+sBsMoGowFnL5R/RYrA50ayn6+ZYdVr8ehsRgNxRcMYwoNld5XzHIfkFRJTePEw==", + "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/@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/mongoose/node_modules/bson": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.4.0.tgz", + "integrity": "sha512-6/gSSEdbkuFlSb+ufj5jUSU4+wo8xQOwm2bDSqwmxiPE17JTpsP63eAwoN8iF8Oy4gJYj+PAL3zdRCTdaw5Y1g==", + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/mongoose/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/mongoose/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/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/mongoose/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/mongoose/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/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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/new-find-package-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-2.0.0.tgz", + "integrity": "sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/new-find-package-json/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/new-find-package-json/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/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/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "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/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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/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-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "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/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "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", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "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-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "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/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "devOptional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "devOptional": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "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==", + "dev": true, + "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", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "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-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/superagent/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/superagent/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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "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/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar/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/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==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "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", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "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==", + "dev": true + }, + "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/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==", + "dev": true, + "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/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/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==", + "dev": true, + "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", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "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-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/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true + }, + "@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@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" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "requires": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@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==", + "dev": true, + "requires": { + "@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" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-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==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true + }, + "@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "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" + } + }, + "@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==", + "dev": true + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@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==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@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==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@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" + } + }, + "@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==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@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==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@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==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@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" + } + }, + "@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==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@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==", + "requires": { + "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" + }, + "dependencies": { + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "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==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "@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==", + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "@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==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@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==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/node": { + "version": "20.11.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", + "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@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==", + "dev": true + }, + "@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==" + }, + "@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@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==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "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==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "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==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "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==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "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==" + }, + "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==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "async-mutex": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz", + "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "@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" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bare-events": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", + "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", + "dev": true, + "optional": true + }, + "bcrypt": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", + "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.11", + "node-addon-api": "^5.0.0" + } + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "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" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "requires": { + "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" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001594", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001594.tgz", + "integrity": "sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "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==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "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==" + }, + "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==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@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" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "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==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "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==" + }, + "electron-to-chromium": { + "version": "1.4.693", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.693.tgz", + "integrity": "sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "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==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true + }, + "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==" + }, + "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==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "requires": { + "@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" + } + }, + "express": { + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "requires": { + "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.5.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" + } + }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "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" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + } + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "requires": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "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" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-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==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "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==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "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==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "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==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "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==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "devOptional": true, + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "devOptional": true + } + } + }, + "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==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": {} + }, + "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==", + "dev": true + }, + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + } + }, + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "devOptional": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-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==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "dependencies": { + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "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==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "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==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "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==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "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==", + "dev": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "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==" + }, + "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==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "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==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "dev": true, + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + } + }, + "mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "dev": true, + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "mongodb-memory-server": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", + "integrity": "sha512-gzcpgGYlPhuKmria37W+bvYy6W+OkX2UVG7MoP41OWFvQv2Hn7A+fLXkV+lsMmhog1lMQprdV6AR+gixgheLaw==", + "dev": true, + "requires": { + "mongodb-memory-server-core": "9.1.6", + "tslib": "^2.6.2" + } + }, + "mongodb-memory-server-core": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.6.tgz", + "integrity": "sha512-3H/dq5II+XcSbK80hicMw4zFlDxcpjt4oWJq76RlOVuLoaf3AFqVheR6Vqx9ymlIqER4Jni58FMCIIRbesia1A==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "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, + "requires": { + "debug": "^4.3.4" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "mongoose": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.1.tgz", + "integrity": "sha512-UgZZbXSJH0pdU936qj3FyVI+sBsMoGowFnL5R/RYrA50ayn6+ZYdVr8ehsRgNxRcMYwoNld5XzHIfkFRJTePEw==", + "requires": { + "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" + }, + "dependencies": { + "@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==", + "requires": { + "@types/webidl-conversions": "*" + } + }, + "bson": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.4.0.tgz", + "integrity": "sha512-6/gSSEdbkuFlSb+ufj5jUSU4+wo8xQOwm2bDSqwmxiPE17JTpsP63eAwoN8iF8Oy4gJYj+PAL3zdRCTdaw5Y1g==" + }, + "mongodb": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + } + }, + "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==", + "requires": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "requires": { + "punycode": "^2.3.0" + } + }, + "whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "requires": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + } + } + } + }, + "mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==" + }, + "mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "requires": { + "debug": "4.x" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "new-find-package-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-2.0.0.tgz", + "integrity": "sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==", + "dev": true, + "requires": { + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "node-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-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==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "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==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "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==" + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + }, + "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==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@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/parseurl": { + "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" - } + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, - "node_modules/path-exists": { + "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/path-is-absolute": { + "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, - "node_modules/path-key": { + "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/path-parse": { + "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/path-to-regexp": { + "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": { + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, - "node_modules/picomatch": { + "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "dev": true }, - "node_modules/pirates": { + "pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } + "dev": true }, - "node_modules/pkg-dir": { + "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "dependencies": { + "requires": { "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/pretty-format": { + "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==", "dev": true, - "dependencies": { + "requires": { "@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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prom-client": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.1.0.tgz", - "integrity": "sha512-cCD7jLTqyPdjEPBo/Xk4Iu8jxjuZgZJ3e/oET3L+ZwOuap/7Cw3dH/TJSsZKs1TQLZ2IHpIlRAKw82ef06kmMw==", - "peer": true, "dependencies": { - "@opentelemetry/api": "^1.4.0", - "tdigest": "^0.1.1" - }, - "engines": { - "node": "^16 || ^18 || >=20" + "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==", + "dev": true + } } }, - "node_modules/prompts": { + "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "dependencies": { + "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" } }, - "node_modules/proxy-addr": { + "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": { + "requires": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" - }, - "engines": { - "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==" + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" }, - "node_modules/pure-rand": { + "pure-rand": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] + "dev": true }, - "node_modules/qs": { + "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { + "requires": { "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/range-parser": { + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "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" - } + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, - "node_modules/raw-body": { + "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": { + "requires": { "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-is": { + "react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/require-directory": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/resolve": { + "resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "dependencies": { + "requires": { "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": { + "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "dependencies": { + "requires": { "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/resolve-from": { + "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/resolve.exports": { + "resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "engines": { - "node": ">=10" + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" } }, - "node_modules/safe-buffer": { + "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" - } - ] + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "node_modules/safer-buffer": { + "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": { + "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } + "dev": true }, - "node_modules/send": { + "send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { + "requires": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -4083,229 +9501,227 @@ "range-parser": "~1.2.1", "statuses": "2.0.1" }, - "engines": { - "node": ">= 0.8.0" + "dependencies": { + "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/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": { + "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": { + "requires": { "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": { + "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==" + }, + "set-function-length": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", - "dependencies": { + "requires": { "define-data-property": "^1.1.2", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/setprototypeof": { + "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "node_modules/shebang-command": { + "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "dependencies": { + "requires": { "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/shebang-regex": { + "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/side-channel": { + "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": { + "requires": { "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/signal-exit": { + "sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, + "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "node_modules/sisteransi": { + "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, - "node_modules/slash": { + "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "devOptional": true + }, + "socks": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "devOptional": true, + "requires": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" } }, - "node_modules/source-map": { + "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/source-map-support": { + "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==", "dev": true, - "dependencies": { + "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/sprintf-js": { + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "requires": { + "memory-pager": "^1.0.2" + } + }, + "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/stack-utils": { + "stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "dependencies": { + "requires": { "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/statuses": { + "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" + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "dev": true, + "requires": { + "bare-events": "^2.2.0", + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" } }, - "node_modules/string-length": { + "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==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, - "dependencies": { + "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/string-width": { + "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { + "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/strip-ansi": { + "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { + "requires": { "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/strip-bom": { + "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==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/strip-final-newline": { + "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } + "dev": true }, - "node_modules/strip-json-comments": { + "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, - "node_modules/superagent": { + "superagent": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", "dev": true, - "dependencies": { + "requires": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.4", "debug": "^4.3.4", @@ -4317,368 +9733,315 @@ "qs": "^6.11.0", "semver": "^7.3.8" }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/superagent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, - "node_modules/superagent/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/superagent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/superagent/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==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/superagent/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/supertest": { + "supertest": { "version": "6.3.4", "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", "dev": true, - "dependencies": { + "requires": { "methods": "^1.1.2", "superagent": "^8.1.2" - }, - "engines": { - "node": ">=6.4.0" } }, - "node_modules/supports-color": { + "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "dependencies": { + "requires": { "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/supports-preserve-symlinks-flag": { + "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" + "dev": true + }, + "tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "requires": { + "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" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } }, - "node_modules/tdigest": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", - "peer": true, - "dependencies": { - "bintrees": "1.0.2" + "tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, - "node_modules/test-exclude": { + "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==", "dev": true, - "dependencies": { + "requires": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" } }, - "node_modules/tmpl": { + "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "node_modules/to-fast-properties": { + "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } + "dev": true }, - "node_modules/to-regex-range": { + "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "dependencies": { + "requires": { "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" } }, - "node_modules/toidentifier": { + "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" + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "requires": { + "punycode": "^2.1.1" } }, - "node_modules/type-detect": { + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } + "dev": true }, - "node_modules/type-fest": { + "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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dev": true }, - "node_modules/type-is": { + "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": { + "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" } }, - "node_modules/undici-types": { + "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==" + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true }, - "node_modules/unpipe": { + "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" - } + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, - "node_modules/update-browserslist-db": { + "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==", "dev": true, - "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": { + "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" } }, - "node_modules/url-value-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.2.0.tgz", - "integrity": "sha512-yIQdxJpgkPamPPAPuGdS7Q548rLhny42tg8d4vyTNzFqvOnwqrgHXvgehT09U7fwrzxi3RxCiXjoNUNnNOlQ8A==", - "engines": { - "node": ">=6.0.0" - } + "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": { + "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" - } + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, - "node_modules/v8-to-istanbul": { + "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==", "dev": true, - "dependencies": { + "requires": { "@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": { + "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" - } + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, - "node_modules/walker": { + "walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "dependencies": { + "requires": { "makeerror": "1.0.12" } }, - "node_modules/which": { + "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==" + }, + "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, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "dependencies": { + "requires": { "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" } }, - "node_modules/wrap-ansi": { + "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==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "dependencies": { + "requires": { "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": { + "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/write-file-atomic": { + "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==", "dev": true, - "dependencies": { + "requires": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/y18n": { + "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } + "dev": true }, - "node_modules/yallist": { + "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yargs": { + "yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "dependencies": { + "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -4686,31 +10049,29 @@ "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" } }, - "node_modules/yargs-parser": { + "yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, - "engines": { - "node": ">=12" + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" } }, - "node_modules/yocto-queue": { + "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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dev": true } } } From f05eaca04a4569b23525bdd167d836e3baa14e51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Villanueva=20Rodr=C3=ADguez?= Date: Thu, 7 Mar 2024 10:39:55 +0100 Subject: [PATCH 61/82] Modificaciones eliminar conexiones repetidas a la base de datos --- questionsService/question-model.js | 3 - questionsService/question-service.js | 9 +- users/userservice/package-lock.json | 4022 +++++++++++++++++++++++++- 3 files changed, 4024 insertions(+), 10 deletions(-) diff --git a/questionsService/question-model.js b/questionsService/question-model.js index fb088967..88657cd0 100644 --- a/questionsService/question-model.js +++ b/questionsService/question-model.js @@ -1,9 +1,6 @@ const mongoose = require('mongoose'); // Conectar a la base de datos MongoDB -mongoose.connect('mongodb://mongodb:27017/questionsdb', { useNewUrlParser: true, useUnifiedTopology: true }) - .then(() => console.log('Conexión exitosa a MongoDB')) - .catch(err => console.error('Error al conectar a MongoDB:', err)); //preguntas const preguntaSchema = new mongoose.Schema({ diff --git a/questionsService/question-service.js b/questionsService/question-service.js index 76e584d9..a2bab851 100644 --- a/questionsService/question-service.js +++ b/questionsService/question-service.js @@ -1,6 +1,5 @@ const express = require('express'); const mongoose = require('mongoose'); -const bcrypt = require('bcrypt'); const jwt = require('jsonwebtoken'); const Model = require('./question-model') @@ -20,7 +19,7 @@ app.use(express.json()); const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; mongoose.connect(mongoUri); -app.get('/getQuestion', async(req,res)=> { +/* app.get('/getQuestion', async(req,res)=> { try{ //coger pregunta bd const questions = await question.obtenerPregunta(); @@ -31,9 +30,9 @@ app.get('/getQuestion', async(req,res)=> { res.status(error.response.status).json({ error: error.response.data.error }); } -}); +}); */ -app.get('/generateQuestions', async(req,res)=> { +/* app.get('/generateQuestions', async(req,res)=> { try{ console.log("Generando preguntas en el question-service"); const instancia = newquestion.ejecutarOperaciones(); @@ -44,7 +43,7 @@ app.get('/generateQuestions', async(req,res)=> { } }); - + */ // Start the server const server = app.listen(port, () => { console.log(`Generate Service listening at http://localhost:${port}`); diff --git a/users/userservice/package-lock.json b/users/userservice/package-lock.json index f21b26cb..46404853 100644 --- a/users/userservice/package-lock.json +++ b/users/userservice/package-lock.json @@ -1,11 +1,10 @@ { "name": "userservice", "version": "1.0.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "userservice", "version": "1.0.0", "license": "ISC", "dependencies": { @@ -5407,5 +5406,4024 @@ "url": "https://github.com/sponsors/sindresorhus" } } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true + }, + "@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "requires": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true + }, + "@babel/helpers": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.7.tgz", + "integrity": "sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + } + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + } + }, + "@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "@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==", + "dev": true + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@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==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@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==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@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" + } + }, + "@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==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@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==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@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==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@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" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@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==", + "requires": { + "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" + } + }, + "@mongodb-js/saslprep": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", + "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "@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==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@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==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@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==", + "requires": { + "undici-types": "~5.26.4" + } + }, + "@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==", + "dev": true + }, + "@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==" + }, + "@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@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==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "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==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "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==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "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==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "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==" + }, + "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==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bcrypt": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", + "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.11", + "node-addon-api": "^5.0.0" + } + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "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" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "bson": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", + "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "requires": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001576", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", + "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "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==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "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==" + }, + "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==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@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" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "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==" + }, + "electron-to-chromium": { + "version": "1.4.623", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz", + "integrity": "sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "requires": { + "@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" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.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" + }, + "dependencies": { + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "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.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "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" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "requires": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "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" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-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==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "requires": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "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==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "requires": { + "get-intrinsic": "^1.2.2" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "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==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "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==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "devOptional": true + }, + "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==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "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==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + } + }, + "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==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "semver": "^7.5.3" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": {} + }, + "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==", + "dev": true + }, + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + } + }, + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "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==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "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==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "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==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "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==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "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==" + }, + "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==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "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==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mongodb": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.2.0.tgz", + "integrity": "sha512-d7OSuGjGWDZ5usZPqfvb36laQ9CPhnWkAGHT61x5P95p/8nMVeH8asloMwW6GcYFeB0Vj4CB/1wOTDG2RA9BFA==", + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^2.6.0" + } + }, + "mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "mongodb-memory-server": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.5.tgz", + "integrity": "sha512-m7yewXoyctu2lwISq/sazwOV/LBkPmAm4ulwoP6J4zzv78ESlAIuQEHoL2+45CTlwxiRM5hfVBQe9HIYEFaBWw==", + "dev": true, + "requires": { + "mongodb-memory-server-core": "9.1.5", + "tslib": "^2.6.2" + } + }, + "mongodb-memory-server-core": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.5.tgz", + "integrity": "sha512-mevjdWrxym+MzMoNsFfCtrXwK3ndb0xHKj+fHT1xoT4l+uflEqvLHt+aRdJrTW5GTGYeVlYHQpQ8hLKMeEL6cg==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "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, + "requires": { + "debug": "^4.3.4" + } + }, + "bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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, + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "dev": true, + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "mongoose": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.0.4.tgz", + "integrity": "sha512-wN9qvdevX3+922VnLT7CpaZRT3jmVCBOK2QMHMGeScQxDRnFMPpkuI9StEPpZo/3x8t+kbzH7F8RMPsyNwyM4w==", + "requires": { + "bson": "^6.2.0", + "kareem": "2.5.1", + "mongodb": "6.2.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==" + }, + "mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "requires": { + "debug": "4.x" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "new-find-package-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-2.0.0.tgz", + "integrity": "sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==", + "dev": true, + "requires": { + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "node-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-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==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "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==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "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==" + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + }, + "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==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@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" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "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==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + }, + "pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "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==" + }, + "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==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "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==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "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" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "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==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "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==" + }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, + "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==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "devOptional": true + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "devOptional": true, + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "requires": { + "memory-pager": "^1.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamx": { + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "dev": true, + "requires": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "dev": true, + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "requires": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "requires": { + "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" + } + }, + "tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dev": true, + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "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==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "requires": { + "punycode": "^2.1.1" + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "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==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "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==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "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==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "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==" + }, + "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==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "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==" + }, + "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==", + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "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==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "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==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "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" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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==", + "dev": true + } } } From 00cfe086d2ec46e38d5b3a735857e74e6db86406 Mon Sep 17 00:00:00 2001 From: sonia Date: Thu, 7 Mar 2024 16:39:17 +0100 Subject: [PATCH 62/82] Cambiado como se leen y se parsean los xml y la llamada a la API de Wikidata --- questionsService/guardarPreguntaBaseDatos.js | 14 +- questionsService/obtenerPreguntasBaseDatos.js | 4 +- questionsService/obtenerPreguntasWikidata.js | 248 ++-- questionsService/package-lock.json | 1209 ++--------------- questionsService/package.json | 7 +- questionsService/preguntas.xml | 4 +- questionsService/question-model.js | 2 - questionsService/question-service.js | 16 +- questionsService/questionGeneration.js | 2 +- 9 files changed, 275 insertions(+), 1231 deletions(-) diff --git a/questionsService/guardarPreguntaBaseDatos.js b/questionsService/guardarPreguntaBaseDatos.js index 4928ce2f..b16b7c1d 100644 --- a/questionsService/guardarPreguntaBaseDatos.js +++ b/questionsService/guardarPreguntaBaseDatos.js @@ -1,5 +1,3 @@ -const mongoose = require('mongoose'); - class GuardarBaseDatos{ constructor(finalQuestion, choice, category){ @@ -9,14 +7,10 @@ class GuardarBaseDatos{ } guardarEnBaseDatos(){ - console.log("Guardando pregunta en la base de datos"); - // Connect to MongoDB - - //primero deberiamos de guardar la categoria - this.guardarCategoria(); - - //cerramos la conexion - } + console.log("Guardando pregunta en la base de datos"); + //primero deberiamos de guardar la categoria + this.guardarCategoria(); + } guardarCategoria(){ console.log("Guardando categoria"); diff --git a/questionsService/obtenerPreguntasBaseDatos.js b/questionsService/obtenerPreguntasBaseDatos.js index a8b083c9..9e6b269b 100644 --- a/questionsService/obtenerPreguntasBaseDatos.js +++ b/questionsService/obtenerPreguntasBaseDatos.js @@ -1,8 +1,6 @@ class ObtenerPreguntas{ - obtenerPregunta(){ - // Connect to MongoDB - + obtenerPregunta(){ var pregunta; var respuestaCorrecta; var respuestaIncorrecta1; diff --git a/questionsService/obtenerPreguntasWikidata.js b/questionsService/obtenerPreguntasWikidata.js index f78bcd5d..752b82ab 100644 --- a/questionsService/obtenerPreguntasWikidata.js +++ b/questionsService/obtenerPreguntasWikidata.js @@ -1,3 +1,7 @@ +const xml2js = require('xml2js'); +const fs = require('fs'); +const axios = require('axios'); + class ObtenerPreguntaWikiData { constructor(language = 'es') { @@ -16,8 +20,7 @@ class ObtenerPreguntaWikiData { this.answers; //para guardar toda la información relativa a las preguntas - this.finalQuestion; - + this.finalQuestion; } /* @@ -25,114 +28,101 @@ class ObtenerPreguntaWikiData { Posteriormente se elige una consulta al azar Se obtiene la consulta y la información que necesitamos para posteriores métodos */ - leerYSacarConsultas() { - console.log('Se ha cargado la query leer y sacar consultas'); - //abrimos el xml con las preguntas - const xhr = new XMLHttpRequest(); - xhr.open('GET', "preguntas.xml", true); - - xhr.onload = () => { - if (xhr.status === 200) { - const xmlString = xhr.responseText; - const parser = new DOMParser(); - const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); - console.log('Cargamos fichero'); - //obtenemos todas las consultas disponibles - var preguntas = xmlDoc.getElementsByTagName('pregunta'); - console.log('Cargamos preguntas'); - //cogemos una consulta de forma aleatoria - var pregunta = preguntas[Math.floor(Math.random() * preguntas.length)]; - //obtenemos la informacion relativa a la pregunta - this.question = pregunta.getAttribute('question'); - this.type = pregunta.getAttribute('type'); - this.category = pregunta.getAttribute('category'); - - //obtenemos la consulta que vamos a realizar - var query = pregunta.getElementsByTagName('query')[0].textContent; - - console.log('Justo antes del select'); - //obtenemos los datos que estan en la select de la consulta para posteriormente obtener la informacion del binding.result - var consultaParte = query.match(/SELECT(.*?)WHERE/s)[1].trim(); - - // Dividir la parte de la consulta por los símbolos '?' para obtener las labels - this.labels = consultaParte.split('?').map(part => part.trim()).filter(part => part !== ''); - - console.log("SE HA CARGADO LA CONSULTA"); - //obtenemos todas las entradas de wikidata para esa query - this.obtenerEntidadesConsulta(query); - - } else { - console.error('Error al cargar el archivo:', xhr.statusText); + leerYSacarConsultas() { + // Leer el archivo XML + fs.readFile('preguntas.xml', 'utf-8', (err, data) => { + + if (err) { + console.error('Error al leer el archivo:', err); + return; + } + + // Parsear el XML + xml2js.parseString(data, (parseErr, result) => { + if (parseErr) { + console.error('Error al analizar el XML:', parseErr); + return; } - }; - - xhr.onerror = () => { - console.error('Error de red al cargar el archivo.'); - }; - - xhr.send(); - } + // Obtener las preguntas disponibles + var preguntas = result.preguntas.pregunta; + + // Seleccionar una pregunta aleatoria + var pregunta = preguntas[Math.floor(Math.random() * preguntas.length)]; + + // Obtener la información relativa a la pregunta + this.question = pregunta.$.question; + this.type = pregunta.$.type; + this.category = pregunta.$.category; + + // Obtener la consulta + var query = pregunta.query[0]; + var consultaParte = query.match(/SELECT(.*?)WHERE/s)[1].trim(); + + // Dividir la parte de la consulta por los símbolos '?' para obtener las labels + this.labels = consultaParte.split('?').map(part => part.trim()).filter(part => part !== ''); + + //obtenemos todas las entradas de wikidata para esa query + this.obtenerEntidadesConsulta(query); + }); + }); + } /* Hace una llamada a la API para poder obtener la información relativa a la consulta Si la llamada tiene exito se llama a otro metodo para procesar la información */ obtenerEntidadesConsulta(consulta){ - console.log("ENTRA EN OBTENER ENTIDD"); const apiUrl = 'https://query.wikidata.org/sparql'; - $.ajax({ - url: apiUrl, - data: { - query: consulta, - format: 'json' - }, - dataType: 'json', - success: this.obtenerInformacionParaPregunta.bind(this), - error: function(error) { - console.log('Error:', error); - } - }); + axios.get(apiUrl, { + params: { + query: consulta, + format: 'json' + } + }) + .then(response => { + this.obtenerInformacionParaPregunta(response.data); + }) + .catch(error => { + console.error('Error:', error); + }); } /* Obtenemos 4 entidades aleatorias de los datos devueltos por la consulta que hemos realizado */ obtenerInformacionParaPregunta(data){ - //obtenemos el label y el resultado de todas las entidades - if(data && data.results && data.results.bindings.length > 0){ - var entidades = data.results.bindings.map(binding => { - return { - //obtenemos el label de la "pregunta" (ejemplo country) - label: this.obtenerValorPropiedad(binding, this.labels[1]), - //obtenemos el label de la "respuesta" (ejemplo capital) - result: this.obtenerValorPropiedad(binding, this.labels[2]) - }; - }); - - //obtenemos 4 índices aleatorios únicos - var indicesAleatorios = []; - while(indicesAleatorios.length < 4){ - var indiceAleatorio = Math.floor(Math.random() * entidades.length); - if(!indicesAleatorios.includes(indiceAleatorio)){ - indicesAleatorios.push(indiceAleatorio); - } - } - - //obtenemos las 4 entidades aleatorias que vamos a utilizar para generar la pregunta - this.answers = indicesAleatorios.map(indice => entidades[indice]); - - console.log("entramos en obtener informacion para pregunta"); - - this.generarTextoPregunta(); - } + //obtenemos el label y el resultado de todas las entidades + if(data && data.results && data.results.bindings.length > 0){ + var entidades = data.results.bindings.map(binding => { + return { + //obtenemos el label de la "pregunta" (ejemplo country) + label: this.obtenerValorPropiedad(binding, this.labels[1]), + //obtenemos el label de la "respuesta" (ejemplo capital) + result: this.obtenerValorPropiedad(binding, this.labels[2]) + }; + }); + + //obtenemos 4 índices aleatorios únicos + var indicesAleatorios = []; + while(indicesAleatorios.length < 4){ + var indiceAleatorio = Math.floor(Math.random() * entidades.length); + if(!indicesAleatorios.includes(indiceAleatorio)){ + indicesAleatorios.push(indiceAleatorio); + } + } + + //obtenemos las 4 entidades aleatorias que vamos a utilizar para generar la pregunta + this.answers = indicesAleatorios.map(indice => entidades[indice]); + + this.generarTextoPregunta(); + } } /* obtenemos el valor que queremos de la entidad */ obtenerValorPropiedad(binding, propertyName) { - console.log("entramos en obtener valor propiedad"); //si tiene la if (binding && binding.hasOwnProperty(propertyName)) { return binding[propertyName].value; @@ -145,42 +135,57 @@ class ObtenerPreguntaWikiData { generamos la pregunta con la información que hemos obtenido */ generarTextoPregunta(){ - const xhr = new XMLHttpRequest(); - xhr.open('GET', "esqueletoPreguntas.xml", true); - - xhr.onload = () => { - console.log("entramos en generar texto pregunta"); - if (xhr.status === 200) { - const xmlString = xhr.responseText; - const parser = new DOMParser(); - const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); - - //obtiene todos los esqueletos de las preguntas - var textoPregunta = xmlDoc.querySelector('pregunta[question="' + this.question + '"][type="' + this.type +'"]').textContent; - - //comprobamos que el resultado es valido para hacer la pregunta (que no sea QXXXXX) - var preguntaCorrecta = this.answers.find(entidad => { - return !entidad.label.startsWith('Q') && /\d/.test(entidad.label); - }); - - if(preguntaCorrecta){ - //rellenamos el esqueleto de la pregunta con los datos de la entidad - var pregunta = preguntaCorrecta.label; - var respuestaCorrecta = preguntaCorrecta.result; - var consulta = textoPregunta.replace('{RELLENAR}', pregunta); - - generarPregunta(consulta, respuestaCorrecta); - } + //leemos el archivo + fs.readFile('esqueletoPreguntas.xml', 'utf-8', (err, data) => { + if (err) { + console.error('Error al leer el esqueleto de las preguntas:', err); + return; + } + + //parseamos el xml + xml2js.parseString(data, (parseErr, result) => { + if (parseErr) { + console.error('Error al analizar el esqueleto de las preguntas:', parseErr); + return; + } + + //obtenemos el esqueleto de la pregunta que queremos hacer + var textoPregunta = this.obtenerTextoPregunta(result, this.question, this.type); + + //comprobamos que el resultado es valido para hacer la pregunta (que no sea QXXXXX) + var preguntaCorrecta = this.answers.find(entidad => { + return entidad.label !== "Ninguna de las anteriores"; + }); + + if(preguntaCorrecta){ + //rellenamos el esqueleto de la pregunta con los datos de la entidad + var pregunta = preguntaCorrecta.label; + var respuestaCorrecta = preguntaCorrecta.result; + var consulta = textoPregunta.replace('{RELLENAR}', pregunta); + + this.generarPregunta(consulta, respuestaCorrecta); + } + }); + }); + } + + /* + obtenemos el texto de la pregunta que queremos hacer + */ + obtenerTextoPregunta(result, question, type) { + var preguntas = result.textoPreguntas.pregunta; + for (var pregunta of preguntas) { + if (pregunta.$.question === question && pregunta.$.type === type) { + return pregunta._; } - }; - xhr.send(); + } + return ""; } /* generamos un json con la info necesaria de la pregunta para poder guardarla en la base de datos */ generarPregunta(consulta, respuestaCorrecta){ - console.log("entramos en generar pregunta"); var respuestasIncorrectas = []; var num = 0; //añadimos el resto de respuestas @@ -193,17 +198,16 @@ class ObtenerPreguntaWikiData { //guardamos la pregunta para añadirla a la base de datos this.finalQuestion = { - question: consulta, + question: consulta.trim().replace(/\r?\n|\r/g, ''), correct: respuestaCorrecta, incorrect1: respuestasIncorrectas[0], incorrect2: respuestasIncorrectas[1], incorrect3: respuestasIncorrectas[2] - } + } } obtenerPregunta(){ - console.log("entramos en obtener pregunta"); - return finalQuestion; + return this.finalQuestion; } } diff --git a/questionsService/package-lock.json b/questionsService/package-lock.json index cd34fb92..27dff241 100644 --- a/questionsService/package-lock.json +++ b/questionsService/package-lock.json @@ -9,11 +9,10 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "bcrypt": "^5.1.1", - "body-parser": "^1.20.2", + "axios": "^0.24.0", "express": "^4.18.2", - "jsonwebtoken": "^9.0.2", - "mongoose": "^8.0.4" + "mongoose": "^8.0.4", + "xml2js": "^0.4.23" }, "devDependencies": { "jest": "^29.7.0", @@ -1053,77 +1052,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "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/@mapbox/node-pre-gyp/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/@mapbox/node-pre-gyp/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/@mapbox/node-pre-gyp/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/@mapbox/node-pre-gyp/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/@mapbox/node-pre-gyp/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/@mongodb-js/saslprep": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz", @@ -1275,11 +1203,6 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, - "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", @@ -1292,38 +1215,6 @@ "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-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1343,6 +1234,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -1375,23 +1267,6 @@ "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/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1427,6 +1302,14 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "dependencies": { + "follow-redirects": "^1.14.4" + } + }, "node_modules/b4a": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", @@ -1543,7 +1426,8 @@ "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==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/bare-events": { "version": "2.2.1", @@ -1552,19 +1436,6 @@ "dev": true, "optional": true }, - "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", @@ -1592,6 +1463,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1668,11 +1540,6 @@ "node": "*" } }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -1768,14 +1635,6 @@ "node": ">=10" } }, - "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/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -1845,14 +1704,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1883,12 +1734,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/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==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/content-disposition": { "version": "0.5.4", @@ -2025,11 +1872,6 @@ "node": ">=0.4.0" } }, - "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", @@ -2047,14 +1889,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "engines": { - "node": ">=8" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2083,14 +1917,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2117,7 +1943,8 @@ "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==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/encodeurl": { "version": "1.0.2", @@ -2402,7 +2229,6 @@ "version": "1.15.5", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", - "dev": true, "funding": [ { "type": "individual", @@ -2463,37 +2289,11 @@ "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-minipass/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/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "node_modules/fsevents": { "version": "2.3.3", @@ -2517,25 +2317,6 @@ "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/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -2597,6 +2378,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2680,11 +2462,6 @@ "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.1", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", @@ -2726,39 +2503,6 @@ "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/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -2811,6 +2555,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -2870,6 +2615,7 @@ "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==", + "dev": true, "engines": { "node": ">=8" } @@ -3675,81 +3421,6 @@ "node": ">=6" } }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsonwebtoken/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/jsonwebtoken/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/jsonwebtoken/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/jsonwebtoken/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/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/kareem": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", @@ -3794,41 +3465,6 @@ "node": ">=8" } }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -3983,6 +3619,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3990,53 +3627,6 @@ "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/minizlib/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/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": "5.9.2", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", @@ -4431,49 +4021,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "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/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -4486,20 +4033,6 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "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/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -4521,25 +4054,6 @@ "node": ">=8" } }, - "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", @@ -4563,6 +4077,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "dependencies": { "wrappy": "1" } @@ -4672,6 +4187,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -4864,19 +4380,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "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/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4933,20 +4436,6 @@ "node": ">=10" } }, - "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", @@ -4971,6 +4460,11 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -5022,11 +4516,6 @@ "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.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", @@ -5094,7 +4583,8 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, "node_modules/sisteransi": { "version": "1.0.5", @@ -5201,14 +4691,6 @@ "bare-events": "^2.2.0" } }, - "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-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -5226,6 +4708,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5239,6 +4722,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5402,22 +4886,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "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/tar-stream": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", @@ -5429,11 +4897,6 @@ "streamx": "^2.15.0" } }, - "node_modules/tar/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/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -5578,11 +5041,6 @@ "browserslist": ">= 4.21.0" } }, - "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", @@ -5658,14 +5116,6 @@ "node": ">= 8" } }, - "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/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -5686,7 +5136,8 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/write-file-atomic": { "version": "4.0.2", @@ -5701,6 +5152,26 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -6539,77 +6010,23 @@ "@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==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@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==", - "requires": { - "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" - }, - "dependencies": { - "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==", - "requires": { - "yallist": "^4.0.0" - } - }, - "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==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } - } - }, - "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@mongodb-js/saslprep": { @@ -6763,11 +6180,6 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -6777,29 +6189,6 @@ "negotiator": "0.6.3" } }, - "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==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -6812,7 +6201,8 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "ansi-styles": { "version": "4.3.0", @@ -6833,20 +6223,6 @@ "picomatch": "^2.0.4" } }, - "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==" - }, - "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==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -6882,6 +6258,14 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "requires": { + "follow-redirects": "^1.14.4" + } + }, "b4a": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", @@ -6976,7 +6360,8 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "bare-events": { "version": "2.2.1", @@ -6985,15 +6370,6 @@ "dev": true, "optional": true }, - "bcrypt": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", - "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.11", - "node-addon-api": "^5.0.0" - } - }, "body-parser": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", @@ -7017,6 +6393,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7064,11 +6441,6 @@ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" - }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -7126,11 +6498,6 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, "ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -7181,11 +6548,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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==" - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -7210,12 +6572,8 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "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==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "content-disposition": { "version": "0.5.4", @@ -7315,11 +6673,6 @@ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -7330,11 +6683,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, - "detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" - }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -7357,14 +6705,6 @@ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7385,7 +6725,8 @@ "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==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -7610,8 +6951,7 @@ "follow-redirects": { "version": "1.15.5", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", - "dev": true + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "4.0.0", @@ -7646,33 +6986,11 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "fsevents": { "version": "2.3.3", @@ -7686,22 +7004,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "requires": { - "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" - } - }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -7742,6 +7044,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7795,11 +7098,6 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, "hasown": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", @@ -7832,30 +7130,6 @@ "toidentifier": "1.0.1" } }, - "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==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -7890,6 +7164,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -7941,7 +7216,8 @@ "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==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-generator-fn": { "version": "2.1.0", @@ -8553,70 +7829,6 @@ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, - "jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "dependencies": { - "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==", - "requires": { - "yallist": "^4.0.0" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, "kareem": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", @@ -8649,41 +7861,6 @@ "p-locate": "^4.1.0" } }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -8801,44 +7978,11 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, "mongodb": { "version": "5.9.2", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", @@ -9097,40 +8241,6 @@ } } }, - "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-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==", - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "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==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -9143,14 +8253,6 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { - "abbrev": "1" - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -9166,22 +8268,6 @@ "path-key": "^3.0.0" } }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "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==" - }, "object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -9199,6 +8285,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "requires": { "wrappy": "1" } @@ -9273,7 +8360,8 @@ "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==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true }, "path-key": { "version": "3.1.1", @@ -9410,16 +8498,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -9458,14 +8536,6 @@ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -9476,6 +8546,11 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -9520,11 +8595,6 @@ "send": "0.18.0" } }, - "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==" - }, "set-function-length": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", @@ -9577,7 +8647,8 @@ "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==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, "sisteransi": { "version": "1.0.5", @@ -9662,14 +8733,6 @@ "queue-tick": "^1.0.1" } }, - "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==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -9684,6 +8747,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -9694,6 +8758,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -9806,26 +8871,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "requires": { - "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" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, "tar-stream": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", @@ -9931,11 +8976,6 @@ "picocolors": "^1.0.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -9990,14 +9030,6 @@ "isexe": "^2.0.0" } }, - "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==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -10012,7 +9044,8 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "write-file-atomic": { "version": "4.0.2", @@ -10024,6 +9057,20 @@ "signal-exit": "^3.0.7" } }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/questionsService/package.json b/questionsService/package.json index fc1c7476..a1f068f3 100644 --- a/questionsService/package.json +++ b/questionsService/package.json @@ -18,11 +18,10 @@ }, "homepage": "https://github.com/arquisoft/wiq_es05c#readme", "dependencies": { - "bcrypt": "^5.1.1", - "body-parser": "^1.20.2", "express": "^4.18.2", - "jsonwebtoken": "^9.0.2", - "mongoose": "^8.0.4" + "mongoose": "^8.0.4", + "xml2js": "^0.4.23", + "axios": "^0.24.0" }, "devDependencies": { "jest": "^29.7.0", diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index 8b4e01ea..b97bb6c1 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -7,7 +7,7 @@ { ?country wdt:P31 wd:Q3624078. # Instance of country ?country wdt:P36 ?capital. # Has capital - SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". } } @@ -20,7 +20,7 @@ ?state wdt:P31 wd:Q35657 . ?state p:P36 ?statement . ?statement ps:P36 ?capital . - SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". } } diff --git a/questionsService/question-model.js b/questionsService/question-model.js index 88657cd0..29f7560d 100644 --- a/questionsService/question-model.js +++ b/questionsService/question-model.js @@ -1,7 +1,5 @@ const mongoose = require('mongoose'); -// Conectar a la base de datos MongoDB - //preguntas const preguntaSchema = new mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, diff --git a/questionsService/question-service.js b/questionsService/question-service.js index a2bab851..d7b82230 100644 --- a/questionsService/question-service.js +++ b/questionsService/question-service.js @@ -1,7 +1,8 @@ const express = require('express'); const mongoose = require('mongoose'); -const jwt = require('jsonwebtoken'); -const Model = require('./question-model') + +const xml2js = require('xml2js'); +const fs = require('fs'); const Question = require("./obtenerPreguntasBaseDatos"); const question = new Question(); @@ -19,7 +20,9 @@ app.use(express.json()); const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; mongoose.connect(mongoUri); -/* app.get('/getQuestion', async(req,res)=> { +const instancia = newquestion.ejecutarOperaciones(); + +app.get('/getQuestion', async(req,res)=> { try{ //coger pregunta bd const questions = await question.obtenerPregunta(); @@ -30,9 +33,9 @@ mongoose.connect(mongoUri); res.status(error.response.status).json({ error: error.response.data.error }); } -}); */ +}); -/* app.get('/generateQuestions', async(req,res)=> { +app.get('/generateQuestions', async(req,res)=> { try{ console.log("Generando preguntas en el question-service"); const instancia = newquestion.ejecutarOperaciones(); @@ -43,7 +46,8 @@ mongoose.connect(mongoUri); } }); - */ + + // Start the server const server = app.listen(port, () => { console.log(`Generate Service listening at http://localhost:${port}`); diff --git a/questionsService/questionGeneration.js b/questionsService/questionGeneration.js index 2a412bc5..916c3ced 100644 --- a/questionsService/questionGeneration.js +++ b/questionsService/questionGeneration.js @@ -9,7 +9,7 @@ class GenerarPregunta { ejecutarOperaciones() { console.log(`Ejecutando operaciones`); preguntaWiki.leerYSacarConsultas(); - guardarPregunta.guardarEnBaseDatos(preguntaWiki.obtenerPregunta()); + //guardarPregunta.guardarEnBaseDatos(preguntaWiki.obtenerPregunta()); } } From 2851bd66985f4e1316a078a0633a18b9135263c2 Mon Sep 17 00:00:00 2001 From: sonia Date: Thu, 7 Mar 2024 20:19:21 +0100 Subject: [PATCH 63/82] Arreglar el guardado de la pregunta obtenida de wikidata a la base de datos --- questionsService/guardarPreguntaBaseDatos.js | 155 ++++++----- questionsService/obtenerPreguntasBaseDatos.js | 38 ++- questionsService/obtenerPreguntasWikidata.js | 246 ++++++++++-------- questionsService/question-model.js | 4 - questionsService/question-service.js | 7 +- questionsService/questionGeneration.js | 7 +- 6 files changed, 252 insertions(+), 205 deletions(-) diff --git a/questionsService/guardarPreguntaBaseDatos.js b/questionsService/guardarPreguntaBaseDatos.js index b16b7c1d..e1b4da57 100644 --- a/questionsService/guardarPreguntaBaseDatos.js +++ b/questionsService/guardarPreguntaBaseDatos.js @@ -1,77 +1,96 @@ +const mongoose = require('mongoose'); +const Categoria = mongoose.model('Categoria'); +const Pregunta = mongoose.model('Pregunta'); +const Tipos = mongoose.model('Tipos'); +const Respuesta = mongoose.model('Respuesta'); + class GuardarBaseDatos{ - constructor(finalQuestion, choice, category){ - this.finalQuestion = finalQuestion; - this.choice = choice; - this.category = category; + constructor(){ + this.finalQuestion; } - guardarEnBaseDatos(){ - console.log("Guardando pregunta en la base de datos"); + guardarEnBaseDatos(finalQuestion){ + this.finalQuestion = finalQuestion; //primero deberiamos de guardar la categoria - this.guardarCategoria(); + this.guardarCategoria().then(idCategoria => { + // Guardamos el tipo de pregunta + return this.guardarPreguntaTipo(idCategoria); + }).then(idTipo => { + // Guardamos las respuestas incorrectas + this.guardarPrimeraIncorrecta(idTipo); + this.guardarSegundaIncorrecta(idTipo); + this.guardarTerceraIncorrecta(idTipo); + }).catch(error => { + console.error("Error al guardar la categoría o el tipo de pregunta:", error); + }); } guardarCategoria(){ - console.log("Guardando categoria"); - var idCategoria; - - Categoria.findOne({ textoPregunta: this.finalQuestion.category }) - .then(categoriaExistente => { - if (!categoriaExistente) { - // Si no existe ya esa categoria la crea - var nuevaCategoria = new Categoria({ - nombre: this.category, - }); - - //Guardamos la nueva pregunta - nuevaCategoria.save().then(categoriaGuardada => { - //guardamos el id de la categoria nueva - idCategoria = categoriaGuardada._id; - }); - } - - else{ - //guardamos el id de la categoria existente - idCategoria = categoriaExistente._id; - } - }); - - this.guardarPreguntaTipo(idCategoria); + return new Promise((resolve, reject) => { + var idCategoria; + + Categoria.findOne({ nombre: this.finalQuestion.category }) + .then(categoriaExistente => { + if (!categoriaExistente) { + // Si no existe ya esa categoria la crea + var nuevaCategoria = new Categoria({ + nombre: this.finalQuestion.category, + }); + + //Guardamos la nueva pregunta + nuevaCategoria.save().then(categoriaGuardada => { + //guardamos el id de la categoria nueva + idCategoria = categoriaGuardada._id; + resolve(idCategoria); + }); + } + + else{ + //guardamos el id de la categoria existente + idCategoria = categoriaExistente._id; + resolve(idCategoria); + } + }); + }) .catch(error => { + console.error("Error al ejecutar la consulta:", error); + reject(error); // Rechazamos la Promesa con el error + }); } guardarPreguntaTipo(idCategoria){ - console.log("Guardando pregunta y tipo"); - var idTipo; - // Comprobar si la pregunta ya existe - Pregunta.findOne({ textoPregunta: this.finalQuestion.question }) - .then(preguntaExistente => { - if (!preguntaExistente) { - // Si no existe la pregunta, se crea - var nuevaPregunta = new Pregunta({ - textoPregunta: this.finalQuestion.question, - respuestaCorrecta: this.finalQuestion.correct, - categoria: idCategoria - }); - - // Guardar la nueva pregunta - nuevaPregunta.save() - .then(preguntaGuardada => { - - // Comprobar si existe el tipo de la pregunta y asociarlo - Tipos.findOne({ nombreTipo: this.choice }) - .then(tipoExistente => { - if (!tipoExistente) { - // Si no existe el tipo, se crea - var nuevoTipo = new Tipos({ - idPreguntas: [preguntaGuardada._id], - nombreTipo: this.choice - }); - + return new Promise((resolve, reject) => { + var idTipo; + // Comprobar si la pregunta ya existe + Pregunta.findOne({ textoPregunta: this.finalQuestion.question }) + .then(preguntaExistente => { + if (!preguntaExistente) { + // Si no existe la pregunta, se crea + var nuevaPregunta = new Pregunta({ + textoPregunta: this.finalQuestion.question, + respuestaCorrecta: this.finalQuestion.correct, + categoria: idCategoria + }); + + // Guardar la nueva pregunta + nuevaPregunta.save() + .then(preguntaGuardada => { + + // Comprobar si existe el tipo de la pregunta y asociarlo + Tipos.findOne({ nombreTipo: this.finalQuestion.type }) + .then(tipoExistente => { + if (!tipoExistente) { + // Si no existe el tipo, se crea + var nuevoTipo = new Tipos({ + idPreguntas: [preguntaGuardada._id], + nombreTipo: this.finalQuestion.type + }); + // Guardar el nuevo tipo nuevoTipo.save().then(tipoGuardado => { //guardamos el id del tipo idTipo = tipoGuardado._id; + resolve(idTipo); }); } else { @@ -81,27 +100,27 @@ class GuardarBaseDatos{ tipoExistente.save().then(tipoGuardado => { //guardamos el id del tipo idTipo = tipoGuardado._id; + resolve(idTipo); }); } }); }); } + }).catch(error => { + console.error("Error al ejecutar la consulta:", error); + reject(error); // Rechazamos la Promesa con el error + }); }); - - this.guardarPrimeraIncorrecta(idTipo); - this.guardarSegundaIncorrecta(idTipo); - this.guardarTerceraIncorrecta(idTipo); } guardarPrimeraIncorrecta(idTipo){ - console.log("Guardando primera incorrecta"); //comprobar si la primera respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect1 }) .then(respuestaExistente => { if (!respuestaExistente) { // Si no existe ya esa pregunta la crea var nuevaRespuesta = new Respuesta({ - textoRespuesta: this.finalQuestion.question, + textoRespuesta: this.finalQuestion.incorrect1, tipos: [idTipo] }); @@ -121,14 +140,13 @@ class GuardarBaseDatos{ } guardarSegundaIncorrecta(idTipo){ - console.log("Guardando segunda incorrecta"); //comprobar si la segunda respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect2 }) .then(respuestaExistente => { if (!respuestaExistente) { // Si no existe ya esa pregunta la crea var nuevaRespuesta = new Respuesta({ - textoRespuesta: this.finalQuestion.question, + textoRespuesta: this.finalQuestion.incorrect2, tipos: [idTipo] }); @@ -148,14 +166,13 @@ class GuardarBaseDatos{ } guardarTerceraIncorrecta(idTipo){ - console.log("Guardando tercera incorrecta"); //comprobar si la tercera respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect3 }) .then(respuestaExistente => { if (!respuestaExistente) { // Si no existe ya esa pregunta la crea var nuevaRespuesta = new Respuesta({ - textoRespuesta: this.finalQuestion.question, + textoRespuesta: this.finalQuestion.incorrect3, tipos: [idTipo] }); diff --git a/questionsService/obtenerPreguntasBaseDatos.js b/questionsService/obtenerPreguntasBaseDatos.js index 9e6b269b..a5416bda 100644 --- a/questionsService/obtenerPreguntasBaseDatos.js +++ b/questionsService/obtenerPreguntasBaseDatos.js @@ -1,22 +1,30 @@ +const mongoose = require('mongoose'); + +const Categoria = mongoose.model('Categoria'); +const Pregunta = mongoose.model('Pregunta'); +const Tipos = mongoose.model('Tipos'); +const Respuesta = mongoose.model('Respuesta'); + class ObtenerPreguntas{ - obtenerPregunta(){ - var pregunta; - var respuestaCorrecta; - var respuestaIncorrecta1; - var respuestaIncorrecta2; - var respuestaIncorrecta3; + obtenerPregunta(){ + console.log("Obteniendo pregunta"); + var pregunta; + var respuestaCorrecta; + var respuestaIncorrecta1; + var respuestaIncorrecta2; + var respuestaIncorrecta3; - Pregunta.aggregate([ + Pregunta.aggregate([ { $sample: { size: 1 } } ]).then(pregunta => { var pregunta_id = pregunta._id; pregunta = pregunta.textoPregunta; - Tipo.findOne({ _id: { $in: pregunta.pregunta_id } }).then(tipo => { - console.log(tipo_id); - respuestaCorrecta = pregunta.respuestaCorrecta; - console.log(respuestaCorrecta); - Respuesta.aggregate([ + Tipos.findOne({ _id: { $in: pregunta.pregunta_id } }).then(tipo => { + console.log(tipo_id); + respuestaCorrecta = pregunta.respuestaCorrecta; + console.log(respuestaCorrecta); + Respuesta.aggregate([ { $match: { nombreTipo: tipo._id, texto: { $ne: [respuestaCorrecta, "Ninguna de las anteriores" ]} } }, { $sample: { size: 3 } } @@ -35,6 +43,12 @@ class ObtenerPreguntas{ console.error(err); }); + console.log(pregunta); + console.log(respuestaCorrecta); + console.log(respuestaIncorrecta1); + console.log(respuestaIncorrecta2); + console.log(respuestaIncorrecta3); + return resultado = { pregunta: pregunta.textoPregunta, correcta: respuestaCorrecta, diff --git a/questionsService/obtenerPreguntasWikidata.js b/questionsService/obtenerPreguntasWikidata.js index 752b82ab..583ddf11 100644 --- a/questionsService/obtenerPreguntasWikidata.js +++ b/questionsService/obtenerPreguntasWikidata.js @@ -29,40 +29,44 @@ class ObtenerPreguntaWikiData { Se obtiene la consulta y la información que necesitamos para posteriores métodos */ leerYSacarConsultas() { - // Leer el archivo XML - fs.readFile('preguntas.xml', 'utf-8', (err, data) => { - - if (err) { - console.error('Error al leer el archivo:', err); - return; - } - - // Parsear el XML - xml2js.parseString(data, (parseErr, result) => { - if (parseErr) { - console.error('Error al analizar el XML:', parseErr); + return new Promise((resolve, reject) => { + // Leer el archivo XML + fs.readFile('preguntas.xml', 'utf-8', (err, data) => { + + if (err) { + console.error('Error al leer el archivo:', err); return; } - // Obtener las preguntas disponibles - var preguntas = result.preguntas.pregunta; - - // Seleccionar una pregunta aleatoria - var pregunta = preguntas[Math.floor(Math.random() * preguntas.length)]; - - // Obtener la información relativa a la pregunta - this.question = pregunta.$.question; - this.type = pregunta.$.type; - this.category = pregunta.$.category; - - // Obtener la consulta - var query = pregunta.query[0]; - var consultaParte = query.match(/SELECT(.*?)WHERE/s)[1].trim(); - - // Dividir la parte de la consulta por los símbolos '?' para obtener las labels - this.labels = consultaParte.split('?').map(part => part.trim()).filter(part => part !== ''); - - //obtenemos todas las entradas de wikidata para esa query - this.obtenerEntidadesConsulta(query); + + // Parsear el XML + xml2js.parseString(data, (parseErr, result) => { + if (parseErr) { + console.error('Error al analizar el XML:', parseErr); + return; + } + // Obtener las preguntas disponibles + var preguntas = result.preguntas.pregunta; + + // Seleccionar una pregunta aleatoria + var pregunta = preguntas[Math.floor(Math.random() * preguntas.length)]; + + // Obtener la información relativa a la pregunta + this.question = pregunta.$.question; + this.type = pregunta.$.type; + this.category = pregunta.$.category; + + // Obtener la consulta + var query = pregunta.query[0]; + var consultaParte = query.match(/SELECT(.*?)WHERE/s)[1].trim(); + + // Dividir la parte de la consulta por los símbolos '?' para obtener las labels + this.labels = consultaParte.split('?').map(part => part.trim()).filter(part => part !== ''); + + //obtenemos todas las entradas de wikidata para esa query + this.obtenerEntidadesConsulta(query) + .then(() => resolve()) + .catch(error => reject(error)); + }); }); }); } @@ -71,20 +75,24 @@ class ObtenerPreguntaWikiData { Hace una llamada a la API para poder obtener la información relativa a la consulta Si la llamada tiene exito se llama a otro metodo para procesar la información */ - obtenerEntidadesConsulta(consulta){ - const apiUrl = 'https://query.wikidata.org/sparql'; - - axios.get(apiUrl, { - params: { - query: consulta, - format: 'json' - } - }) - .then(response => { - this.obtenerInformacionParaPregunta(response.data); - }) - .catch(error => { - console.error('Error:', error); + obtenerEntidadesConsulta(consulta){ + return new Promise((resolve, reject) => { + const apiUrl = 'https://query.wikidata.org/sparql'; + + axios.get(apiUrl, { + params: { + query: consulta, + format: 'json' + } + }) + .then(response => { + this.obtenerInformacionParaPregunta(response.data) + .then(() => resolve()) + .catch(error => reject(error)); + }) + .catch(error => { + console.error('Error:', error); + }); }); } @@ -92,31 +100,35 @@ class ObtenerPreguntaWikiData { Obtenemos 4 entidades aleatorias de los datos devueltos por la consulta que hemos realizado */ obtenerInformacionParaPregunta(data){ - //obtenemos el label y el resultado de todas las entidades - if(data && data.results && data.results.bindings.length > 0){ - var entidades = data.results.bindings.map(binding => { - return { - //obtenemos el label de la "pregunta" (ejemplo country) - label: this.obtenerValorPropiedad(binding, this.labels[1]), - //obtenemos el label de la "respuesta" (ejemplo capital) - result: this.obtenerValorPropiedad(binding, this.labels[2]) - }; - }); + return new Promise((resolve, reject) => { + //obtenemos el label y el resultado de todas las entidades + if(data && data.results && data.results.bindings.length > 0){ + var entidades = data.results.bindings.map(binding => { + return { + //obtenemos el label de la "pregunta" (ejemplo country) + label: this.obtenerValorPropiedad(binding, this.labels[1]), + //obtenemos el label de la "respuesta" (ejemplo capital) + result: this.obtenerValorPropiedad(binding, this.labels[2]) + }; + }); - //obtenemos 4 índices aleatorios únicos - var indicesAleatorios = []; - while(indicesAleatorios.length < 4){ - var indiceAleatorio = Math.floor(Math.random() * entidades.length); - if(!indicesAleatorios.includes(indiceAleatorio)){ - indicesAleatorios.push(indiceAleatorio); + //obtenemos 4 índices aleatorios únicos + var indicesAleatorios = []; + while(indicesAleatorios.length < 4){ + var indiceAleatorio = Math.floor(Math.random() * entidades.length); + if(!indicesAleatorios.includes(indiceAleatorio)){ + indicesAleatorios.push(indiceAleatorio); + } } - } - //obtenemos las 4 entidades aleatorias que vamos a utilizar para generar la pregunta - this.answers = indicesAleatorios.map(indice => entidades[indice]); + //obtenemos las 4 entidades aleatorias que vamos a utilizar para generar la pregunta + this.answers = indicesAleatorios.map(indice => entidades[indice]); - this.generarTextoPregunta(); - } + this.generarTextoPregunta() + .then(() => resolve()) + .catch(error => reject(error)); + } + }); } /* @@ -135,38 +147,42 @@ class ObtenerPreguntaWikiData { generamos la pregunta con la información que hemos obtenido */ generarTextoPregunta(){ - //leemos el archivo - fs.readFile('esqueletoPreguntas.xml', 'utf-8', (err, data) => { - if (err) { - console.error('Error al leer el esqueleto de las preguntas:', err); - return; - } - - //parseamos el xml - xml2js.parseString(data, (parseErr, result) => { - if (parseErr) { - console.error('Error al analizar el esqueleto de las preguntas:', parseErr); - return; - } + return new Promise((resolve, reject) => { + //leemos el archivo + fs.readFile('esqueletoPreguntas.xml', 'utf-8', (err, data) => { + if (err) { + console.error('Error al leer el esqueleto de las preguntas:', err); + return; + } - //obtenemos el esqueleto de la pregunta que queremos hacer - var textoPregunta = this.obtenerTextoPregunta(result, this.question, this.type); - - //comprobamos que el resultado es valido para hacer la pregunta (que no sea QXXXXX) - var preguntaCorrecta = this.answers.find(entidad => { - return entidad.label !== "Ninguna de las anteriores"; + //parseamos el xml + xml2js.parseString(data, (parseErr, result) => { + if (parseErr) { + console.error('Error al analizar el esqueleto de las preguntas:', parseErr); + return; + } + + //obtenemos el esqueleto de la pregunta que queremos hacer + var textoPregunta = this.obtenerTextoPregunta(result, this.question, this.type); + + //comprobamos que el resultado es valido para hacer la pregunta (que no sea QXXXXX) + var preguntaCorrecta = this.answers.find(entidad => { + return entidad.label !== "Ninguna de las anteriores"; + }); + + if(preguntaCorrecta){ + //rellenamos el esqueleto de la pregunta con los datos de la entidad + var pregunta = preguntaCorrecta.label; + var respuestaCorrecta = preguntaCorrecta.result; + var consulta = textoPregunta.replace('{RELLENAR}', pregunta); + + this.generarPregunta(consulta, respuestaCorrecta) + .then(() => resolve()) + .catch(error => reject(error)); + } }); - - if(preguntaCorrecta){ - //rellenamos el esqueleto de la pregunta con los datos de la entidad - var pregunta = preguntaCorrecta.label; - var respuestaCorrecta = preguntaCorrecta.result; - var consulta = textoPregunta.replace('{RELLENAR}', pregunta); - - this.generarPregunta(consulta, respuestaCorrecta); - } }); - }); + }); } /* @@ -186,24 +202,30 @@ class ObtenerPreguntaWikiData { generamos un json con la info necesaria de la pregunta para poder guardarla en la base de datos */ generarPregunta(consulta, respuestaCorrecta){ - var respuestasIncorrectas = []; - var num = 0; - //añadimos el resto de respuestas - for(var i = 0; i < this.answers.length; i++){ - if(this.answers[i].result !== respuestaCorrecta){ - respuestasIncorrectas[num] = this.answers[i].label; - num++; + return new Promise((resolve, reject) => { + var respuestasIncorrectas = []; + var num = 0; + //añadimos el resto de respuestas + for(var i = 0; i < this.answers.length; i++){ + if(this.answers[i].result !== respuestaCorrecta){ + respuestasIncorrectas[num] = this.answers[i].label; + num++; + } } - } - //guardamos la pregunta para añadirla a la base de datos - this.finalQuestion = { - question: consulta.trim().replace(/\r?\n|\r/g, ''), - correct: respuestaCorrecta, - incorrect1: respuestasIncorrectas[0], - incorrect2: respuestasIncorrectas[1], - incorrect3: respuestasIncorrectas[2] - } + //guardamos la pregunta para añadirla a la base de datos + this.finalQuestion = { + question: consulta.trim().replace(/\r?\n|\r/g, ''), + correct: respuestaCorrecta, + incorrect1: respuestasIncorrectas[0], + incorrect2: respuestasIncorrectas[1], + incorrect3: respuestasIncorrectas[2], + category: this.category, + type: this.type + } + + resolve(); + }); } obtenerPregunta(){ diff --git a/questionsService/question-model.js b/questionsService/question-model.js index 29f7560d..91aec689 100644 --- a/questionsService/question-model.js +++ b/questionsService/question-model.js @@ -2,7 +2,6 @@ const mongoose = require('mongoose'); //preguntas const preguntaSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, textoPregunta: { type: String, required: true @@ -21,7 +20,6 @@ const Pregunta = mongoose.model('Pregunta', preguntaSchema); //categoria const categoriaSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, nombre: { type: String, required: true @@ -32,7 +30,6 @@ const Categoria = mongoose.model('Categoria', categoriaSchema); //Respuesta const respuestaSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, textoRespuesta: { type: String, required: true @@ -46,7 +43,6 @@ const Respuesta = mongoose.model('Respuesta', respuestaSchema); //Tipos const tiposSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, idPreguntas: [{ type: String, required: true diff --git a/questionsService/question-service.js b/questionsService/question-service.js index d7b82230..d55662f4 100644 --- a/questionsService/question-service.js +++ b/questionsService/question-service.js @@ -4,6 +4,8 @@ const mongoose = require('mongoose'); const xml2js = require('xml2js'); const fs = require('fs'); +const Model = require('./question-model') + const Question = require("./obtenerPreguntasBaseDatos"); const question = new Question(); @@ -20,11 +22,10 @@ app.use(express.json()); const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; mongoose.connect(mongoUri); -const instancia = newquestion.ejecutarOperaciones(); - app.get('/getQuestion', async(req,res)=> { try{ //coger pregunta bd + console.log("LLegamos al question service") const questions = await question.obtenerPregunta(); //para devolver la pregunta res.json(questions); @@ -37,9 +38,7 @@ app.get('/getQuestion', async(req,res)=> { app.get('/generateQuestions', async(req,res)=> { try{ - console.log("Generando preguntas en el question-service"); const instancia = newquestion.ejecutarOperaciones(); - console.log(`Ejecutado correctamente`); } catch(error) { res.status(error.response.status).json({ error: error.response.data.error }); diff --git a/questionsService/questionGeneration.js b/questionsService/questionGeneration.js index 916c3ced..4a99cb22 100644 --- a/questionsService/questionGeneration.js +++ b/questionsService/questionGeneration.js @@ -6,10 +6,9 @@ const guardarPregunta = new GuardarPregunta(); class GenerarPregunta { // Método para ejecutar las operaciones - ejecutarOperaciones() { - console.log(`Ejecutando operaciones`); - preguntaWiki.leerYSacarConsultas(); - //guardarPregunta.guardarEnBaseDatos(preguntaWiki.obtenerPregunta()); + async ejecutarOperaciones() { + await preguntaWiki.leerYSacarConsultas(); + guardarPregunta.guardarEnBaseDatos(preguntaWiki.obtenerPregunta()); } } From dc33a1459553cd5ee838eb6b6fc1c0b4e3b45e6e Mon Sep 17 00:00:00 2001 From: sonia Date: Fri, 8 Mar 2024 17:38:57 +0100 Subject: [PATCH 64/82] Prueba para ver si pasan los test de sonarcloud --- gatewayservice/gateway-service.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index ebe1dabe..5508539f 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -54,16 +54,11 @@ app.get('/getQuestion', async (req, res) => { app.get('/generateQuestions', async (req, res) => { try { - console.log("Generando preguntas en el gateway"); // llamamos al servicio de preguntas - const questionResponse = await axios.get(questionServiceUrl+'/generateQuestions', req.body); + await axios.get(questionServiceUrl+'/generateQuestions', req.body); } catch (error) { - if (error.response) { - res.status(error.response.status).json({ error: error.response.data.error }); - } else { - res.status(500).json({ error: 'Error en la respuesta del servidor' }); - } + res.status(error.response.status).json({ error: error.response.data.error }); } }); From 4155b03615a9ec5e0c38b4c8c4da1cf09a147264 Mon Sep 17 00:00:00 2001 From: sonia Date: Fri, 8 Mar 2024 17:50:05 +0100 Subject: [PATCH 65/82] Prueba para ver si aumenta el % de coverage --- gatewayservice/gateway-service.js | 12 ------------ gatewayservice/gateway-service.test.js | 7 +++++++ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index 5508539f..736a3ba1 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -42,16 +42,6 @@ app.post('/adduser', async (req, res) => { } }); -app.get('/getQuestion', async (req, res) => { - try { - // llamamos al servicio de preguntas - const questionResponse = await axios.get(questionServiceUrl+'/getQuestion', req.body); - res.json(questionResponse.data); - } catch (error) { - res.status(error.response.status).json({ error: error.response.data.error }); - } -}); - app.get('/generateQuestions', async (req, res) => { try { // llamamos al servicio de preguntas @@ -62,8 +52,6 @@ app.get('/generateQuestions', async (req, res) => { } }); - - // Start the gateway service const server = app.listen(port, () => { console.log(`Gateway Service listening at http://localhost:${port}`); diff --git a/gatewayservice/gateway-service.test.js b/gatewayservice/gateway-service.test.js index 56eeb124..7250c5b3 100644 --- a/gatewayservice/gateway-service.test.js +++ b/gatewayservice/gateway-service.test.js @@ -37,4 +37,11 @@ describe('Gateway Service', () => { expect(response.statusCode).toBe(200); expect(response.body.userId).toBe('mockedUserId'); }); + + //Test /generateQuestions endpoint + it('should forward generate questions request to question service', async () => { + const response = await request(app).get('/generateQuestions'); + + expect(response.statusCode).toBe(200); + }); }); \ No newline at end of file From 2dac3ee90002bea2b80f53c79007dfb968aebf33 Mon Sep 17 00:00:00 2001 From: sonia Date: Fri, 8 Mar 2024 18:03:43 +0100 Subject: [PATCH 66/82] Dejo las clases como estaban de antes de los 2 commits anteriores --- gatewayservice/gateway-service.js | 12 ++++++++++++ gatewayservice/gateway-service.test.js | 7 ------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index 736a3ba1..5508539f 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -42,6 +42,16 @@ app.post('/adduser', async (req, res) => { } }); +app.get('/getQuestion', async (req, res) => { + try { + // llamamos al servicio de preguntas + const questionResponse = await axios.get(questionServiceUrl+'/getQuestion', req.body); + res.json(questionResponse.data); + } catch (error) { + res.status(error.response.status).json({ error: error.response.data.error }); + } +}); + app.get('/generateQuestions', async (req, res) => { try { // llamamos al servicio de preguntas @@ -52,6 +62,8 @@ app.get('/generateQuestions', async (req, res) => { } }); + + // Start the gateway service const server = app.listen(port, () => { console.log(`Gateway Service listening at http://localhost:${port}`); diff --git a/gatewayservice/gateway-service.test.js b/gatewayservice/gateway-service.test.js index 7250c5b3..56eeb124 100644 --- a/gatewayservice/gateway-service.test.js +++ b/gatewayservice/gateway-service.test.js @@ -37,11 +37,4 @@ describe('Gateway Service', () => { expect(response.statusCode).toBe(200); expect(response.body.userId).toBe('mockedUserId'); }); - - //Test /generateQuestions endpoint - it('should forward generate questions request to question service', async () => { - const response = await request(app).get('/generateQuestions'); - - expect(response.statusCode).toBe(200); - }); }); \ No newline at end of file From ebfd6bb75890f1bb68705aeaf7296b38c37ca61f Mon Sep 17 00:00:00 2001 From: Sonia <98974173+uo282189@users.noreply.github.com> Date: Fri, 8 Mar 2024 18:34:18 +0100 Subject: [PATCH 67/82] Incorporacion cambios (#66) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Lucia-Sonia prueba para añadir el microservicio de las preguntas * Removing multiple con * Modificaciones eliminar conexiones repetidas a la base de datos * Cambiado como se leen y se parsean los xml y la llamada a la API de Wikidata * Arreglar el guardado de la pregunta obtenida de wikidata a la base de datos * Prueba para ver si pasan los test de sonarcloud * Prueba para ver si aumenta el % de coverage * Dejo las clases como estaban de antes de los 2 commits anteriores --------- Co-authored-by: Lucia <144900378+UO283535@users.noreply.github.com> Co-authored-by: Lucía Villanueva Rodríguez --- docker-compose.yml | 15 + gatewayservice/gateway-service.js | 23 + gatewayservice/package.json | 6 +- questionsService/Dockerfile | 20 + questionsService/guardarPreguntaBaseDatos.js | 160 +- questionsService/obtenerPreguntasBaseDatos.js | 47 +- questionsService/obtenerPreguntasWikidata.js | 250 +- questionsService/package-lock.json | 9124 +++++++++++++++++ questionsService/package.json | 31 + questionsService/preguntas.xml | 4 +- questionsService/question-model.js | 9 - questionsService/question-service.js | 60 + questionsService/questionGeneration.js | 17 +- users/authservice/package.json | 6 +- users/userservice/package-lock.json | 4022 +++++++- users/userservice/package.json | 6 +- 16 files changed, 13571 insertions(+), 229 deletions(-) create mode 100644 questionsService/Dockerfile create mode 100644 questionsService/package-lock.json create mode 100644 questionsService/package.json create mode 100644 questionsService/question-service.js diff --git a/docker-compose.yml b/docker-compose.yml index 66756d73..e3aebad7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,6 +39,19 @@ services: environment: MONGODB_URI: mongodb://mongodb:27017/userdb + questionservice: + container_name: questionservice-${teamname:-defaultASW} + profiles: ["dev", "prod"] + build: ./questionsService/ + depends_on: + - mongodb + ports: + - "8003:8003" + networks: + - mynetwork + environment: + MONGODB_URI: mongodb://mongodb:27017/questionsdb + gatewayservice: container_name: gatewayservice-${teamname:-defaultASW} image: ghcr.io/arquisoft/wiq_es05c/gatewayservice:latest @@ -48,6 +61,7 @@ services: - mongodb - userservice - authservice + - questionservice ports: - "8000:8000" networks: @@ -55,6 +69,7 @@ services: environment: AUTH_SERVICE_URL: http://authservice:8002 USER_SERVICE_URL: http://userservice:8001 + QUESTION_SERVICE_URL: http://questionservice:8003 webapp: container_name: webapp-${teamname:-defaultASW} diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index 88b84c8f..5508539f 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -8,6 +8,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'; app.use(cors()); app.use(express.json()); @@ -41,6 +42,28 @@ app.post('/adduser', async (req, res) => { } }); +app.get('/getQuestion', async (req, res) => { + try { + // llamamos al servicio de preguntas + const questionResponse = await axios.get(questionServiceUrl+'/getQuestion', req.body); + res.json(questionResponse.data); + } catch (error) { + res.status(error.response.status).json({ error: error.response.data.error }); + } +}); + +app.get('/generateQuestions', async (req, res) => { + try { + // llamamos al servicio de preguntas + await axios.get(questionServiceUrl+'/generateQuestions', req.body); + + } 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/gatewayservice/package.json b/gatewayservice/package.json index fd16c42c..a39f3c8b 100644 --- a/gatewayservice/package.json +++ b/gatewayservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es05c.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es05c/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es05c#readme", "dependencies": { "axios": "^1.6.5", "cors": "^2.8.5", diff --git a/questionsService/Dockerfile b/questionsService/Dockerfile new file mode 100644 index 00000000..8855e4e3 --- /dev/null +++ b/questionsService/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/questionsService + +# 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 8003 + +# Define the command to run your app +CMD ["node", "question-service.js"] diff --git a/questionsService/guardarPreguntaBaseDatos.js b/questionsService/guardarPreguntaBaseDatos.js index 487f6f97..e1b4da57 100644 --- a/questionsService/guardarPreguntaBaseDatos.js +++ b/questionsService/guardarPreguntaBaseDatos.js @@ -1,83 +1,96 @@ const mongoose = require('mongoose'); +const Categoria = mongoose.model('Categoria'); +const Pregunta = mongoose.model('Pregunta'); +const Tipos = mongoose.model('Tipos'); +const Respuesta = mongoose.model('Respuesta'); class GuardarBaseDatos{ - constructor(finalQuestion, choice, category){ - this.finalQuestion = finalQuestion; - this.choice = choice; - this.category = category; + constructor(){ + this.finalQuestion; } - guardarEnBaseDatos(){ - // Connect to MongoDB - const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; - mongoose.connect(mongoUri); - - //primero deberiamos de guardar la categoria - this.guardarCategoria(); - - //cerramos la conexion - mongoose.connection.close(); - } + guardarEnBaseDatos(finalQuestion){ + this.finalQuestion = finalQuestion; + //primero deberiamos de guardar la categoria + this.guardarCategoria().then(idCategoria => { + // Guardamos el tipo de pregunta + return this.guardarPreguntaTipo(idCategoria); + }).then(idTipo => { + // Guardamos las respuestas incorrectas + this.guardarPrimeraIncorrecta(idTipo); + this.guardarSegundaIncorrecta(idTipo); + this.guardarTerceraIncorrecta(idTipo); + }).catch(error => { + console.error("Error al guardar la categoría o el tipo de pregunta:", error); + }); + } guardarCategoria(){ - var idCategoria; - - Categoria.findOne({ textoPregunta: this.finalQuestion.category }) - .then(categoriaExistente => { - if (!categoriaExistente) { - // Si no existe ya esa categoria la crea - var nuevaCategoria = new Categoria({ - nombre: this.category, - }); - - //Guardamos la nueva pregunta - nuevaCategoria.save().then(categoriaGuardada => { - //guardamos el id de la categoria nueva - idCategoria = categoriaGuardada._id; - }); - } - - else{ - //guardamos el id de la categoria existente - idCategoria = categoriaExistente._id; - } - }); - - this.guardarPreguntaTipo(idCategoria); + return new Promise((resolve, reject) => { + var idCategoria; + + Categoria.findOne({ nombre: this.finalQuestion.category }) + .then(categoriaExistente => { + if (!categoriaExistente) { + // Si no existe ya esa categoria la crea + var nuevaCategoria = new Categoria({ + nombre: this.finalQuestion.category, + }); + + //Guardamos la nueva pregunta + nuevaCategoria.save().then(categoriaGuardada => { + //guardamos el id de la categoria nueva + idCategoria = categoriaGuardada._id; + resolve(idCategoria); + }); + } + + else{ + //guardamos el id de la categoria existente + idCategoria = categoriaExistente._id; + resolve(idCategoria); + } + }); + }) .catch(error => { + console.error("Error al ejecutar la consulta:", error); + reject(error); // Rechazamos la Promesa con el error + }); } guardarPreguntaTipo(idCategoria){ - var idTipo; - // Comprobar si la pregunta ya existe - Pregunta.findOne({ textoPregunta: this.finalQuestion.question }) - .then(preguntaExistente => { - if (!preguntaExistente) { - // Si no existe la pregunta, se crea - var nuevaPregunta = new Pregunta({ - textoPregunta: this.finalQuestion.question, - respuestaCorrecta: this.finalQuestion.correct, - categoria: idCategoria - }); - - // Guardar la nueva pregunta - nuevaPregunta.save() - .then(preguntaGuardada => { - - // Comprobar si existe el tipo de la pregunta y asociarlo - Tipos.findOne({ nombreTipo: this.choice }) - .then(tipoExistente => { - if (!tipoExistente) { - // Si no existe el tipo, se crea - var nuevoTipo = new Tipos({ - idPreguntas: [preguntaGuardada._id], - nombreTipo: this.choice - }); - + return new Promise((resolve, reject) => { + var idTipo; + // Comprobar si la pregunta ya existe + Pregunta.findOne({ textoPregunta: this.finalQuestion.question }) + .then(preguntaExistente => { + if (!preguntaExistente) { + // Si no existe la pregunta, se crea + var nuevaPregunta = new Pregunta({ + textoPregunta: this.finalQuestion.question, + respuestaCorrecta: this.finalQuestion.correct, + categoria: idCategoria + }); + + // Guardar la nueva pregunta + nuevaPregunta.save() + .then(preguntaGuardada => { + + // Comprobar si existe el tipo de la pregunta y asociarlo + Tipos.findOne({ nombreTipo: this.finalQuestion.type }) + .then(tipoExistente => { + if (!tipoExistente) { + // Si no existe el tipo, se crea + var nuevoTipo = new Tipos({ + idPreguntas: [preguntaGuardada._id], + nombreTipo: this.finalQuestion.type + }); + // Guardar el nuevo tipo nuevoTipo.save().then(tipoGuardado => { //guardamos el id del tipo idTipo = tipoGuardado._id; + resolve(idTipo); }); } else { @@ -87,16 +100,17 @@ class GuardarBaseDatos{ tipoExistente.save().then(tipoGuardado => { //guardamos el id del tipo idTipo = tipoGuardado._id; + resolve(idTipo); }); } }); }); } + }).catch(error => { + console.error("Error al ejecutar la consulta:", error); + reject(error); // Rechazamos la Promesa con el error + }); }); - - this.guardarPrimeraIncorrecta(idTipo); - this.guardarSegundaIncorrecta(idTipo); - this.guardarTerceraIncorrecta(idTipo); } guardarPrimeraIncorrecta(idTipo){ @@ -106,7 +120,7 @@ class GuardarBaseDatos{ if (!respuestaExistente) { // Si no existe ya esa pregunta la crea var nuevaRespuesta = new Respuesta({ - textoRespuesta: this.finalQuestion.question, + textoRespuesta: this.finalQuestion.incorrect1, tipos: [idTipo] }); @@ -125,14 +139,14 @@ class GuardarBaseDatos{ }); } - guardarSegundaIncorrecta(idTipo){ + guardarSegundaIncorrecta(idTipo){ //comprobar si la segunda respuesta existe ya en la base de datos Respuesta.findOne({ textoRespuesta: this.finalQuestion.incorrect2 }) .then(respuestaExistente => { if (!respuestaExistente) { // Si no existe ya esa pregunta la crea var nuevaRespuesta = new Respuesta({ - textoRespuesta: this.finalQuestion.question, + textoRespuesta: this.finalQuestion.incorrect2, tipos: [idTipo] }); @@ -158,7 +172,7 @@ class GuardarBaseDatos{ if (!respuestaExistente) { // Si no existe ya esa pregunta la crea var nuevaRespuesta = new Respuesta({ - textoRespuesta: this.finalQuestion.question, + textoRespuesta: this.finalQuestion.incorrect3, tipos: [idTipo] }); diff --git a/questionsService/obtenerPreguntasBaseDatos.js b/questionsService/obtenerPreguntasBaseDatos.js index c33ac85d..a5416bda 100644 --- a/questionsService/obtenerPreguntasBaseDatos.js +++ b/questionsService/obtenerPreguntasBaseDatos.js @@ -1,27 +1,30 @@ const mongoose = require('mongoose'); + +const Categoria = mongoose.model('Categoria'); +const Pregunta = mongoose.model('Pregunta'); +const Tipos = mongoose.model('Tipos'); +const Respuesta = mongoose.model('Respuesta'); + class ObtenerPreguntas{ - obtenerPregunta(){ - // Connect to MongoDB - const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; - mongoose.connect(mongoUri); - - var pregunta; - var respuestaCorrecta; - var respuestaIncorrecta1; - var respuestaIncorrecta2; - var respuestaIncorrecta3; - - Pregunta.aggregate([ + obtenerPregunta(){ + console.log("Obteniendo pregunta"); + var pregunta; + var respuestaCorrecta; + var respuestaIncorrecta1; + var respuestaIncorrecta2; + var respuestaIncorrecta3; + + Pregunta.aggregate([ { $sample: { size: 1 } } ]).then(pregunta => { var pregunta_id = pregunta._id; pregunta = pregunta.textoPregunta; - Tipo.findOne({ _id: { $in: pregunta.pregunta_id } }).then(tipo => { - console.log(tipo_id); - respuestaCorrecta = pregunta.respuestaCorrecta; - console.log(respuestaCorrecta); - Respuesta.aggregate([ + Tipos.findOne({ _id: { $in: pregunta.pregunta_id } }).then(tipo => { + console.log(tipo_id); + respuestaCorrecta = pregunta.respuestaCorrecta; + console.log(respuestaCorrecta); + Respuesta.aggregate([ { $match: { nombreTipo: tipo._id, texto: { $ne: [respuestaCorrecta, "Ninguna de las anteriores" ]} } }, { $sample: { size: 3 } } @@ -40,6 +43,12 @@ class ObtenerPreguntas{ console.error(err); }); + console.log(pregunta); + console.log(respuestaCorrecta); + console.log(respuestaIncorrecta1); + console.log(respuestaIncorrecta2); + console.log(respuestaIncorrecta3); + return resultado = { pregunta: pregunta.textoPregunta, correcta: respuestaCorrecta, @@ -48,4 +57,6 @@ class ObtenerPreguntas{ respuestasIncorrecta3: respuestaIncorrecta3 }; } -} \ No newline at end of file +} + +module.exports = ObtenerPreguntas; \ No newline at end of file diff --git a/questionsService/obtenerPreguntasWikidata.js b/questionsService/obtenerPreguntasWikidata.js index 85d81036..583ddf11 100644 --- a/questionsService/obtenerPreguntasWikidata.js +++ b/questionsService/obtenerPreguntasWikidata.js @@ -1,3 +1,7 @@ +const xml2js = require('xml2js'); +const fs = require('fs'); +const axios = require('axios'); + class ObtenerPreguntaWikiData { constructor(language = 'es') { @@ -16,8 +20,7 @@ class ObtenerPreguntaWikiData { this.answers; //para guardar toda la información relativa a las preguntas - this.finalQuestion; - + this.finalQuestion; } /* @@ -25,101 +28,107 @@ class ObtenerPreguntaWikiData { Posteriormente se elige una consulta al azar Se obtiene la consulta y la información que necesitamos para posteriores métodos */ - leerYSacarConsultas() { - //abrimos el xml con las preguntas - const xhr = new XMLHttpRequest(); - xhr.open('GET', "preguntas.xml", true); - - xhr.onload = () => { - if (xhr.status === 200) { - const xmlString = xhr.responseText; - const parser = new DOMParser(); - const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); - - //obtenemos todas las consultas disponibles - var preguntas = xmlDoc.getElementsByTagName('pregunta'); - - //cogemos una consulta de forma aleatoria + leerYSacarConsultas() { + return new Promise((resolve, reject) => { + // Leer el archivo XML + fs.readFile('preguntas.xml', 'utf-8', (err, data) => { + + if (err) { + console.error('Error al leer el archivo:', err); + return; + } + + // Parsear el XML + xml2js.parseString(data, (parseErr, result) => { + if (parseErr) { + console.error('Error al analizar el XML:', parseErr); + return; + } + // Obtener las preguntas disponibles + var preguntas = result.preguntas.pregunta; + + // Seleccionar una pregunta aleatoria var pregunta = preguntas[Math.floor(Math.random() * preguntas.length)]; - //obtenemos la informacion relativa a la pregunta - this.question = pregunta.getAttribute('question'); - this.type = pregunta.getAttribute('type'); - this.category = pregunta.getAttribute('category'); - - //obtenemos la consulta que vamos a realizar - var query = pregunta.getElementsByTagName('query')[0].textContent; - - //obtenemos los datos que estan en la select de la consulta para posteriormente obtener la informacion del binding.result + + // Obtener la información relativa a la pregunta + this.question = pregunta.$.question; + this.type = pregunta.$.type; + this.category = pregunta.$.category; + + // Obtener la consulta + var query = pregunta.query[0]; var consultaParte = query.match(/SELECT(.*?)WHERE/s)[1].trim(); - + // Dividir la parte de la consulta por los símbolos '?' para obtener las labels this.labels = consultaParte.split('?').map(part => part.trim()).filter(part => part !== ''); - - //obtenemos todas las entradas de wikidata para esa query - this.obtenerEntidadesConsulta(query); - - } else { - console.error('Error al cargar el archivo:', xhr.statusText); - } - }; - - xhr.onerror = () => { - console.error('Error de red al cargar el archivo.'); - }; - xhr.send(); - } + //obtenemos todas las entradas de wikidata para esa query + this.obtenerEntidadesConsulta(query) + .then(() => resolve()) + .catch(error => reject(error)); + }); + }); + }); + } /* Hace una llamada a la API para poder obtener la información relativa a la consulta Si la llamada tiene exito se llama a otro metodo para procesar la información */ - obtenerEntidadesConsulta(consulta){ - const apiUrl = 'https://query.wikidata.org/sparql'; - - $.ajax({ - url: apiUrl, - data: { - query: consulta, - format: 'json' - }, - dataType: 'json', - success: this.obtenerInformacionParaPregunta.bind(this), - error: function(error) { - console.log('Error:', error); - } + obtenerEntidadesConsulta(consulta){ + return new Promise((resolve, reject) => { + const apiUrl = 'https://query.wikidata.org/sparql'; + + axios.get(apiUrl, { + params: { + query: consulta, + format: 'json' + } + }) + .then(response => { + this.obtenerInformacionParaPregunta(response.data) + .then(() => resolve()) + .catch(error => reject(error)); + }) + .catch(error => { + console.error('Error:', error); }); + }); } /* Obtenemos 4 entidades aleatorias de los datos devueltos por la consulta que hemos realizado */ obtenerInformacionParaPregunta(data){ + return new Promise((resolve, reject) => { //obtenemos el label y el resultado de todas las entidades if(data && data.results && data.results.bindings.length > 0){ - var entidades = data.results.bindings.map(binding => { - return { - //obtenemos el label de la "pregunta" (ejemplo country) - label: this.obtenerValorPropiedad(binding, this.labels[1]), - //obtenemos el label de la "respuesta" (ejemplo capital) - result: this.obtenerValorPropiedad(binding, this.labels[2]) - }; - }); - - //obtenemos 4 índices aleatorios únicos - var indicesAleatorios = []; - while(indicesAleatorios.length < 4){ - var indiceAleatorio = Math.floor(Math.random() * entidades.length); - if(!indicesAleatorios.includes(indiceAleatorio)){ - indicesAleatorios.push(indiceAleatorio); - } + var entidades = data.results.bindings.map(binding => { + return { + //obtenemos el label de la "pregunta" (ejemplo country) + label: this.obtenerValorPropiedad(binding, this.labels[1]), + //obtenemos el label de la "respuesta" (ejemplo capital) + result: this.obtenerValorPropiedad(binding, this.labels[2]) + }; + }); + + //obtenemos 4 índices aleatorios únicos + var indicesAleatorios = []; + while(indicesAleatorios.length < 4){ + var indiceAleatorio = Math.floor(Math.random() * entidades.length); + if(!indicesAleatorios.includes(indiceAleatorio)){ + indicesAleatorios.push(indiceAleatorio); } + } - //obtenemos las 4 entidades aleatorias que vamos a utilizar para generar la pregunta - this.answers = indicesAleatorios.map(indice => entidades[indice]); + //obtenemos las 4 entidades aleatorias que vamos a utilizar para generar la pregunta + this.answers = indicesAleatorios.map(indice => entidades[indice]); - this.generarTextoPregunta(); + this.generarTextoPregunta() + .then(() => resolve()) + .catch(error => reject(error)); } + }); } /* @@ -138,21 +147,27 @@ class ObtenerPreguntaWikiData { generamos la pregunta con la información que hemos obtenido */ generarTextoPregunta(){ - const xhr = new XMLHttpRequest(); - xhr.open('GET', "esqueletoPreguntas.xml", true); - - xhr.onload = () => { - if (xhr.status === 200) { - const xmlString = xhr.responseText; - const parser = new DOMParser(); - const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); + return new Promise((resolve, reject) => { + //leemos el archivo + fs.readFile('esqueletoPreguntas.xml', 'utf-8', (err, data) => { + if (err) { + console.error('Error al leer el esqueleto de las preguntas:', err); + return; + } + + //parseamos el xml + xml2js.parseString(data, (parseErr, result) => { + if (parseErr) { + console.error('Error al analizar el esqueleto de las preguntas:', parseErr); + return; + } + + //obtenemos el esqueleto de la pregunta que queremos hacer + var textoPregunta = this.obtenerTextoPregunta(result, this.question, this.type); - //obtiene todos los esqueletos de las preguntas - var textoPregunta = xmlDoc.querySelector('pregunta[question="' + this.question + '"][type="' + this.type +'"]').textContent; - //comprobamos que el resultado es valido para hacer la pregunta (que no sea QXXXXX) var preguntaCorrecta = this.answers.find(entidad => { - return !entidad.label.startsWith('Q') && /\d/.test(entidad.label); + return entidad.label !== "Ninguna de las anteriores"; }); if(preguntaCorrecta){ @@ -161,39 +176,60 @@ class ObtenerPreguntaWikiData { var respuestaCorrecta = preguntaCorrecta.result; var consulta = textoPregunta.replace('{RELLENAR}', pregunta); - generarPregunta(consulta, respuestaCorrecta); - } + this.generarPregunta(consulta, respuestaCorrecta) + .then(() => resolve()) + .catch(error => reject(error)); + } + }); + }); + }); + } + + /* + obtenemos el texto de la pregunta que queremos hacer + */ + obtenerTextoPregunta(result, question, type) { + var preguntas = result.textoPreguntas.pregunta; + for (var pregunta of preguntas) { + if (pregunta.$.question === question && pregunta.$.type === type) { + return pregunta._; } - }; - xhr.send(); + } + return ""; } /* generamos un json con la info necesaria de la pregunta para poder guardarla en la base de datos */ generarPregunta(consulta, respuestaCorrecta){ - var respuestasIncorrectas = []; - var num = 0; - //añadimos el resto de respuestas - for(var i = 0; i < this.answers.length; i++){ - if(this.answers[i].result !== respuestaCorrecta){ - respuestasIncorrectas[num] = this.answers[i].label; - num++; + return new Promise((resolve, reject) => { + var respuestasIncorrectas = []; + var num = 0; + //añadimos el resto de respuestas + for(var i = 0; i < this.answers.length; i++){ + if(this.answers[i].result !== respuestaCorrecta){ + respuestasIncorrectas[num] = this.answers[i].label; + num++; + } } - } - //guardamos la pregunta para añadirla a la base de datos - this.finalQuestion = { - question: consulta, - correct: respuestaCorrecta, - incorrect1: respuestasIncorrectas[0], - incorrect2: respuestasIncorrectas[1], - incorrect3: respuestasIncorrectas[2] - } + //guardamos la pregunta para añadirla a la base de datos + this.finalQuestion = { + question: consulta.trim().replace(/\r?\n|\r/g, ''), + correct: respuestaCorrecta, + incorrect1: respuestasIncorrectas[0], + incorrect2: respuestasIncorrectas[1], + incorrect3: respuestasIncorrectas[2], + category: this.category, + type: this.type + } + + resolve(); + }); } obtenerPregunta(){ - return finalQuestion; + return this.finalQuestion; } } diff --git a/questionsService/package-lock.json b/questionsService/package-lock.json new file mode 100644 index 00000000..27dff241 --- /dev/null +++ b/questionsService/package-lock.json @@ -0,0 +1,9124 @@ +{ + "name": "questionservice", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "questionservice", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "axios": "^0.24.0", + "express": "^4.18.2", + "mongoose": "^8.0.4", + "xml2js": "^0.4.23" + }, + "devDependencies": { + "jest": "^29.7.0", + "mongodb-memory-server": "^9.1.5", + "supertest": "^6.3.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@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": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "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==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==", + "dev": true + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "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" + }, + "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==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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==", + "dev": true, + "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.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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/@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==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "20.11.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", + "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "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==", + "dev": true + }, + "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": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/async-mutex": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz", + "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "dependencies": { + "follow-redirects": "^1.14.4" + } + }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/bare-events": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", + "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", + "dev": true, + "optional": true + }, + "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==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true, + "engines": { + "node": ">=14.20.1" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001594", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001594.tgz", + "integrity": "sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "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/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "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/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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.693", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.693.tgz", + "integrity": "sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "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==", + "dev": true + }, + "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/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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "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==", + "dev": true, + "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.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "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.5.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-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.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-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "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==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "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==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true + }, + "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/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "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==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "devOptional": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "devOptional": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@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": "^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-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==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "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/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "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==", + "dev": true, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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/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==", + "dev": true, + "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/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==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "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==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "@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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@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/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "devOptional": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-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==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "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/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/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/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "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", + "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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "dev": true, + "dependencies": { + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "optionalDependencies": { + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "dev": true, + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/mongodb-memory-server": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", + "integrity": "sha512-gzcpgGYlPhuKmria37W+bvYy6W+OkX2UVG7MoP41OWFvQv2Hn7A+fLXkV+lsMmhog1lMQprdV6AR+gixgheLaw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "mongodb-memory-server-core": "9.1.6", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.20.1" + } + }, + "node_modules/mongodb-memory-server-core": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.6.tgz", + "integrity": "sha512-3H/dq5II+XcSbK80hicMw4zFlDxcpjt4oWJq76RlOVuLoaf3AFqVheR6Vqx9ymlIqER4Jni58FMCIIRbesia1A==", + "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/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, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mongodb-memory-server-core/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mongodb-memory-server-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==", + "dev": true + }, + "node_modules/mongodb-memory-server-core/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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mongoose": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.1.tgz", + "integrity": "sha512-UgZZbXSJH0pdU936qj3FyVI+sBsMoGowFnL5R/RYrA50ayn6+ZYdVr8ehsRgNxRcMYwoNld5XzHIfkFRJTePEw==", + "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/@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/mongoose/node_modules/bson": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.4.0.tgz", + "integrity": "sha512-6/gSSEdbkuFlSb+ufj5jUSU4+wo8xQOwm2bDSqwmxiPE17JTpsP63eAwoN8iF8Oy4gJYj+PAL3zdRCTdaw5Y1g==", + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/mongoose/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/mongoose/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/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/mongoose/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/mongoose/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/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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/new-find-package-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-2.0.0.tgz", + "integrity": "sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/new-find-package-json/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/new-find-package-json/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-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==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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/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-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "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/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "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", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "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-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "devOptional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "devOptional": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "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==", + "dev": true, + "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", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/superagent/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/superagent/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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "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", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "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==", + "dev": true + }, + "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/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==", + "dev": true, + "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/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/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==", + "dev": true, + "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", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "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-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/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true + }, + "@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@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" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "requires": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@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==", + "dev": true, + "requires": { + "@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" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-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==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true + }, + "@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "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" + } + }, + "@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==", + "dev": true + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@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==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@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==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@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" + } + }, + "@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==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@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==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@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==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@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" + } + }, + "@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==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@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==", + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "@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==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@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==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/node": { + "version": "20.11.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", + "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@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==", + "dev": true + }, + "@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==" + }, + "@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@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==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "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==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "async-mutex": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz", + "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "requires": { + "follow-redirects": "^1.14.4" + } + }, + "b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "@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" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "bare-events": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", + "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", + "dev": true, + "optional": true + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "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" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "requires": { + "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" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001594", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001594.tgz", + "integrity": "sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "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==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@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" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "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==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "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==" + }, + "electron-to-chromium": { + "version": "1.4.693", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.693.tgz", + "integrity": "sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "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==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true + }, + "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==" + }, + "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==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "requires": { + "@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" + } + }, + "express": { + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "requires": { + "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.5.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" + } + }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "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" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + } + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" + }, + "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==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "requires": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-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==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "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==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "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==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "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==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "devOptional": true, + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "devOptional": true + } + } + }, + "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==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "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==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": {} + }, + "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==", + "dev": true + }, + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + } + }, + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "devOptional": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-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==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "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==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "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==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "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==", + "dev": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "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==" + }, + "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==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "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==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "dev": true, + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + } + }, + "mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "dev": true, + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "mongodb-memory-server": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", + "integrity": "sha512-gzcpgGYlPhuKmria37W+bvYy6W+OkX2UVG7MoP41OWFvQv2Hn7A+fLXkV+lsMmhog1lMQprdV6AR+gixgheLaw==", + "dev": true, + "requires": { + "mongodb-memory-server-core": "9.1.6", + "tslib": "^2.6.2" + } + }, + "mongodb-memory-server-core": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.6.tgz", + "integrity": "sha512-3H/dq5II+XcSbK80hicMw4zFlDxcpjt4oWJq76RlOVuLoaf3AFqVheR6Vqx9ymlIqER4Jni58FMCIIRbesia1A==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "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, + "requires": { + "debug": "^4.3.4" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "mongoose": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.1.tgz", + "integrity": "sha512-UgZZbXSJH0pdU936qj3FyVI+sBsMoGowFnL5R/RYrA50ayn6+ZYdVr8ehsRgNxRcMYwoNld5XzHIfkFRJTePEw==", + "requires": { + "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" + }, + "dependencies": { + "@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==", + "requires": { + "@types/webidl-conversions": "*" + } + }, + "bson": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.4.0.tgz", + "integrity": "sha512-6/gSSEdbkuFlSb+ufj5jUSU4+wo8xQOwm2bDSqwmxiPE17JTpsP63eAwoN8iF8Oy4gJYj+PAL3zdRCTdaw5Y1g==" + }, + "mongodb": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + } + }, + "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==", + "requires": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "requires": { + "punycode": "^2.3.0" + } + }, + "whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "requires": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + } + } + } + }, + "mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==" + }, + "mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "requires": { + "debug": "4.x" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "new-find-package-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-2.0.0.tgz", + "integrity": "sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==", + "dev": true, + "requires": { + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + }, + "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==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@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" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "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==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + }, + "pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "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==" + }, + "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==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "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==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "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" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "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==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "requires": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "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==", + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "devOptional": true + }, + "socks": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "devOptional": true, + "requires": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "requires": { + "memory-pager": "^1.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "dev": true, + "requires": { + "bare-events": "^2.2.0", + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "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==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "dev": true, + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "requires": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "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==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "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==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "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==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "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==" + }, + "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==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "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==" + }, + "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, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "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" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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==", + "dev": true + } + } +} diff --git a/questionsService/package.json b/questionsService/package.json new file mode 100644 index 00000000..a1f068f3 --- /dev/null +++ b/questionsService/package.json @@ -0,0 +1,31 @@ +{ + "name": "questionservice", + "version": "1.0.0", + "description": "Microservicio de preguntas", + "main": "service.js", + "scripts": { + "start": "node question-service.js", + "test": "jest" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/arquisoft/wiq_es05c.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/arquisoft/wiq_es05c/issues" + }, + "homepage": "https://github.com/arquisoft/wiq_es05c#readme", + "dependencies": { + "express": "^4.18.2", + "mongoose": "^8.0.4", + "xml2js": "^0.4.23", + "axios": "^0.24.0" + }, + "devDependencies": { + "jest": "^29.7.0", + "mongodb-memory-server": "^9.1.5", + "supertest": "^6.3.4" + } +} diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index 8b4e01ea..b97bb6c1 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -7,7 +7,7 @@ { ?country wdt:P31 wd:Q3624078. # Instance of country ?country wdt:P36 ?capital. # Has capital - SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". } } @@ -20,7 +20,7 @@ ?state wdt:P31 wd:Q35657 . ?state p:P36 ?statement . ?statement ps:P36 ?capital . - SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". } } diff --git a/questionsService/question-model.js b/questionsService/question-model.js index fb088967..91aec689 100644 --- a/questionsService/question-model.js +++ b/questionsService/question-model.js @@ -1,13 +1,7 @@ const mongoose = require('mongoose'); -// Conectar a la base de datos MongoDB -mongoose.connect('mongodb://mongodb:27017/questionsdb', { useNewUrlParser: true, useUnifiedTopology: true }) - .then(() => console.log('Conexión exitosa a MongoDB')) - .catch(err => console.error('Error al conectar a MongoDB:', err)); - //preguntas const preguntaSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, textoPregunta: { type: String, required: true @@ -26,7 +20,6 @@ const Pregunta = mongoose.model('Pregunta', preguntaSchema); //categoria const categoriaSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, nombre: { type: String, required: true @@ -37,7 +30,6 @@ const Categoria = mongoose.model('Categoria', categoriaSchema); //Respuesta const respuestaSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, textoRespuesta: { type: String, required: true @@ -51,7 +43,6 @@ const Respuesta = mongoose.model('Respuesta', respuestaSchema); //Tipos const tiposSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, idPreguntas: [{ type: String, required: true diff --git a/questionsService/question-service.js b/questionsService/question-service.js new file mode 100644 index 00000000..d55662f4 --- /dev/null +++ b/questionsService/question-service.js @@ -0,0 +1,60 @@ +const express = require('express'); +const mongoose = require('mongoose'); + +const xml2js = require('xml2js'); +const fs = require('fs'); + +const Model = require('./question-model') + +const Question = require("./obtenerPreguntasBaseDatos"); +const question = new Question(); + +const NewQuestion = require("./questionGeneration"); +const newquestion = new NewQuestion(); + +const app = express(); +const port = 8003; + +// Middleware to parse JSON in request body +app.use(express.json()); + +// Connect to MongoDB +const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/questionsdb'; +mongoose.connect(mongoUri); + +app.get('/getQuestion', async(req,res)=> { + try{ + //coger pregunta bd + console.log("LLegamos al question service") + const questions = await question.obtenerPregunta(); + //para devolver la pregunta + res.json(questions); + + } catch(error) { + res.status(error.response.status).json({ error: error.response.data.error }); + } + +}); + +app.get('/generateQuestions', async(req,res)=> { + try{ + const instancia = newquestion.ejecutarOperaciones(); + + } catch(error) { + res.status(error.response.status).json({ error: error.response.data.error }); + } + + }); + + +// Start the server +const server = app.listen(port, () => { + console.log(`Generate Service listening at http://localhost:${port}`); +}); + +server.on('close', () => { + // Close the Mongoose connection + mongoose.connection.close(); + }); + +module.exports = server diff --git a/questionsService/questionGeneration.js b/questionsService/questionGeneration.js index f932c50c..4a99cb22 100644 --- a/questionsService/questionGeneration.js +++ b/questionsService/questionGeneration.js @@ -1,15 +1,14 @@ +const PreguntaWiki = require("./obtenerPreguntasWikidata"); +const preguntaWiki = new PreguntaWiki(); -class GenerarPregunta { - - constructor() { - this.obtenerPreguntaW = new ObtenerPreguntaWikiData(); - this.baseDatos = new GuardarBaseDatos(); - } +const GuardarPregunta = require("./guardarPreguntaBaseDatos"); +const guardarPregunta = new GuardarPregunta(); +class GenerarPregunta { // Método para ejecutar las operaciones - ejecutarOperaciones() { - this.obtenerPreguntaW.leerYSacarConsultas(); - this.baseDatos.guardarEnBaseDatos(this.obtenerPreguntaW.obtenerPregunta()); + async ejecutarOperaciones() { + await preguntaWiki.leerYSacarConsultas(); + guardarPregunta.guardarEnBaseDatos(preguntaWiki.obtenerPregunta()); } } diff --git a/users/authservice/package.json b/users/authservice/package.json index 6b5b6239..31eeae2f 100644 --- a/users/authservice/package.json +++ b/users/authservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es05c.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es05c/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es05c#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", diff --git a/users/userservice/package-lock.json b/users/userservice/package-lock.json index f21b26cb..46404853 100644 --- a/users/userservice/package-lock.json +++ b/users/userservice/package-lock.json @@ -1,11 +1,10 @@ { "name": "userservice", "version": "1.0.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "userservice", "version": "1.0.0", "license": "ISC", "dependencies": { @@ -5407,5 +5406,4024 @@ "url": "https://github.com/sponsors/sindresorhus" } } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true + }, + "@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "requires": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true + }, + "@babel/helpers": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.7.tgz", + "integrity": "sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + } + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + } + }, + "@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "@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==", + "dev": true + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@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==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@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==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@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" + } + }, + "@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==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@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==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@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==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@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" + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@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" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@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==", + "requires": { + "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" + } + }, + "@mongodb-js/saslprep": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", + "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "@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==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@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==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@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==", + "requires": { + "undici-types": "~5.26.4" + } + }, + "@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==", + "dev": true + }, + "@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==" + }, + "@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@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==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "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==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "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==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "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==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "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==" + }, + "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==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bcrypt": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", + "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.11", + "node-addon-api": "^5.0.0" + } + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "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" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "bson": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", + "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "requires": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001576", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", + "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "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==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "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==" + }, + "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==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@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" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "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==" + }, + "electron-to-chromium": { + "version": "1.4.623", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz", + "integrity": "sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "requires": { + "@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" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.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" + }, + "dependencies": { + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "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.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "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" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "requires": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "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" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-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==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "requires": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "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==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "requires": { + "get-intrinsic": "^1.2.2" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "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==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "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==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "devOptional": true + }, + "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==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "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==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + } + }, + "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==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "semver": "^7.5.3" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + } + }, + "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==", + "dev": true, + "requires": {} + }, + "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==", + "dev": true + }, + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + } + }, + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "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==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "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==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "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==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "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==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "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==" + }, + "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==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "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==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mongodb": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.2.0.tgz", + "integrity": "sha512-d7OSuGjGWDZ5usZPqfvb36laQ9CPhnWkAGHT61x5P95p/8nMVeH8asloMwW6GcYFeB0Vj4CB/1wOTDG2RA9BFA==", + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^2.6.0" + } + }, + "mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "mongodb-memory-server": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.5.tgz", + "integrity": "sha512-m7yewXoyctu2lwISq/sazwOV/LBkPmAm4ulwoP6J4zzv78ESlAIuQEHoL2+45CTlwxiRM5hfVBQe9HIYEFaBWw==", + "dev": true, + "requires": { + "mongodb-memory-server-core": "9.1.5", + "tslib": "^2.6.2" + } + }, + "mongodb-memory-server-core": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.5.tgz", + "integrity": "sha512-mevjdWrxym+MzMoNsFfCtrXwK3ndb0xHKj+fHT1xoT4l+uflEqvLHt+aRdJrTW5GTGYeVlYHQpQ8hLKMeEL6cg==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "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, + "requires": { + "debug": "^4.3.4" + } + }, + "bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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, + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "dev": true, + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "mongoose": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.0.4.tgz", + "integrity": "sha512-wN9qvdevX3+922VnLT7CpaZRT3jmVCBOK2QMHMGeScQxDRnFMPpkuI9StEPpZo/3x8t+kbzH7F8RMPsyNwyM4w==", + "requires": { + "bson": "^6.2.0", + "kareem": "2.5.1", + "mongodb": "6.2.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==" + }, + "mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "requires": { + "debug": "4.x" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "new-find-package-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-2.0.0.tgz", + "integrity": "sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==", + "dev": true, + "requires": { + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "node-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-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==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "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==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "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==" + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + }, + "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==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@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" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "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==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + }, + "pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "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==" + }, + "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==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "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==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "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" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "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==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "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==" + }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, + "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==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "devOptional": true + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "devOptional": true, + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "requires": { + "memory-pager": "^1.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamx": { + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "dev": true, + "requires": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "dev": true, + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "requires": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "requires": { + "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" + } + }, + "tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dev": true, + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "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==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "requires": { + "punycode": "^2.1.1" + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "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==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "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==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "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==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "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==" + }, + "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==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "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==" + }, + "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==", + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "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==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "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==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "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" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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==", + "dev": true + } } } diff --git a/users/userservice/package.json b/users/userservice/package.json index 2462c8e0..6e98f3bd 100644 --- a/users/userservice/package.json +++ b/users/userservice/package.json @@ -9,14 +9,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/arquisoft/wiq_0.git" + "url": "git+https://github.com/arquisoft/wiq_es05c.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/arquisoft/wiq_0/issues" + "url": "https://github.com/arquisoft/wiq_es05c/issues" }, - "homepage": "https://github.com/arquisoft/wiq_0#readme", + "homepage": "https://github.com/arquisoft/wiq_es05c#readme", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", From 8176fe514db750951f03552e044d1880289f988e Mon Sep 17 00:00:00 2001 From: sonia Date: Fri, 8 Mar 2024 19:45:11 +0100 Subject: [PATCH 68/82] Sonia-Lucia arreglada la llamada a la base de datos para obtener las preguntas --- questionsService/API preguntas.txt | 9 +++ questionsService/obtenerPreguntasBaseDatos.js | 61 +++++-------------- questionsService/question-service.js | 2 +- 3 files changed, 26 insertions(+), 46 deletions(-) create mode 100644 questionsService/API preguntas.txt diff --git a/questionsService/API preguntas.txt b/questionsService/API preguntas.txt new file mode 100644 index 00000000..0bf2f284 --- /dev/null +++ b/questionsService/API preguntas.txt @@ -0,0 +1,9 @@ +Cuando se obtiene una pregunta con el getQuestion devuelve un JSON con el siguiente formato. + +{ + "pregunta": "What is the capital of France?", + "correcta": "Paris", + "respuestasIncorrecta1": "London", + "respuestasIncorrecta2": "Berlin", + "respuestasIncorrecta3": "Madrid" +} \ No newline at end of file diff --git a/questionsService/obtenerPreguntasBaseDatos.js b/questionsService/obtenerPreguntasBaseDatos.js index a5416bda..c035946f 100644 --- a/questionsService/obtenerPreguntasBaseDatos.js +++ b/questionsService/obtenerPreguntasBaseDatos.js @@ -7,54 +7,25 @@ const Respuesta = mongoose.model('Respuesta'); class ObtenerPreguntas{ - obtenerPregunta(){ - console.log("Obteniendo pregunta"); - var pregunta; - var respuestaCorrecta; - var respuestaIncorrecta1; - var respuestaIncorrecta2; - var respuestaIncorrecta3; - - Pregunta.aggregate([ - { $sample: { size: 1 } } - ]).then(pregunta => { - var pregunta_id = pregunta._id; - pregunta = pregunta.textoPregunta; - Tipos.findOne({ _id: { $in: pregunta.pregunta_id } }).then(tipo => { - console.log(tipo_id); - respuestaCorrecta = pregunta.respuestaCorrecta; - console.log(respuestaCorrecta); - Respuesta.aggregate([ - { $match: { nombreTipo: tipo._id, texto: { $ne: [respuestaCorrecta, "Ninguna de las anteriores" ]} } }, - { $sample: { size: 3 } } - - ]).then(respuestas => { - console.log(respuestas); - respuestaIncorrecta1 = respuestas[0].textoRespuesta; - respuestaIncorrecta2 = respuestas[1].textoRespuesta; - respuestaIncorrecta3 = respuestas[2].textoRespuesta; - }).catch(err => { - console.error(err); - }); - }) - console.log(pregunta_id); - - }).catch(err => { - console.error(err); - }); - - console.log(pregunta); - console.log(respuestaCorrecta); - console.log(respuestaIncorrecta1); - console.log(respuestaIncorrecta2); - console.log(respuestaIncorrecta3); + async obtenerPregunta(){ + var resultado = {}; + + var pregunta = await Pregunta.aggregate([{ $sample: { size: 1 } }]); + + //por ejemplo capital + var tipo = await Tipos.findOne({ idPreguntas: { $in: pregunta[0]._id } }); + + var respuestas = await Respuesta.aggregate([ + { $match: { tipos: {$in : [tipo._id]}, textoRespuesta: { $ne: [pregunta[0].respuestaCorrecta, "Ninguna de las anteriores" ]} } }, + { $sample: { size: 3 } } + ]); return resultado = { pregunta: pregunta.textoPregunta, - correcta: respuestaCorrecta, - respuestasIncorrecta1: respuestaIncorrecta1, - respuestasIncorrecta2: respuestaIncorrecta2, - respuestasIncorrecta3: respuestaIncorrecta3 + correcta: pregunta.respuestaCorrecta, + respuestasIncorrecta1: respuestas[0].textoRespuesta, + respuestasIncorrecta2: respuestas[1].textoRespuesta, + respuestasIncorrecta3: respuestas[2].textoRespuesta }; } } diff --git a/questionsService/question-service.js b/questionsService/question-service.js index d55662f4..48667d7c 100644 --- a/questionsService/question-service.js +++ b/questionsService/question-service.js @@ -26,7 +26,7 @@ app.get('/getQuestion', async(req,res)=> { try{ //coger pregunta bd console.log("LLegamos al question service") - const questions = await question.obtenerPregunta(); + const questions = question.obtenerPregunta(); //para devolver la pregunta res.json(questions); From 9f33ac7fb8282b6e4c30aa9fbce547946180e93a Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 10 Mar 2024 11:59:43 +0100 Subject: [PATCH 69/82] =?UTF-8?q?A=C3=B1ado=20las=20consultas=20de=20geogr?= =?UTF-8?q?afia?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/preguntas.xml | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index b97bb6c1..55b06083 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -17,12 +17,37 @@ SELECT ?state ?stateLabel ?capitalLabel WHERE { - ?state wdt:P31 wd:Q35657 . - ?state p:P36 ?statement . - ?statement ps:P36 ?capital . + ?state wdt:P31 wd:Q35657 . + ?state p:P36 ?statement . + ?statement ps:P36 ?capital . + # Fetching the rank of the property + ?statement wikibase:rank ?rank . SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". } + # Subquery to get the highest ranked capital for each state + { + SELECT ?state (MAX(?rank) AS ?maxRank) + WHERE { + ?state wdt:P31 wd:Q35657 . + ?state p:P36 ?statement . + ?statement wikibase:rank ?rank . + } + GROUP BY ?state } - + FILTER (?rank = ?maxRank) + } + + + + + SELECT DISTINCT ?countryLabel (SAMPLE(?nombreCapital) AS ?capitales) + WHERE { + ?country wdt:P31 wd:Q3624078. # Instancia de país + ?country wdt:P36 ?capital. # Tiene capital + ?country rdfs:label ?countryLabel filter (lang(?countryLabel) = "es"). + ?capital rdfs:label ?nombreCapital filter (lang(?nombreCapital) = "es"). + } + GROUP BY ?countryLabel + \ No newline at end of file From cc89947770217b918d78e54385916f8ab45f042d Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 10 Mar 2024 12:03:40 +0100 Subject: [PATCH 70/82] =?UTF-8?q?A=C3=B1ado=20las=20consultas=20de=20la=20?= =?UTF-8?q?categoria=20arte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/preguntas.xml | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index 55b06083..cbcab3f6 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -37,7 +37,7 @@ } - + SELECT DISTINCT ?countryLabel (SAMPLE(?nombreCapital) AS ?capitales) WHERE { @@ -49,5 +49,35 @@ GROUP BY ?countryLabel - + + + SELECT DISTINCT ?nombreLibro (GROUP_CONCAT(DISTINCT ?nombreAuthor; SEPARATOR=", ") AS ?authors) + WHERE { + ?book wdt:P31 wd:Q571. # libro (clase) + ?book wdt:P50 ?author. # Relación "autor" + ?book rdfs:label ?nombreLibro filter (lang(?nombreLibro) = "es"). + ?author rdfs:label ?nombreAuthor filter (lang(?nombreAuthor) = "es"). + } + GROUP BY ?nombreLibro + + + + + + SELECT DISTINCT ?nombreLibro (GROUP_CONCAT(DISTINCT ?nombregenero; SEPARATOR=", ") AS ?generos) + WHERE { + ?book wdt:P31 wd:Q571. + ?book wdt:P136 ?genero. # Relación "género" + ?book rdfs:label ?nombreLibro filter (lang(?nombreLibro) = "es"). + ?genero rdfs:label ?nombregenero filter (lang(?nombregenero) = "es"). + } + GROUP BY ?nombreLibro + + + + + + + + \ No newline at end of file From e523cd0cc86f5b4088fb4b8f611a63c0794364d6 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 10 Mar 2024 12:06:23 +0100 Subject: [PATCH 71/82] =?UTF-8?q?A=C3=B1ado=20las=20consultas=20de=20la=20?= =?UTF-8?q?categoria=20entretenimiento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/preguntas.xml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index cbcab3f6..cd7c4e1b 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -75,6 +75,33 @@ + + + SELECT DISTINCT ?nombreVideojuego (GROUP_CONCAT(DISTINCT ?nombrePlataforma; SEPARATOR=", ") AS ?plataformas) + WHERE { + ?videojuego wdt:P31 wd:Q7889. # Videojuegos (clase) + ?videojuego wdt:P123 ?plataforma. # Relación "plataforma" + ?videojuego rdfs:label ?nombreVideojuego filter (lang(?nombreVideojuego) = "es"). + ?plataforma rdfs:label ?nombrePlataforma filter (lang(?nombrePlataforma) = "es"). + } + GROUP BY ?nombreVideojuego + + + + + + # Consulta para obtener los nombres únicos de los videojuegos y sus géneros + SELECT DISTINCT ?nombreVideojuego (GROUP_CONCAT(DISTINCT ?nombreGenero; SEPARATOR=", ") AS ?generos) + WHERE { + ?videojuego wdt:P31 wd:Q7889. # Videojuegos (clase) + ?videojuego wdt:P136 ?genero. # Relación "género" + ?videojuego rdfs:label ?nombreVideojuego filter (lang(?nombreVideojuego) = "es"). + ?genero rdfs:label ?nombreGenero filter (lang(?nombreGenero) = "es"). + } + GROUP BY ?nombreVideojuego + + + From 0b07738a0775b8e713f2dedc5312f3765ed2e0b5 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 10 Mar 2024 12:09:27 +0100 Subject: [PATCH 72/82] =?UTF-8?q?A=C3=B1ado=20las=20consultas=20de=20la=20?= =?UTF-8?q?categoria=20entretenimiento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/preguntas.xml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index cd7c4e1b..88a12fa0 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -102,9 +102,27 @@ - + - + SELECT DISTINCT ?clubLabel (GROUP_CONCAT(DISTINCT ?estadioName; SEPARATOR=", ") AS ?estadios) + WHERE { + ?club wdt:P31 wd:Q476028. # club (clase) + ?club wdt:P115 ?estadio. # Relación "estadio" + ?club rdfs:label ?clubLabel filter (lang(?clubLabel) = "es"). + ?estadio rdfs:label ?estadioName filter (lang(?estadioName) = "es"). + } + GROUP BY ?clubLabel + + + + + + SELECT ?tenistaLabel ?paisNacimientoLabel + WHERE { + ?tenista wdt:P106 wd:Q10833314. # Instancia de tenista + ?tenista wdt:P19 ?paisNacimiento. # País de nacimiento + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". } + } \ No newline at end of file From 07e172128930d0a9392864d221a1139b8702d354 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 10 Mar 2024 12:10:01 +0100 Subject: [PATCH 73/82] =?UTF-8?q?A=C3=B1ado=20las=20consultas=20de=20la=20?= =?UTF-8?q?categoria=20deportes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/preguntas.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index 88a12fa0..c84438e0 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -114,7 +114,6 @@ GROUP BY ?clubLabel - SELECT ?tenistaLabel ?paisNacimientoLabel From cb98e726521ffa66c9350b9403a1b5c6a77fa31a Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 10 Mar 2024 12:13:02 +0100 Subject: [PATCH 74/82] =?UTF-8?q?A=C3=B1ado=20las=20consultas=20de=20la=20?= =?UTF-8?q?categoria=20historia?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/preguntas.xml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index c84438e0..dc48e3f8 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -124,4 +124,30 @@ } + + + + SELECT DISTINCT ?presidente ?nombreCompleto ?fechaNacimiento + WHERE { + ?presidente wdt:P31 wd:Q5; # Filtrar por personas + wdt:P39 wd:Q844587; # Filtrar por posición: presidente del Gobierno de España + wdt:P569 ?fechaNacimiento; # Obtener fecha de nacimiento (opcional) + wdt:P1559 ?nombreCompleto. + SERVICE wikibase:label { bd:serviceParam wikibase:language "es". } + } + ORDER BY ?nombreCompleto + + + + + # Personalidades Nacidas en oviedo y su fecha de nacimiento + SELECT ?personLabel ?fNacimiento + WHERE { + ?person wdt:P19 wd:Q14317. + ?person wdt:P569 ?fNacimiento . + SERVICE wikibase:label { bd:serviceParam wikibase:language "es". } + } + + + \ No newline at end of file From d89459f201512ce171d3f16ecd9ccbd030ed8db9 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 10 Mar 2024 12:13:52 +0100 Subject: [PATCH 75/82] =?UTF-8?q?A=C3=B1ado=20las=20consultas=20de=20la=20?= =?UTF-8?q?categoria=20historia?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/preguntas.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index dc48e3f8..5e84f6cc 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -147,7 +147,6 @@ ?person wdt:P569 ?fNacimiento . SERVICE wikibase:label { bd:serviceParam wikibase:language "es". } } - \ No newline at end of file From 375e4f0ff930afb4a2f994b88a23a2add1d4c205 Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Sun, 10 Mar 2024 12:17:09 +0100 Subject: [PATCH 76/82] Compatibilizados los componentes de Vite a create e inicio en preguntas --- package-lock.json | 3793 +++++++++++++++++++++- webapp/package-lock.json | 3389 +++++++++++++------ webapp/package.json | 1 + webapp/src/App.css | 8 + webapp/src/App.js | 16 +- webapp/src/components/AnswerButton.jsx | 20 + webapp/src/components/AnswersBlock.jsx | 15 + webapp/src/components/EnunciadoBlock.jsx | 12 + webapp/src/components/QuestionArea.jsx | 14 + webapp/src/index.js | 6 +- 10 files changed, 6304 insertions(+), 970 deletions(-) create mode 100644 webapp/src/components/AnswerButton.jsx create mode 100644 webapp/src/components/AnswersBlock.jsx create mode 100644 webapp/src/components/EnunciadoBlock.jsx create mode 100644 webapp/src/components/QuestionArea.jsx diff --git a/package-lock.json b/package-lock.json index 5e65dbe1..19abc42a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,5 +2,3796 @@ "name": "wiq_es05c", "lockfileVersion": 2, "requires": true, - "packages": {} + "packages": { + "": { + "dependencies": { + "@chakra-ui/react": "^2.8.2" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "peer": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "peer": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "peer": true, + "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==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "peer": true, + "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/@chakra-ui/accordion": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.3.1.tgz", + "integrity": "sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==", + "dependencies": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/alert": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.2.2.tgz", + "integrity": "sha512-jHg4LYMRNOJH830ViLuicjb3F+v6iriE/2G5T+Sd0Hna04nukNJ1MxUmBPE+vI22me2dIflfelu2v9wdB6Pojw==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/anatomy": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-2.2.2.tgz", + "integrity": "sha512-MV6D4VLRIHr4PkW4zMyqfrNS1mPlCTiCXwvYGtDFQYr+xHFfonhAuf9WjsSc0nyp2m0OdkSLnzmVKkZFLo25Tg==" + }, + "node_modules/@chakra-ui/avatar": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.3.0.tgz", + "integrity": "sha512-8gKSyLfygnaotbJbDMHDiJoF38OHXUYVme4gGxZ1fLnQEdPVEaIWfH+NndIjOM0z8S+YEFnT9KyGMUtvPrBk3g==", + "dependencies": { + "@chakra-ui/image": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/breadcrumb": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.2.0.tgz", + "integrity": "sha512-4cWCG24flYBxjruRi4RJREWTGF74L/KzI2CognAW/d/zWR0CjiScuJhf37Am3LFbCySP6WSoyBOtTIoTA4yLEA==", + "dependencies": { + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/breakpoint-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/breakpoint-utils/-/breakpoint-utils-2.0.8.tgz", + "integrity": "sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "node_modules/@chakra-ui/button": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.1.0.tgz", + "integrity": "sha512-95CplwlRKmmUXkdEp/21VkEWgnwcx2TOBG6NfYlsuLBDHSLlo5FKIiE2oSi4zXc4TLcopGcWPNcm/NDaSC5pvA==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/card": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/card/-/card-2.2.0.tgz", + "integrity": "sha512-xUB/k5MURj4CtPAhdSoXZidUbm8j3hci9vnc+eZJVDqhDOShNlD6QeniQNRPRys4lWAQLCbFcrwL29C8naDi6g==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/checkbox": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.3.2.tgz", + "integrity": "sha512-85g38JIXMEv6M+AcyIGLh7igNtfpAN6KGQFYxY9tBj0eWvWk4NKQxvqqyVta0bSAyIl1rixNIIezNpNWk2iO4g==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/visually-hidden": "2.2.0", + "@zag-js/focus-visible": "0.16.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/clickable": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-2.1.0.tgz", + "integrity": "sha512-flRA/ClPUGPYabu+/GLREZVZr9j2uyyazCAUHAdrTUEdDYCr31SVGhgh7dgKdtq23bOvAQJpIJjw/0Bs0WvbXw==", + "dependencies": { + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/close-button": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-2.1.1.tgz", + "integrity": "sha512-gnpENKOanKexswSVpVz7ojZEALl2x5qjLYNqSQGbxz+aP9sOXPfUS56ebyBrre7T7exuWGiFeRwnM0oVeGPaiw==", + "dependencies": { + "@chakra-ui/icon": "3.2.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/color-mode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-2.2.0.tgz", + "integrity": "sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/control-box": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-2.1.0.tgz", + "integrity": "sha512-gVrRDyXFdMd8E7rulL0SKeoljkLQiPITFnsyMO8EFHNZ+AHt5wK4LIguYVEq88APqAGZGfHFWXr79RYrNiE3Mg==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/counter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-2.1.0.tgz", + "integrity": "sha512-s6hZAEcWT5zzjNz2JIWUBzRubo9la/oof1W7EKZVVfPYHERnl5e16FmBC79Yfq8p09LQ+aqFKm/etYoJMMgghw==", + "dependencies": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/css-reset": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.3.0.tgz", + "integrity": "sha512-cQwwBy5O0jzvl0K7PLTLgp8ijqLPKyuEMiDXwYzl95seD3AoeuoCLyzZcJtVqaUZ573PiBdAbY/IlZcwDOItWg==", + "peerDependencies": { + "@emotion/react": ">=10.0.35", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/descendant": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.1.0.tgz", + "integrity": "sha512-VxCIAir08g5w27klLyi7PVo8BxhW4tgU/lxQyujkmi4zx7hT9ZdrcQLAted/dAa+aSIZ14S1oV0Q9lGjsAdxUQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/dom-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.1.0.tgz", + "integrity": "sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==" + }, + "node_modules/@chakra-ui/editable": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-3.1.0.tgz", + "integrity": "sha512-j2JLrUL9wgg4YA6jLlbU88370eCRyor7DZQD9lzpY95tSOXpTljeg3uF9eOmDnCs6fxp3zDWIfkgMm/ExhcGTg==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/event-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/event-utils/-/event-utils-2.0.8.tgz", + "integrity": "sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==" + }, + "node_modules/@chakra-ui/focus-lock": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.1.0.tgz", + "integrity": "sha512-EmGx4PhWGjm4dpjRqM4Aa+rCWBxP+Rq8Uc/nAVnD4YVqkEhBkrPTpui2lnjsuxqNaZ24fIAZ10cF1hlpemte/w==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "react-focus-lock": "^2.9.4" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/form-control": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.2.0.tgz", + "integrity": "sha512-wehLC1t4fafCVJ2RvJQT2jyqsAwX7KymmiGqBu7nQoQz8ApTkGABWpo/QwDh3F/dBLrouHDoOvGmYTqft3Mirw==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/hooks": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.2.1.tgz", + "integrity": "sha512-RQbTnzl6b1tBjbDPf9zGRo9rf/pQMholsOudTxjy4i9GfTfz6kgp5ValGjQm2z7ng6Z31N1cnjZ1AlSzQ//ZfQ==", + "dependencies": { + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/utils": "2.0.15", + "compute-scroll-into-view": "3.0.3", + "copy-to-clipboard": "3.3.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/icon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-3.2.0.tgz", + "integrity": "sha512-xxjGLvlX2Ys4H0iHrI16t74rG9EBcpFvJ3Y3B7KMQTrnW34Kf7Da/UC8J67Gtx85mTHW020ml85SVPKORWNNKQ==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/image": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.1.0.tgz", + "integrity": "sha512-bskumBYKLiLMySIWDGcz0+D9Th0jPvmX6xnRMs4o92tT3Od/bW26lahmV2a2Op2ItXeCmRMY+XxJH5Gy1i46VA==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/input": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.1.2.tgz", + "integrity": "sha512-GiBbb3EqAA8Ph43yGa6Mc+kUPjh4Spmxp1Pkelr8qtudpc3p2PJOOebLpd90mcqw8UePPa+l6YhhPtp6o0irhw==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/layout": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.3.1.tgz", + "integrity": "sha512-nXuZ6WRbq0WdgnRgLw+QuxWAHuhDtVX8ElWqcTK+cSMFg/52eVP47czYBE5F35YhnoW2XBwfNoNgZ7+e8Z01Rg==", + "dependencies": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/lazy-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/lazy-utils/-/lazy-utils-2.0.5.tgz", + "integrity": "sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==" + }, + "node_modules/@chakra-ui/live-region": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-2.1.0.tgz", + "integrity": "sha512-ZOxFXwtaLIsXjqnszYYrVuswBhnIHHP+XIgK1vC6DePKtyK590Wg+0J0slDwThUAd4MSSIUa/nNX84x1GMphWw==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/media-query": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-3.3.0.tgz", + "integrity": "sha512-IsTGgFLoICVoPRp9ykOgqmdMotJG0CnPsKvGQeSFOB/dZfIujdVb14TYxDU4+MURXry1MhJ7LzZhv+Ml7cr8/g==", + "dependencies": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/menu": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.2.1.tgz", + "integrity": "sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==", + "dependencies": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-outside-click": "2.2.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/modal": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.3.1.tgz", + "integrity": "sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==", + "dependencies": { + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0", + "aria-hidden": "^1.2.3", + "react-remove-scroll": "^2.5.6" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/number-input": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.1.2.tgz", + "integrity": "sha512-pfOdX02sqUN0qC2ysuvgVDiws7xZ20XDIlcNhva55Jgm095xjm8eVdIBfNm3SFbSUNxyXvLTW/YQanX74tKmuA==", + "dependencies": { + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-interval": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/number-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-utils/-/number-utils-2.0.7.tgz", + "integrity": "sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg==" + }, + "node_modules/@chakra-ui/object-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.1.0.tgz", + "integrity": "sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==" + }, + "node_modules/@chakra-ui/pin-input": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.1.0.tgz", + "integrity": "sha512-x4vBqLStDxJFMt+jdAHHS8jbh294O53CPQJoL4g228P513rHylV/uPscYUHrVJXRxsHfRztQO9k45jjTYaPRMw==", + "dependencies": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/popover": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.2.1.tgz", + "integrity": "sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==", + "dependencies": { + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/popper": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.1.0.tgz", + "integrity": "sha512-ciDdpdYbeFG7og6/6J8lkTFxsSvwTdMLFkpVylAF6VNC22jssiWfquj2eyD4rJnzkRFPvIWJq8hvbfhsm+AjSg==", + "dependencies": { + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@popperjs/core": "^2.9.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/portal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.1.0.tgz", + "integrity": "sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/progress": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.2.0.tgz", + "integrity": "sha512-qUXuKbuhN60EzDD9mHR7B67D7p/ZqNS2Aze4Pbl1qGGZfulPW0PY8Rof32qDtttDQBkzQIzFGE8d9QpAemToIQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/provider": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.4.2.tgz", + "integrity": "sha512-w0Tef5ZCJK1mlJorcSjItCSbyvVuqpvyWdxZiVQmE6fvSJR83wZof42ux0+sfWD+I7rHSfj+f9nzhNaEWClysw==", + "dependencies": { + "@chakra-ui/css-reset": "2.3.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/system": "2.6.2", + "@chakra-ui/utils": "2.0.15" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/radio": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.1.2.tgz", + "integrity": "sha512-n10M46wJrMGbonaghvSRnZ9ToTv/q76Szz284gv4QUWvyljQACcGrXIONUnQ3BIwbOfkRqSk7Xl/JgZtVfll+w==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@zag-js/focus-visible": "0.16.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.8.2.tgz", + "integrity": "sha512-Hn0moyxxyCDKuR9ywYpqgX8dvjqwu9ArwpIb9wHNYjnODETjLwazgNIliCVBRcJvysGRiV51U2/JtJVrpeCjUQ==", + "dependencies": { + "@chakra-ui/accordion": "2.3.1", + "@chakra-ui/alert": "2.2.2", + "@chakra-ui/avatar": "2.3.0", + "@chakra-ui/breadcrumb": "2.2.0", + "@chakra-ui/button": "2.1.0", + "@chakra-ui/card": "2.2.0", + "@chakra-ui/checkbox": "2.3.2", + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/control-box": "2.1.0", + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/css-reset": "2.3.0", + "@chakra-ui/editable": "3.1.0", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/hooks": "2.2.1", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/image": "2.1.0", + "@chakra-ui/input": "2.1.2", + "@chakra-ui/layout": "2.3.1", + "@chakra-ui/live-region": "2.1.0", + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/menu": "2.2.1", + "@chakra-ui/modal": "2.3.1", + "@chakra-ui/number-input": "2.1.2", + "@chakra-ui/pin-input": "2.1.0", + "@chakra-ui/popover": "2.2.1", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/progress": "2.2.0", + "@chakra-ui/provider": "2.4.2", + "@chakra-ui/radio": "2.1.2", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/select": "2.1.2", + "@chakra-ui/skeleton": "2.1.0", + "@chakra-ui/skip-nav": "2.1.0", + "@chakra-ui/slider": "2.1.0", + "@chakra-ui/spinner": "2.1.0", + "@chakra-ui/stat": "2.1.1", + "@chakra-ui/stepper": "2.3.1", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/switch": "2.1.2", + "@chakra-ui/system": "2.6.2", + "@chakra-ui/table": "2.1.0", + "@chakra-ui/tabs": "3.0.0", + "@chakra-ui/tag": "3.1.1", + "@chakra-ui/textarea": "2.1.2", + "@chakra-ui/theme": "3.3.1", + "@chakra-ui/theme-utils": "2.0.21", + "@chakra-ui/toast": "7.0.2", + "@chakra-ui/tooltip": "2.3.1", + "@chakra-ui/transition": "2.1.0", + "@chakra-ui/utils": "2.0.15", + "@chakra-ui/visually-hidden": "2.2.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/react-children-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-children-utils/-/react-children-utils-2.0.6.tgz", + "integrity": "sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-context": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.1.0.tgz", + "integrity": "sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-env": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-3.1.0.tgz", + "integrity": "sha512-Vr96GV2LNBth3+IKzr/rq1IcnkXv+MLmwjQH6C8BRtn3sNskgDFD5vLkVXcEhagzZMCh8FR3V/bzZPojBOyNhw==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-types/-/react-types-2.0.7.tgz", + "integrity": "sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-animation-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.1.0.tgz", + "integrity": "sha512-CFZkQU3gmDBwhqy0vC1ryf90BVHxVN8cTLpSyCpdmExUEtSEInSCGMydj2fvn7QXsz/za8JNdO2xxgJwxpLMtg==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-callback-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-callback-ref/-/react-use-callback-ref-2.1.0.tgz", + "integrity": "sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-controllable-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-controllable-state/-/react-use-controllable-state-2.1.0.tgz", + "integrity": "sha512-QR/8fKNokxZUs4PfxjXuwl0fj/d71WPrmLJvEpCTkHjnzu7LnYvzoe2wB867IdooQJL0G1zBxl0Dq+6W1P3jpg==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-disclosure": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-disclosure/-/react-use-disclosure-2.1.0.tgz", + "integrity": "sha512-Ax4pmxA9LBGMyEZJhhUZobg9C0t3qFE4jVF1tGBsrLDcdBeLR9fwOogIPY9Hf0/wqSlAryAimICbr5hkpa5GSw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-event-listener": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-event-listener/-/react-use-event-listener-2.1.0.tgz", + "integrity": "sha512-U5greryDLS8ISP69DKDsYcsXRtAdnTQT+jjIlRYZ49K/XhUR/AqVZCK5BkR1spTDmO9H8SPhgeNKI70ODuDU/Q==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-focus-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.1.0.tgz", + "integrity": "sha512-xzVboNy7J64xveLcxTIJ3jv+lUJKDwRM7Szwn9tNzUIPD94O3qwjV7DDCUzN2490nSYDF4OBMt/wuDBtaR3kUQ==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-focus-on-pointer-down": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-on-pointer-down/-/react-use-focus-on-pointer-down-2.1.0.tgz", + "integrity": "sha512-2jzrUZ+aiCG/cfanrolsnSMDykCAbv9EK/4iUyZno6BYb3vziucmvgKuoXbMPAzWNtwUwtuMhkby8rc61Ue+Lg==", + "dependencies": { + "@chakra-ui/react-use-event-listener": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-interval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-interval/-/react-use-interval-2.1.0.tgz", + "integrity": "sha512-8iWj+I/+A0J08pgEXP1J1flcvhLBHkk0ln7ZvGIyXiEyM6XagOTJpwNhiu+Bmk59t3HoV/VyvyJTa+44sEApuw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-latest-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-latest-ref/-/react-use-latest-ref-2.1.0.tgz", + "integrity": "sha512-m0kxuIYqoYB0va9Z2aW4xP/5b7BzlDeWwyXCH6QpT2PpW3/281L3hLCm1G0eOUcdVlayqrQqOeD6Mglq+5/xoQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-merge-refs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-merge-refs/-/react-use-merge-refs-2.1.0.tgz", + "integrity": "sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-outside-click": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.2.0.tgz", + "integrity": "sha512-PNX+s/JEaMneijbgAM4iFL+f3m1ga9+6QK0E5Yh4s8KZJQ/bLwZzdhMz8J/+mL+XEXQ5J0N8ivZN28B82N1kNw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-pan-event": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-pan-event/-/react-use-pan-event-2.1.0.tgz", + "integrity": "sha512-xmL2qOHiXqfcj0q7ZK5s9UjTh4Gz0/gL9jcWPA6GVf+A0Od5imEDa/Vz+533yQKWiNSm1QGrIj0eJAokc7O4fg==", + "dependencies": { + "@chakra-ui/event-utils": "2.0.8", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "framesync": "6.1.2" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-previous": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-previous/-/react-use-previous-2.1.0.tgz", + "integrity": "sha512-pjxGwue1hX8AFcmjZ2XfrQtIJgqbTF3Qs1Dy3d1krC77dEsiCUbQ9GzOBfDc8pfd60DrB5N2tg5JyHbypqh0Sg==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-safe-layout-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-safe-layout-effect/-/react-use-safe-layout-effect-2.1.0.tgz", + "integrity": "sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-size": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.1.0.tgz", + "integrity": "sha512-tbLqrQhbnqOjzTaMlYytp7wY8BW1JpL78iG7Ru1DlV4EWGiAmXFGvtnEt9HftU0NJ0aJyjgymkxfVGI55/1Z4A==", + "dependencies": { + "@zag-js/element-size": "0.10.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-timeout": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-timeout/-/react-use-timeout-2.1.0.tgz", + "integrity": "sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-update-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-update-effect/-/react-use-update-effect-2.1.0.tgz", + "integrity": "sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-utils": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-2.0.12.tgz", + "integrity": "sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==", + "dependencies": { + "@chakra-ui/utils": "2.0.15" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/select": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.1.2.tgz", + "integrity": "sha512-ZwCb7LqKCVLJhru3DXvKXpZ7Pbu1TDZ7N0PdQ0Zj1oyVLJyrpef1u9HR5u0amOpqcH++Ugt0f5JSmirjNlctjA==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/shared-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/shared-utils/-/shared-utils-2.0.5.tgz", + "integrity": "sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==" + }, + "node_modules/@chakra-ui/skeleton": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-2.1.0.tgz", + "integrity": "sha512-JNRuMPpdZGd6zFVKjVQ0iusu3tXAdI29n4ZENYwAJEMf/fN0l12sVeirOxkJ7oEL0yOx2AgEYFSKdbcAgfUsAQ==", + "dependencies": { + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/react-use-previous": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/skip-nav": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-2.1.0.tgz", + "integrity": "sha512-Hk+FG+vadBSH0/7hwp9LJnLjkO0RPGnx7gBJWI4/SpoJf3e4tZlWYtwGj0toYY4aGKl93jVghuwGbDBEMoHDug==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/slider": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.1.0.tgz", + "integrity": "sha512-lUOBcLMCnFZiA/s2NONXhELJh6sY5WtbRykPtclGfynqqOo47lwWJx+VP7xaeuhDOPcWSSecWc9Y1BfPOCz9cQ==", + "dependencies": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-pan-event": "2.1.0", + "@chakra-ui/react-use-size": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/spinner": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-2.1.0.tgz", + "integrity": "sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/stat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.1.1.tgz", + "integrity": "sha512-LDn0d/LXQNbAn2KaR3F1zivsZCewY4Jsy1qShmfBMKwn6rI8yVlbvu6SiA3OpHS0FhxbsZxQI6HefEoIgtqY6Q==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/stepper": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/stepper/-/stepper-2.3.1.tgz", + "integrity": "sha512-ky77lZbW60zYkSXhYz7kbItUpAQfEdycT0Q4bkHLxfqbuiGMf8OmgZOQkOB9uM4v0zPwy2HXhe0vq4Dd0xa55Q==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/styled-system": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.9.2.tgz", + "integrity": "sha512-To/Z92oHpIE+4nk11uVMWqo2GGRS86coeMmjxtpnErmWRdLcp1WVCVRAvn+ZwpLiNR+reWFr2FFqJRsREuZdAg==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5", + "csstype": "^3.1.2", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/switch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.1.2.tgz", + "integrity": "sha512-pgmi/CC+E1v31FcnQhsSGjJnOE2OcND4cKPyTE+0F+bmGm48Q/b5UmKD9Y+CmZsrt/7V3h8KNczowupfuBfIHA==", + "dependencies": { + "@chakra-ui/checkbox": "2.3.2", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/system": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.6.2.tgz", + "integrity": "sha512-EGtpoEjLrUu4W1fHD+a62XR+hzC5YfsWm+6lO0Kybcga3yYEij9beegO0jZgug27V+Rf7vns95VPVP6mFd/DEQ==", + "dependencies": { + "@chakra-ui/color-mode": "2.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme-utils": "2.0.21", + "@chakra-ui/utils": "2.0.15", + "react-fast-compare": "3.2.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/table": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.1.0.tgz", + "integrity": "sha512-o5OrjoHCh5uCLdiUb0Oc0vq9rIAeHSIRScc2ExTC9Qg/uVZl2ygLrjToCaKfaaKl1oQexIeAcZDKvPG8tVkHyQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/tabs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-3.0.0.tgz", + "integrity": "sha512-6Mlclp8L9lqXmsGWF5q5gmemZXOiOYuh0SGT/7PgJVNPz3LXREXlXg2an4MBUD8W5oTkduCX+3KTMCwRrVrDYw==", + "dependencies": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/tag": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-3.1.1.tgz", + "integrity": "sha512-Bdel79Dv86Hnge2PKOU+t8H28nm/7Y3cKd4Kfk9k3lOpUh4+nkSGe58dhRzht59lEqa4N9waCgQiBdkydjvBXQ==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/textarea": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.1.2.tgz", + "integrity": "sha512-ip7tvklVCZUb2fOHDb23qPy/Fr2mzDOGdkrpbNi50hDCiV4hFX02jdQJdi3ydHZUyVgZVBKPOJ+lT9i7sKA2wA==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/theme": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.3.1.tgz", + "integrity": "sha512-Hft/VaT8GYnItGCBbgWd75ICrIrIFrR7lVOhV/dQnqtfGqsVDlrztbSErvMkoPKt0UgAkd9/o44jmZ6X4U2nZQ==", + "dependencies": { + "@chakra-ui/anatomy": "2.2.2", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/theme-tools": "2.1.2" + }, + "peerDependencies": { + "@chakra-ui/styled-system": ">=2.8.0" + } + }, + "node_modules/@chakra-ui/theme-tools": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.1.2.tgz", + "integrity": "sha512-Qdj8ajF9kxY4gLrq7gA+Azp8CtFHGO9tWMN2wfF9aQNgG9AuMhPrUzMq9AMQ0MXiYcgNq/FD3eegB43nHVmXVA==", + "dependencies": { + "@chakra-ui/anatomy": "2.2.2", + "@chakra-ui/shared-utils": "2.0.5", + "color2k": "^2.0.2" + }, + "peerDependencies": { + "@chakra-ui/styled-system": ">=2.0.0" + } + }, + "node_modules/@chakra-ui/theme-utils": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.21.tgz", + "integrity": "sha512-FjH5LJbT794r0+VSCXB3lT4aubI24bLLRWB+CuRKHijRvsOg717bRdUN/N1fEmEpFnRVrbewttWh/OQs0EWpWw==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme": "3.3.1", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/toast": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-7.0.2.tgz", + "integrity": "sha512-yvRP8jFKRs/YnkuE41BVTq9nB2v/KDRmje9u6dgDmE5+1bFt3bwjdf9gVbif4u5Ve7F7BGk5E093ARRVtvLvXA==", + "dependencies": { + "@chakra-ui/alert": "2.2.2", + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-timeout": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme": "3.3.1" + }, + "peerDependencies": { + "@chakra-ui/system": "2.6.2", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/tooltip": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.3.1.tgz", + "integrity": "sha512-Rh39GBn/bL4kZpuEMPPRwYNnccRCL+w9OqamWHIB3Qboxs6h8cOyXfIdGxjo72lvhu1QI/a4KFqkM3St+WfC0A==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/transition": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.1.0.tgz", + "integrity": "sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/utils": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-2.0.15.tgz", + "integrity": "sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==", + "dependencies": { + "@types/lodash.mergewith": "4.6.7", + "css-box-model": "1.2.1", + "framesync": "6.1.2", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/visually-hidden": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-2.2.0.tgz", + "integrity": "sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "peer": true, + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "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==", + "peer": true + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "peer": true, + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "peer": true + }, + "node_modules/@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", + "peer": true, + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==", + "peer": true + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "peer": true + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peer": true, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==", + "peer": true + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", + "peer": true + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@types/lodash": { + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" + }, + "node_modules/@types/lodash.mergewith": { + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz", + "integrity": "sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "peer": true + }, + "node_modules/@zag-js/dom-query": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.16.0.tgz", + "integrity": "sha512-Oqhd6+biWyKnhKwFFuZrrf6lxBz2tX2pRQe6grUnYwO6HJ8BcbqZomy2lpOdr+3itlaUqx+Ywj5E5ZZDr/LBfQ==" + }, + "node_modules/@zag-js/element-size": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.10.5.tgz", + "integrity": "sha512-uQre5IidULANvVkNOBQ1tfgwTQcGl4hliPSe69Fct1VfYb2Fd0jdAcGzqQgPhfrXFpR62MxLPB7erxJ/ngtL8w==" + }, + "node_modules/@zag-js/focus-visible": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.16.0.tgz", + "integrity": "sha512-a7U/HSopvQbrDU4GLerpqiMcHKEkQkNPeDZJWz38cw/6Upunh41GjHetq5TB84hxyCaDzJ6q2nEdNoBQfC0FKA==", + "dependencies": { + "@zag-js/dom-query": "0.16.0" + } + }, + "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==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/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==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "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==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/color2k": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz", + "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==" + }, + "node_modules/compute-scroll-into-view": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz", + "integrity": "sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==" + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "peer": true + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "peer": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "dependencies": { + "tiny-invariant": "^1.0.6" + } + }, + "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/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "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==", + "peer": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "peer": true + }, + "node_modules/focus-lock": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-1.3.4.tgz", + "integrity": "sha512-Gv0N3mvej3pD+HWkNryrF8sExzEHqhQ6OSFxD4DPxm9n5HGCaHme98ZMBZroNEAJcsdtHxk+skvThGKyUeoEGA==", + "dependencies": { + "tslib": "^2.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/framer-motion": { + "version": "11.0.8", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.0.8.tgz", + "integrity": "sha512-1KSGNuqe1qZkS/SWQlDnqK2VCVzRVEoval379j0FiUBJAZoqgwyvqFkfvJbgW2IPFo4wX16K+M0k5jO23lCIjA==", + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "peer": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/framer-motion/node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true, + "peer": true + }, + "node_modules/framesync": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", + "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", + "dependencies": { + "tslib": "2.4.0" + } + }, + "node_modules/framesync/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "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==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "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==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "peer": true, + "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==", + "peer": true, + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "peer": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "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==", + "peer": true + }, + "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==", + "peer": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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==", + "peer": true + }, + "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==", + "peer": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "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/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "peer": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "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==", + "peer": true, + "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/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==", + "peer": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-clientside-effect": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", + "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", + "dependencies": { + "@babel/runtime": "^7.12.13" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-focus-lock": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.11.2.tgz", + "integrity": "sha512-DDTbEiov0+RthESPVSTIdAWPPKic+op3sCcP+icbMRobvQNt7LuAlJ3KoarqQv5sCgKArru3kXmlmFTa27/CdQ==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^1.3.2", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.6", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "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/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.5.tgz", + "integrity": "sha512-3cqjOqg6s0XbOjWvmasmqHch+RLxIEk2r/70rzGXuz3iIGQsQheEQyqYCBb5EECoD01Vo2SIbDqW4paLeLTASw==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "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": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "peer": true, + "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-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "peer": true + }, + "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==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + }, + "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==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/use-callback-ref": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", + "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "peer": true, + "engines": { + "node": ">= 6" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "peer": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "peer": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "peer": true + }, + "@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==", + "peer": true + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "peer": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@chakra-ui/accordion": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.3.1.tgz", + "integrity": "sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==", + "requires": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + } + }, + "@chakra-ui/alert": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.2.2.tgz", + "integrity": "sha512-jHg4LYMRNOJH830ViLuicjb3F+v6iriE/2G5T+Sd0Hna04nukNJ1MxUmBPE+vI22me2dIflfelu2v9wdB6Pojw==", + "requires": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + } + }, + "@chakra-ui/anatomy": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-2.2.2.tgz", + "integrity": "sha512-MV6D4VLRIHr4PkW4zMyqfrNS1mPlCTiCXwvYGtDFQYr+xHFfonhAuf9WjsSc0nyp2m0OdkSLnzmVKkZFLo25Tg==" + }, + "@chakra-ui/avatar": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.3.0.tgz", + "integrity": "sha512-8gKSyLfygnaotbJbDMHDiJoF38OHXUYVme4gGxZ1fLnQEdPVEaIWfH+NndIjOM0z8S+YEFnT9KyGMUtvPrBk3g==", + "requires": { + "@chakra-ui/image": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/breadcrumb": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.2.0.tgz", + "integrity": "sha512-4cWCG24flYBxjruRi4RJREWTGF74L/KzI2CognAW/d/zWR0CjiScuJhf37Am3LFbCySP6WSoyBOtTIoTA4yLEA==", + "requires": { + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/breakpoint-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/breakpoint-utils/-/breakpoint-utils-2.0.8.tgz", + "integrity": "sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==", + "requires": { + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/button": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.1.0.tgz", + "integrity": "sha512-95CplwlRKmmUXkdEp/21VkEWgnwcx2TOBG6NfYlsuLBDHSLlo5FKIiE2oSi4zXc4TLcopGcWPNcm/NDaSC5pvA==", + "requires": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + } + }, + "@chakra-ui/card": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/card/-/card-2.2.0.tgz", + "integrity": "sha512-xUB/k5MURj4CtPAhdSoXZidUbm8j3hci9vnc+eZJVDqhDOShNlD6QeniQNRPRys4lWAQLCbFcrwL29C8naDi6g==", + "requires": { + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/checkbox": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.3.2.tgz", + "integrity": "sha512-85g38JIXMEv6M+AcyIGLh7igNtfpAN6KGQFYxY9tBj0eWvWk4NKQxvqqyVta0bSAyIl1rixNIIezNpNWk2iO4g==", + "requires": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/visually-hidden": "2.2.0", + "@zag-js/focus-visible": "0.16.0" + } + }, + "@chakra-ui/clickable": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-2.1.0.tgz", + "integrity": "sha512-flRA/ClPUGPYabu+/GLREZVZr9j2uyyazCAUHAdrTUEdDYCr31SVGhgh7dgKdtq23bOvAQJpIJjw/0Bs0WvbXw==", + "requires": { + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/close-button": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-2.1.1.tgz", + "integrity": "sha512-gnpENKOanKexswSVpVz7ojZEALl2x5qjLYNqSQGbxz+aP9sOXPfUS56ebyBrre7T7exuWGiFeRwnM0oVeGPaiw==", + "requires": { + "@chakra-ui/icon": "3.2.0" + } + }, + "@chakra-ui/color-mode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-2.2.0.tgz", + "integrity": "sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==", + "requires": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + } + }, + "@chakra-ui/control-box": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-2.1.0.tgz", + "integrity": "sha512-gVrRDyXFdMd8E7rulL0SKeoljkLQiPITFnsyMO8EFHNZ+AHt5wK4LIguYVEq88APqAGZGfHFWXr79RYrNiE3Mg==", + "requires": {} + }, + "@chakra-ui/counter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-2.1.0.tgz", + "integrity": "sha512-s6hZAEcWT5zzjNz2JIWUBzRubo9la/oof1W7EKZVVfPYHERnl5e16FmBC79Yfq8p09LQ+aqFKm/etYoJMMgghw==", + "requires": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/css-reset": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.3.0.tgz", + "integrity": "sha512-cQwwBy5O0jzvl0K7PLTLgp8ijqLPKyuEMiDXwYzl95seD3AoeuoCLyzZcJtVqaUZ573PiBdAbY/IlZcwDOItWg==", + "requires": {} + }, + "@chakra-ui/descendant": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.1.0.tgz", + "integrity": "sha512-VxCIAir08g5w27klLyi7PVo8BxhW4tgU/lxQyujkmi4zx7hT9ZdrcQLAted/dAa+aSIZ14S1oV0Q9lGjsAdxUQ==", + "requires": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0" + } + }, + "@chakra-ui/dom-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.1.0.tgz", + "integrity": "sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==" + }, + "@chakra-ui/editable": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-3.1.0.tgz", + "integrity": "sha512-j2JLrUL9wgg4YA6jLlbU88370eCRyor7DZQD9lzpY95tSOXpTljeg3uF9eOmDnCs6fxp3zDWIfkgMm/ExhcGTg==", + "requires": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/event-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/event-utils/-/event-utils-2.0.8.tgz", + "integrity": "sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==" + }, + "@chakra-ui/focus-lock": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.1.0.tgz", + "integrity": "sha512-EmGx4PhWGjm4dpjRqM4Aa+rCWBxP+Rq8Uc/nAVnD4YVqkEhBkrPTpui2lnjsuxqNaZ24fIAZ10cF1hlpemte/w==", + "requires": { + "@chakra-ui/dom-utils": "2.1.0", + "react-focus-lock": "^2.9.4" + } + }, + "@chakra-ui/form-control": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.2.0.tgz", + "integrity": "sha512-wehLC1t4fafCVJ2RvJQT2jyqsAwX7KymmiGqBu7nQoQz8ApTkGABWpo/QwDh3F/dBLrouHDoOvGmYTqft3Mirw==", + "requires": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/hooks": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.2.1.tgz", + "integrity": "sha512-RQbTnzl6b1tBjbDPf9zGRo9rf/pQMholsOudTxjy4i9GfTfz6kgp5ValGjQm2z7ng6Z31N1cnjZ1AlSzQ//ZfQ==", + "requires": { + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/utils": "2.0.15", + "compute-scroll-into-view": "3.0.3", + "copy-to-clipboard": "3.3.3" + } + }, + "@chakra-ui/icon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-3.2.0.tgz", + "integrity": "sha512-xxjGLvlX2Ys4H0iHrI16t74rG9EBcpFvJ3Y3B7KMQTrnW34Kf7Da/UC8J67Gtx85mTHW020ml85SVPKORWNNKQ==", + "requires": { + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/image": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.1.0.tgz", + "integrity": "sha512-bskumBYKLiLMySIWDGcz0+D9Th0jPvmX6xnRMs4o92tT3Od/bW26lahmV2a2Op2ItXeCmRMY+XxJH5Gy1i46VA==", + "requires": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/input": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.1.2.tgz", + "integrity": "sha512-GiBbb3EqAA8Ph43yGa6Mc+kUPjh4Spmxp1Pkelr8qtudpc3p2PJOOebLpd90mcqw8UePPa+l6YhhPtp6o0irhw==", + "requires": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/layout": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.3.1.tgz", + "integrity": "sha512-nXuZ6WRbq0WdgnRgLw+QuxWAHuhDtVX8ElWqcTK+cSMFg/52eVP47czYBE5F35YhnoW2XBwfNoNgZ7+e8Z01Rg==", + "requires": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/lazy-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/lazy-utils/-/lazy-utils-2.0.5.tgz", + "integrity": "sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==" + }, + "@chakra-ui/live-region": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-2.1.0.tgz", + "integrity": "sha512-ZOxFXwtaLIsXjqnszYYrVuswBhnIHHP+XIgK1vC6DePKtyK590Wg+0J0slDwThUAd4MSSIUa/nNX84x1GMphWw==", + "requires": {} + }, + "@chakra-ui/media-query": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-3.3.0.tgz", + "integrity": "sha512-IsTGgFLoICVoPRp9ykOgqmdMotJG0CnPsKvGQeSFOB/dZfIujdVb14TYxDU4+MURXry1MhJ7LzZhv+Ml7cr8/g==", + "requires": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/menu": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.2.1.tgz", + "integrity": "sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==", + "requires": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-outside-click": "2.2.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + } + }, + "@chakra-ui/modal": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.3.1.tgz", + "integrity": "sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==", + "requires": { + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0", + "aria-hidden": "^1.2.3", + "react-remove-scroll": "^2.5.6" + } + }, + "@chakra-ui/number-input": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.1.2.tgz", + "integrity": "sha512-pfOdX02sqUN0qC2ysuvgVDiws7xZ20XDIlcNhva55Jgm095xjm8eVdIBfNm3SFbSUNxyXvLTW/YQanX74tKmuA==", + "requires": { + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-interval": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/number-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-utils/-/number-utils-2.0.7.tgz", + "integrity": "sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg==" + }, + "@chakra-ui/object-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.1.0.tgz", + "integrity": "sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==" + }, + "@chakra-ui/pin-input": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.1.0.tgz", + "integrity": "sha512-x4vBqLStDxJFMt+jdAHHS8jbh294O53CPQJoL4g228P513rHylV/uPscYUHrVJXRxsHfRztQO9k45jjTYaPRMw==", + "requires": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/popover": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.2.1.tgz", + "integrity": "sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==", + "requires": { + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/popper": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.1.0.tgz", + "integrity": "sha512-ciDdpdYbeFG7og6/6J8lkTFxsSvwTdMLFkpVylAF6VNC22jssiWfquj2eyD4rJnzkRFPvIWJq8hvbfhsm+AjSg==", + "requires": { + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@popperjs/core": "^2.9.3" + } + }, + "@chakra-ui/portal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.1.0.tgz", + "integrity": "sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==", + "requires": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + } + }, + "@chakra-ui/progress": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.2.0.tgz", + "integrity": "sha512-qUXuKbuhN60EzDD9mHR7B67D7p/ZqNS2Aze4Pbl1qGGZfulPW0PY8Rof32qDtttDQBkzQIzFGE8d9QpAemToIQ==", + "requires": { + "@chakra-ui/react-context": "2.1.0" + } + }, + "@chakra-ui/provider": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.4.2.tgz", + "integrity": "sha512-w0Tef5ZCJK1mlJorcSjItCSbyvVuqpvyWdxZiVQmE6fvSJR83wZof42ux0+sfWD+I7rHSfj+f9nzhNaEWClysw==", + "requires": { + "@chakra-ui/css-reset": "2.3.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/system": "2.6.2", + "@chakra-ui/utils": "2.0.15" + } + }, + "@chakra-ui/radio": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.1.2.tgz", + "integrity": "sha512-n10M46wJrMGbonaghvSRnZ9ToTv/q76Szz284gv4QUWvyljQACcGrXIONUnQ3BIwbOfkRqSk7Xl/JgZtVfll+w==", + "requires": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@zag-js/focus-visible": "0.16.0" + } + }, + "@chakra-ui/react": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.8.2.tgz", + "integrity": "sha512-Hn0moyxxyCDKuR9ywYpqgX8dvjqwu9ArwpIb9wHNYjnODETjLwazgNIliCVBRcJvysGRiV51U2/JtJVrpeCjUQ==", + "requires": { + "@chakra-ui/accordion": "2.3.1", + "@chakra-ui/alert": "2.2.2", + "@chakra-ui/avatar": "2.3.0", + "@chakra-ui/breadcrumb": "2.2.0", + "@chakra-ui/button": "2.1.0", + "@chakra-ui/card": "2.2.0", + "@chakra-ui/checkbox": "2.3.2", + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/control-box": "2.1.0", + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/css-reset": "2.3.0", + "@chakra-ui/editable": "3.1.0", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/hooks": "2.2.1", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/image": "2.1.0", + "@chakra-ui/input": "2.1.2", + "@chakra-ui/layout": "2.3.1", + "@chakra-ui/live-region": "2.1.0", + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/menu": "2.2.1", + "@chakra-ui/modal": "2.3.1", + "@chakra-ui/number-input": "2.1.2", + "@chakra-ui/pin-input": "2.1.0", + "@chakra-ui/popover": "2.2.1", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/progress": "2.2.0", + "@chakra-ui/provider": "2.4.2", + "@chakra-ui/radio": "2.1.2", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/select": "2.1.2", + "@chakra-ui/skeleton": "2.1.0", + "@chakra-ui/skip-nav": "2.1.0", + "@chakra-ui/slider": "2.1.0", + "@chakra-ui/spinner": "2.1.0", + "@chakra-ui/stat": "2.1.1", + "@chakra-ui/stepper": "2.3.1", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/switch": "2.1.2", + "@chakra-ui/system": "2.6.2", + "@chakra-ui/table": "2.1.0", + "@chakra-ui/tabs": "3.0.0", + "@chakra-ui/tag": "3.1.1", + "@chakra-ui/textarea": "2.1.2", + "@chakra-ui/theme": "3.3.1", + "@chakra-ui/theme-utils": "2.0.21", + "@chakra-ui/toast": "7.0.2", + "@chakra-ui/tooltip": "2.3.1", + "@chakra-ui/transition": "2.1.0", + "@chakra-ui/utils": "2.0.15", + "@chakra-ui/visually-hidden": "2.2.0" + } + }, + "@chakra-ui/react-children-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-children-utils/-/react-children-utils-2.0.6.tgz", + "integrity": "sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==", + "requires": {} + }, + "@chakra-ui/react-context": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.1.0.tgz", + "integrity": "sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==", + "requires": {} + }, + "@chakra-ui/react-env": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-3.1.0.tgz", + "integrity": "sha512-Vr96GV2LNBth3+IKzr/rq1IcnkXv+MLmwjQH6C8BRtn3sNskgDFD5vLkVXcEhagzZMCh8FR3V/bzZPojBOyNhw==", + "requires": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + } + }, + "@chakra-ui/react-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-types/-/react-types-2.0.7.tgz", + "integrity": "sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==", + "requires": {} + }, + "@chakra-ui/react-use-animation-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.1.0.tgz", + "integrity": "sha512-CFZkQU3gmDBwhqy0vC1ryf90BVHxVN8cTLpSyCpdmExUEtSEInSCGMydj2fvn7QXsz/za8JNdO2xxgJwxpLMtg==", + "requires": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0" + } + }, + "@chakra-ui/react-use-callback-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-callback-ref/-/react-use-callback-ref-2.1.0.tgz", + "integrity": "sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==", + "requires": {} + }, + "@chakra-ui/react-use-controllable-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-controllable-state/-/react-use-controllable-state-2.1.0.tgz", + "integrity": "sha512-QR/8fKNokxZUs4PfxjXuwl0fj/d71WPrmLJvEpCTkHjnzu7LnYvzoe2wB867IdooQJL0G1zBxl0Dq+6W1P3jpg==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + } + }, + "@chakra-ui/react-use-disclosure": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-disclosure/-/react-use-disclosure-2.1.0.tgz", + "integrity": "sha512-Ax4pmxA9LBGMyEZJhhUZobg9C0t3qFE4jVF1tGBsrLDcdBeLR9fwOogIPY9Hf0/wqSlAryAimICbr5hkpa5GSw==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + } + }, + "@chakra-ui/react-use-event-listener": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-event-listener/-/react-use-event-listener-2.1.0.tgz", + "integrity": "sha512-U5greryDLS8ISP69DKDsYcsXRtAdnTQT+jjIlRYZ49K/XhUR/AqVZCK5BkR1spTDmO9H8SPhgeNKI70ODuDU/Q==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + } + }, + "@chakra-ui/react-use-focus-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.1.0.tgz", + "integrity": "sha512-xzVboNy7J64xveLcxTIJ3jv+lUJKDwRM7Szwn9tNzUIPD94O3qwjV7DDCUzN2490nSYDF4OBMt/wuDBtaR3kUQ==", + "requires": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + } + }, + "@chakra-ui/react-use-focus-on-pointer-down": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-on-pointer-down/-/react-use-focus-on-pointer-down-2.1.0.tgz", + "integrity": "sha512-2jzrUZ+aiCG/cfanrolsnSMDykCAbv9EK/4iUyZno6BYb3vziucmvgKuoXbMPAzWNtwUwtuMhkby8rc61Ue+Lg==", + "requires": { + "@chakra-ui/react-use-event-listener": "2.1.0" + } + }, + "@chakra-ui/react-use-interval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-interval/-/react-use-interval-2.1.0.tgz", + "integrity": "sha512-8iWj+I/+A0J08pgEXP1J1flcvhLBHkk0ln7ZvGIyXiEyM6XagOTJpwNhiu+Bmk59t3HoV/VyvyJTa+44sEApuw==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + } + }, + "@chakra-ui/react-use-latest-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-latest-ref/-/react-use-latest-ref-2.1.0.tgz", + "integrity": "sha512-m0kxuIYqoYB0va9Z2aW4xP/5b7BzlDeWwyXCH6QpT2PpW3/281L3hLCm1G0eOUcdVlayqrQqOeD6Mglq+5/xoQ==", + "requires": {} + }, + "@chakra-ui/react-use-merge-refs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-merge-refs/-/react-use-merge-refs-2.1.0.tgz", + "integrity": "sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==", + "requires": {} + }, + "@chakra-ui/react-use-outside-click": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.2.0.tgz", + "integrity": "sha512-PNX+s/JEaMneijbgAM4iFL+f3m1ga9+6QK0E5Yh4s8KZJQ/bLwZzdhMz8J/+mL+XEXQ5J0N8ivZN28B82N1kNw==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + } + }, + "@chakra-ui/react-use-pan-event": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-pan-event/-/react-use-pan-event-2.1.0.tgz", + "integrity": "sha512-xmL2qOHiXqfcj0q7ZK5s9UjTh4Gz0/gL9jcWPA6GVf+A0Od5imEDa/Vz+533yQKWiNSm1QGrIj0eJAokc7O4fg==", + "requires": { + "@chakra-ui/event-utils": "2.0.8", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "framesync": "6.1.2" + } + }, + "@chakra-ui/react-use-previous": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-previous/-/react-use-previous-2.1.0.tgz", + "integrity": "sha512-pjxGwue1hX8AFcmjZ2XfrQtIJgqbTF3Qs1Dy3d1krC77dEsiCUbQ9GzOBfDc8pfd60DrB5N2tg5JyHbypqh0Sg==", + "requires": {} + }, + "@chakra-ui/react-use-safe-layout-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-safe-layout-effect/-/react-use-safe-layout-effect-2.1.0.tgz", + "integrity": "sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==", + "requires": {} + }, + "@chakra-ui/react-use-size": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.1.0.tgz", + "integrity": "sha512-tbLqrQhbnqOjzTaMlYytp7wY8BW1JpL78iG7Ru1DlV4EWGiAmXFGvtnEt9HftU0NJ0aJyjgymkxfVGI55/1Z4A==", + "requires": { + "@zag-js/element-size": "0.10.5" + } + }, + "@chakra-ui/react-use-timeout": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-timeout/-/react-use-timeout-2.1.0.tgz", + "integrity": "sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + } + }, + "@chakra-ui/react-use-update-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-update-effect/-/react-use-update-effect-2.1.0.tgz", + "integrity": "sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==", + "requires": {} + }, + "@chakra-ui/react-utils": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-2.0.12.tgz", + "integrity": "sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==", + "requires": { + "@chakra-ui/utils": "2.0.15" + } + }, + "@chakra-ui/select": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.1.2.tgz", + "integrity": "sha512-ZwCb7LqKCVLJhru3DXvKXpZ7Pbu1TDZ7N0PdQ0Zj1oyVLJyrpef1u9HR5u0amOpqcH++Ugt0f5JSmirjNlctjA==", + "requires": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/shared-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/shared-utils/-/shared-utils-2.0.5.tgz", + "integrity": "sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==" + }, + "@chakra-ui/skeleton": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-2.1.0.tgz", + "integrity": "sha512-JNRuMPpdZGd6zFVKjVQ0iusu3tXAdI29n4ZENYwAJEMf/fN0l12sVeirOxkJ7oEL0yOx2AgEYFSKdbcAgfUsAQ==", + "requires": { + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/react-use-previous": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/skip-nav": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-2.1.0.tgz", + "integrity": "sha512-Hk+FG+vadBSH0/7hwp9LJnLjkO0RPGnx7gBJWI4/SpoJf3e4tZlWYtwGj0toYY4aGKl93jVghuwGbDBEMoHDug==", + "requires": {} + }, + "@chakra-ui/slider": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.1.0.tgz", + "integrity": "sha512-lUOBcLMCnFZiA/s2NONXhELJh6sY5WtbRykPtclGfynqqOo47lwWJx+VP7xaeuhDOPcWSSecWc9Y1BfPOCz9cQ==", + "requires": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-pan-event": "2.1.0", + "@chakra-ui/react-use-size": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + } + }, + "@chakra-ui/spinner": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-2.1.0.tgz", + "integrity": "sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==", + "requires": { + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/stat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.1.1.tgz", + "integrity": "sha512-LDn0d/LXQNbAn2KaR3F1zivsZCewY4Jsy1qShmfBMKwn6rI8yVlbvu6SiA3OpHS0FhxbsZxQI6HefEoIgtqY6Q==", + "requires": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/stepper": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/stepper/-/stepper-2.3.1.tgz", + "integrity": "sha512-ky77lZbW60zYkSXhYz7kbItUpAQfEdycT0Q4bkHLxfqbuiGMf8OmgZOQkOB9uM4v0zPwy2HXhe0vq4Dd0xa55Q==", + "requires": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/styled-system": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.9.2.tgz", + "integrity": "sha512-To/Z92oHpIE+4nk11uVMWqo2GGRS86coeMmjxtpnErmWRdLcp1WVCVRAvn+ZwpLiNR+reWFr2FFqJRsREuZdAg==", + "requires": { + "@chakra-ui/shared-utils": "2.0.5", + "csstype": "^3.1.2", + "lodash.mergewith": "4.6.2" + } + }, + "@chakra-ui/switch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.1.2.tgz", + "integrity": "sha512-pgmi/CC+E1v31FcnQhsSGjJnOE2OcND4cKPyTE+0F+bmGm48Q/b5UmKD9Y+CmZsrt/7V3h8KNczowupfuBfIHA==", + "requires": { + "@chakra-ui/checkbox": "2.3.2", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/system": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.6.2.tgz", + "integrity": "sha512-EGtpoEjLrUu4W1fHD+a62XR+hzC5YfsWm+6lO0Kybcga3yYEij9beegO0jZgug27V+Rf7vns95VPVP6mFd/DEQ==", + "requires": { + "@chakra-ui/color-mode": "2.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme-utils": "2.0.21", + "@chakra-ui/utils": "2.0.15", + "react-fast-compare": "3.2.2" + } + }, + "@chakra-ui/table": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.1.0.tgz", + "integrity": "sha512-o5OrjoHCh5uCLdiUb0Oc0vq9rIAeHSIRScc2ExTC9Qg/uVZl2ygLrjToCaKfaaKl1oQexIeAcZDKvPG8tVkHyQ==", + "requires": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/tabs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-3.0.0.tgz", + "integrity": "sha512-6Mlclp8L9lqXmsGWF5q5gmemZXOiOYuh0SGT/7PgJVNPz3LXREXlXg2an4MBUD8W5oTkduCX+3KTMCwRrVrDYw==", + "requires": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/tag": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-3.1.1.tgz", + "integrity": "sha512-Bdel79Dv86Hnge2PKOU+t8H28nm/7Y3cKd4Kfk9k3lOpUh4+nkSGe58dhRzht59lEqa4N9waCgQiBdkydjvBXQ==", + "requires": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0" + } + }, + "@chakra-ui/textarea": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.1.2.tgz", + "integrity": "sha512-ip7tvklVCZUb2fOHDb23qPy/Fr2mzDOGdkrpbNi50hDCiV4hFX02jdQJdi3ydHZUyVgZVBKPOJ+lT9i7sKA2wA==", + "requires": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/theme": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.3.1.tgz", + "integrity": "sha512-Hft/VaT8GYnItGCBbgWd75ICrIrIFrR7lVOhV/dQnqtfGqsVDlrztbSErvMkoPKt0UgAkd9/o44jmZ6X4U2nZQ==", + "requires": { + "@chakra-ui/anatomy": "2.2.2", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/theme-tools": "2.1.2" + } + }, + "@chakra-ui/theme-tools": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.1.2.tgz", + "integrity": "sha512-Qdj8ajF9kxY4gLrq7gA+Azp8CtFHGO9tWMN2wfF9aQNgG9AuMhPrUzMq9AMQ0MXiYcgNq/FD3eegB43nHVmXVA==", + "requires": { + "@chakra-ui/anatomy": "2.2.2", + "@chakra-ui/shared-utils": "2.0.5", + "color2k": "^2.0.2" + } + }, + "@chakra-ui/theme-utils": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.21.tgz", + "integrity": "sha512-FjH5LJbT794r0+VSCXB3lT4aubI24bLLRWB+CuRKHijRvsOg717bRdUN/N1fEmEpFnRVrbewttWh/OQs0EWpWw==", + "requires": { + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme": "3.3.1", + "lodash.mergewith": "4.6.2" + } + }, + "@chakra-ui/toast": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-7.0.2.tgz", + "integrity": "sha512-yvRP8jFKRs/YnkuE41BVTq9nB2v/KDRmje9u6dgDmE5+1bFt3bwjdf9gVbif4u5Ve7F7BGk5E093ARRVtvLvXA==", + "requires": { + "@chakra-ui/alert": "2.2.2", + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-timeout": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme": "3.3.1" + } + }, + "@chakra-ui/tooltip": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.3.1.tgz", + "integrity": "sha512-Rh39GBn/bL4kZpuEMPPRwYNnccRCL+w9OqamWHIB3Qboxs6h8cOyXfIdGxjo72lvhu1QI/a4KFqkM3St+WfC0A==", + "requires": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/transition": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.1.0.tgz", + "integrity": "sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==", + "requires": { + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "@chakra-ui/utils": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-2.0.15.tgz", + "integrity": "sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==", + "requires": { + "@types/lodash.mergewith": "4.6.7", + "css-box-model": "1.2.1", + "framesync": "6.1.2", + "lodash.mergewith": "4.6.2" + } + }, + "@chakra-ui/visually-hidden": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-2.2.0.tgz", + "integrity": "sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==", + "requires": {} + }, + "@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "peer": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "peer": true, + "requires": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "@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==", + "peer": true + }, + "@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "peer": true, + "requires": { + "@emotion/memoize": "^0.8.1" + } + }, + "@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "peer": true + }, + "@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "peer": true, + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", + "peer": true, + "requires": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==", + "peer": true + }, + "@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "peer": true, + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + } + }, + "@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "peer": true + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peer": true, + "requires": {} + }, + "@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==", + "peer": true + }, + "@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", + "peer": true + }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, + "@types/lodash": { + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" + }, + "@types/lodash.mergewith": { + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz", + "integrity": "sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "peer": true + }, + "@zag-js/dom-query": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.16.0.tgz", + "integrity": "sha512-Oqhd6+biWyKnhKwFFuZrrf6lxBz2tX2pRQe6grUnYwO6HJ8BcbqZomy2lpOdr+3itlaUqx+Ywj5E5ZZDr/LBfQ==" + }, + "@zag-js/element-size": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.10.5.tgz", + "integrity": "sha512-uQre5IidULANvVkNOBQ1tfgwTQcGl4hliPSe69Fct1VfYb2Fd0jdAcGzqQgPhfrXFpR62MxLPB7erxJ/ngtL8w==" + }, + "@zag-js/focus-visible": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.16.0.tgz", + "integrity": "sha512-a7U/HSopvQbrDU4GLerpqiMcHKEkQkNPeDZJWz38cw/6Upunh41GjHetq5TB84hxyCaDzJ6q2nEdNoBQfC0FKA==", + "requires": { + "@zag-js/dom-query": "0.16.0" + } + }, + "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==", + "peer": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "peer": true, + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "peer": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "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==", + "peer": true + } + } + }, + "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==", + "peer": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "color2k": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz", + "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==" + }, + "compute-scroll-into-view": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz", + "integrity": "sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "peer": true + }, + "copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "peer": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "requires": { + "tiny-invariant": "^1.0.6" + } + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "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==", + "peer": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "peer": true + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "peer": true + }, + "focus-lock": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-1.3.4.tgz", + "integrity": "sha512-Gv0N3mvej3pD+HWkNryrF8sExzEHqhQ6OSFxD4DPxm9n5HGCaHme98ZMBZroNEAJcsdtHxk+skvThGKyUeoEGA==", + "requires": { + "tslib": "^2.0.3" + } + }, + "framer-motion": { + "version": "11.0.8", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.0.8.tgz", + "integrity": "sha512-1KSGNuqe1qZkS/SWQlDnqK2VCVzRVEoval379j0FiUBJAZoqgwyvqFkfvJbgW2IPFo4wX16K+M0k5jO23lCIjA==", + "peer": true, + "requires": { + "@emotion/is-prop-valid": "^0.8.2", + "tslib": "^2.4.0" + }, + "dependencies": { + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "peer": true, + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true, + "peer": true + } + } + }, + "framesync": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", + "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", + "requires": { + "tslib": "2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "peer": true + }, + "get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" + }, + "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==", + "peer": true + }, + "hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "peer": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "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==", + "peer": true, + "requires": { + "react-is": "^16.7.0" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "peer": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "peer": true + }, + "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==", + "peer": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "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==", + "peer": true + }, + "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==", + "peer": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "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==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "peer": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "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==", + "peer": true, + "requires": { + "@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" + } + }, + "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==", + "peer": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "peer": true + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-clientside-effect": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", + "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", + "requires": { + "@babel/runtime": "^7.12.13" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "react-focus-lock": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.11.2.tgz", + "integrity": "sha512-DDTbEiov0+RthESPVSTIdAWPPKic+op3sCcP+icbMRobvQNt7LuAlJ3KoarqQv5sCgKArru3kXmlmFTa27/CdQ==", + "requires": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^1.3.2", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.6", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + } + }, + "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==" + }, + "react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "requires": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + } + }, + "react-remove-scroll-bar": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.5.tgz", + "integrity": "sha512-3cqjOqg6s0XbOjWvmasmqHch+RLxIEk2r/70rzGXuz3iIGQsQheEQyqYCBb5EECoD01Vo2SIbDqW4paLeLTASw==", + "requires": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + } + }, + "react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "requires": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "peer": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "peer": true + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "peer": true + }, + "stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "peer": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "peer": true + }, + "tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + }, + "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==", + "peer": true + }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "use-callback-ref": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", + "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "requires": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + } + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "peer": true + } + } } diff --git a/webapp/package-lock.json b/webapp/package-lock.json index 27466aee..3d530ae7 100644 --- a/webapp/package-lock.json +++ b/webapp/package-lock.json @@ -8,6 +8,7 @@ "name": "webapp", "version": "0.1.0", "dependencies": { + "@chakra-ui/react": "^2.8.2", "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", "@mui/material": "^5.15.3", @@ -126,9 +127,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz", - "integrity": "sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==", + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.10.tgz", + "integrity": "sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -218,9 +219,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", - "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -272,9 +273,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", - "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.0.tgz", + "integrity": "sha512-efwOM90nCG6YeT8o3PCyBVSxRfmILxCNL+TNI8CGQl7a62M0Wd9VkV+XHwIlkOz1r4b+lxu6gBjdWiOMdUCrCQ==", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -369,9 +370,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "engines": { "node": ">=6.9.0" } @@ -577,13 +578,13 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.7.tgz", - "integrity": "sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.0.tgz", + "integrity": "sha512-LiT1RqZWeij7X+wGxCoYh3/3b8nVOX6/7BZ9wiQgAIyjoeQWdROaodJCgT+dwtbjHaz0r7bEbHJzjSbVfcOyjQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.23.7", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-decorators": "^7.23.3" + "@babel/helper-create-class-features-plugin": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-decorators": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -716,11 +717,11 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz", - "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.0.tgz", + "integrity": "sha512-MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -967,9 +968,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", - "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", @@ -1059,15 +1060,14 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", - "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-split-export-declaration": "^7.22.6", @@ -1319,9 +1319,9 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", @@ -1410,13 +1410,13 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", + "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.23.3" }, @@ -1638,15 +1638,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz", - "integrity": "sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", + "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", "dependencies": { "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "semver": "^6.3.1" }, "engines": { @@ -1812,13 +1812,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz", - "integrity": "sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", @@ -1843,13 +1843,13 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", "@babel/plugin-transform-async-to-generator": "^7.23.3", "@babel/plugin-transform-block-scoped-functions": "^7.23.3", "@babel/plugin-transform-block-scoping": "^7.23.4", "@babel/plugin-transform-class-properties": "^7.23.3", "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-classes": "^7.23.8", "@babel/plugin-transform-computed-properties": "^7.23.3", "@babel/plugin-transform-destructuring": "^7.23.3", "@babel/plugin-transform-dotall-regex": "^7.23.3", @@ -1865,13 +1865,13 @@ "@babel/plugin-transform-member-expression-literals": "^7.23.3", "@babel/plugin-transform-modules-amd": "^7.23.3", "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", "@babel/plugin-transform-modules-umd": "^7.23.3", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.23.3", "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", "@babel/plugin-transform-object-super": "^7.23.3", "@babel/plugin-transform-optional-catch-binding": "^7.23.4", "@babel/plugin-transform-optional-chaining": "^7.23.4", @@ -1891,9 +1891,9 @@ "@babel/plugin-transform-unicode-regex": "^7.23.3", "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -1991,43 +1991,1203 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "node_modules/@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "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/@chakra-ui/accordion": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.3.1.tgz", + "integrity": "sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==", + "dependencies": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/alert": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.2.2.tgz", + "integrity": "sha512-jHg4LYMRNOJH830ViLuicjb3F+v6iriE/2G5T+Sd0Hna04nukNJ1MxUmBPE+vI22me2dIflfelu2v9wdB6Pojw==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/anatomy": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-2.2.2.tgz", + "integrity": "sha512-MV6D4VLRIHr4PkW4zMyqfrNS1mPlCTiCXwvYGtDFQYr+xHFfonhAuf9WjsSc0nyp2m0OdkSLnzmVKkZFLo25Tg==" + }, + "node_modules/@chakra-ui/avatar": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.3.0.tgz", + "integrity": "sha512-8gKSyLfygnaotbJbDMHDiJoF38OHXUYVme4gGxZ1fLnQEdPVEaIWfH+NndIjOM0z8S+YEFnT9KyGMUtvPrBk3g==", + "dependencies": { + "@chakra-ui/image": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/breadcrumb": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.2.0.tgz", + "integrity": "sha512-4cWCG24flYBxjruRi4RJREWTGF74L/KzI2CognAW/d/zWR0CjiScuJhf37Am3LFbCySP6WSoyBOtTIoTA4yLEA==", + "dependencies": { + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/breakpoint-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/breakpoint-utils/-/breakpoint-utils-2.0.8.tgz", + "integrity": "sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "node_modules/@chakra-ui/button": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.1.0.tgz", + "integrity": "sha512-95CplwlRKmmUXkdEp/21VkEWgnwcx2TOBG6NfYlsuLBDHSLlo5FKIiE2oSi4zXc4TLcopGcWPNcm/NDaSC5pvA==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/card": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/card/-/card-2.2.0.tgz", + "integrity": "sha512-xUB/k5MURj4CtPAhdSoXZidUbm8j3hci9vnc+eZJVDqhDOShNlD6QeniQNRPRys4lWAQLCbFcrwL29C8naDi6g==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/checkbox": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.3.2.tgz", + "integrity": "sha512-85g38JIXMEv6M+AcyIGLh7igNtfpAN6KGQFYxY9tBj0eWvWk4NKQxvqqyVta0bSAyIl1rixNIIezNpNWk2iO4g==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/visually-hidden": "2.2.0", + "@zag-js/focus-visible": "0.16.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/clickable": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-2.1.0.tgz", + "integrity": "sha512-flRA/ClPUGPYabu+/GLREZVZr9j2uyyazCAUHAdrTUEdDYCr31SVGhgh7dgKdtq23bOvAQJpIJjw/0Bs0WvbXw==", + "dependencies": { + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/close-button": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-2.1.1.tgz", + "integrity": "sha512-gnpENKOanKexswSVpVz7ojZEALl2x5qjLYNqSQGbxz+aP9sOXPfUS56ebyBrre7T7exuWGiFeRwnM0oVeGPaiw==", + "dependencies": { + "@chakra-ui/icon": "3.2.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/color-mode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-2.2.0.tgz", + "integrity": "sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/control-box": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-2.1.0.tgz", + "integrity": "sha512-gVrRDyXFdMd8E7rulL0SKeoljkLQiPITFnsyMO8EFHNZ+AHt5wK4LIguYVEq88APqAGZGfHFWXr79RYrNiE3Mg==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/counter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-2.1.0.tgz", + "integrity": "sha512-s6hZAEcWT5zzjNz2JIWUBzRubo9la/oof1W7EKZVVfPYHERnl5e16FmBC79Yfq8p09LQ+aqFKm/etYoJMMgghw==", + "dependencies": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/css-reset": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.3.0.tgz", + "integrity": "sha512-cQwwBy5O0jzvl0K7PLTLgp8ijqLPKyuEMiDXwYzl95seD3AoeuoCLyzZcJtVqaUZ573PiBdAbY/IlZcwDOItWg==", + "peerDependencies": { + "@emotion/react": ">=10.0.35", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/descendant": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.1.0.tgz", + "integrity": "sha512-VxCIAir08g5w27klLyi7PVo8BxhW4tgU/lxQyujkmi4zx7hT9ZdrcQLAted/dAa+aSIZ14S1oV0Q9lGjsAdxUQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/dom-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.1.0.tgz", + "integrity": "sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==" + }, + "node_modules/@chakra-ui/editable": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-3.1.0.tgz", + "integrity": "sha512-j2JLrUL9wgg4YA6jLlbU88370eCRyor7DZQD9lzpY95tSOXpTljeg3uF9eOmDnCs6fxp3zDWIfkgMm/ExhcGTg==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/event-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/event-utils/-/event-utils-2.0.8.tgz", + "integrity": "sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==" + }, + "node_modules/@chakra-ui/focus-lock": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.1.0.tgz", + "integrity": "sha512-EmGx4PhWGjm4dpjRqM4Aa+rCWBxP+Rq8Uc/nAVnD4YVqkEhBkrPTpui2lnjsuxqNaZ24fIAZ10cF1hlpemte/w==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "react-focus-lock": "^2.9.4" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/form-control": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.2.0.tgz", + "integrity": "sha512-wehLC1t4fafCVJ2RvJQT2jyqsAwX7KymmiGqBu7nQoQz8ApTkGABWpo/QwDh3F/dBLrouHDoOvGmYTqft3Mirw==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/hooks": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.2.1.tgz", + "integrity": "sha512-RQbTnzl6b1tBjbDPf9zGRo9rf/pQMholsOudTxjy4i9GfTfz6kgp5ValGjQm2z7ng6Z31N1cnjZ1AlSzQ//ZfQ==", + "dependencies": { + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/utils": "2.0.15", + "compute-scroll-into-view": "3.0.3", + "copy-to-clipboard": "3.3.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/icon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-3.2.0.tgz", + "integrity": "sha512-xxjGLvlX2Ys4H0iHrI16t74rG9EBcpFvJ3Y3B7KMQTrnW34Kf7Da/UC8J67Gtx85mTHW020ml85SVPKORWNNKQ==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/image": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.1.0.tgz", + "integrity": "sha512-bskumBYKLiLMySIWDGcz0+D9Th0jPvmX6xnRMs4o92tT3Od/bW26lahmV2a2Op2ItXeCmRMY+XxJH5Gy1i46VA==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/input": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.1.2.tgz", + "integrity": "sha512-GiBbb3EqAA8Ph43yGa6Mc+kUPjh4Spmxp1Pkelr8qtudpc3p2PJOOebLpd90mcqw8UePPa+l6YhhPtp6o0irhw==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/layout": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.3.1.tgz", + "integrity": "sha512-nXuZ6WRbq0WdgnRgLw+QuxWAHuhDtVX8ElWqcTK+cSMFg/52eVP47czYBE5F35YhnoW2XBwfNoNgZ7+e8Z01Rg==", + "dependencies": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/lazy-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/lazy-utils/-/lazy-utils-2.0.5.tgz", + "integrity": "sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==" + }, + "node_modules/@chakra-ui/live-region": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-2.1.0.tgz", + "integrity": "sha512-ZOxFXwtaLIsXjqnszYYrVuswBhnIHHP+XIgK1vC6DePKtyK590Wg+0J0slDwThUAd4MSSIUa/nNX84x1GMphWw==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/media-query": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-3.3.0.tgz", + "integrity": "sha512-IsTGgFLoICVoPRp9ykOgqmdMotJG0CnPsKvGQeSFOB/dZfIujdVb14TYxDU4+MURXry1MhJ7LzZhv+Ml7cr8/g==", + "dependencies": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/menu": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.2.1.tgz", + "integrity": "sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==", + "dependencies": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-outside-click": "2.2.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/modal": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.3.1.tgz", + "integrity": "sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==", + "dependencies": { + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0", + "aria-hidden": "^1.2.3", + "react-remove-scroll": "^2.5.6" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/number-input": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.1.2.tgz", + "integrity": "sha512-pfOdX02sqUN0qC2ysuvgVDiws7xZ20XDIlcNhva55Jgm095xjm8eVdIBfNm3SFbSUNxyXvLTW/YQanX74tKmuA==", + "dependencies": { + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-interval": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/number-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-utils/-/number-utils-2.0.7.tgz", + "integrity": "sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg==" + }, + "node_modules/@chakra-ui/object-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.1.0.tgz", + "integrity": "sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==" + }, + "node_modules/@chakra-ui/pin-input": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.1.0.tgz", + "integrity": "sha512-x4vBqLStDxJFMt+jdAHHS8jbh294O53CPQJoL4g228P513rHylV/uPscYUHrVJXRxsHfRztQO9k45jjTYaPRMw==", + "dependencies": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/popover": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.2.1.tgz", + "integrity": "sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==", + "dependencies": { + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/popper": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.1.0.tgz", + "integrity": "sha512-ciDdpdYbeFG7og6/6J8lkTFxsSvwTdMLFkpVylAF6VNC22jssiWfquj2eyD4rJnzkRFPvIWJq8hvbfhsm+AjSg==", + "dependencies": { + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@popperjs/core": "^2.9.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/portal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.1.0.tgz", + "integrity": "sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/progress": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.2.0.tgz", + "integrity": "sha512-qUXuKbuhN60EzDD9mHR7B67D7p/ZqNS2Aze4Pbl1qGGZfulPW0PY8Rof32qDtttDQBkzQIzFGE8d9QpAemToIQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/provider": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.4.2.tgz", + "integrity": "sha512-w0Tef5ZCJK1mlJorcSjItCSbyvVuqpvyWdxZiVQmE6fvSJR83wZof42ux0+sfWD+I7rHSfj+f9nzhNaEWClysw==", + "dependencies": { + "@chakra-ui/css-reset": "2.3.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/system": "2.6.2", + "@chakra-ui/utils": "2.0.15" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/radio": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.1.2.tgz", + "integrity": "sha512-n10M46wJrMGbonaghvSRnZ9ToTv/q76Szz284gv4QUWvyljQACcGrXIONUnQ3BIwbOfkRqSk7Xl/JgZtVfll+w==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@zag-js/focus-visible": "0.16.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.8.2.tgz", + "integrity": "sha512-Hn0moyxxyCDKuR9ywYpqgX8dvjqwu9ArwpIb9wHNYjnODETjLwazgNIliCVBRcJvysGRiV51U2/JtJVrpeCjUQ==", + "dependencies": { + "@chakra-ui/accordion": "2.3.1", + "@chakra-ui/alert": "2.2.2", + "@chakra-ui/avatar": "2.3.0", + "@chakra-ui/breadcrumb": "2.2.0", + "@chakra-ui/button": "2.1.0", + "@chakra-ui/card": "2.2.0", + "@chakra-ui/checkbox": "2.3.2", + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/control-box": "2.1.0", + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/css-reset": "2.3.0", + "@chakra-ui/editable": "3.1.0", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/hooks": "2.2.1", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/image": "2.1.0", + "@chakra-ui/input": "2.1.2", + "@chakra-ui/layout": "2.3.1", + "@chakra-ui/live-region": "2.1.0", + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/menu": "2.2.1", + "@chakra-ui/modal": "2.3.1", + "@chakra-ui/number-input": "2.1.2", + "@chakra-ui/pin-input": "2.1.0", + "@chakra-ui/popover": "2.2.1", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/progress": "2.2.0", + "@chakra-ui/provider": "2.4.2", + "@chakra-ui/radio": "2.1.2", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/select": "2.1.2", + "@chakra-ui/skeleton": "2.1.0", + "@chakra-ui/skip-nav": "2.1.0", + "@chakra-ui/slider": "2.1.0", + "@chakra-ui/spinner": "2.1.0", + "@chakra-ui/stat": "2.1.1", + "@chakra-ui/stepper": "2.3.1", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/switch": "2.1.2", + "@chakra-ui/system": "2.6.2", + "@chakra-ui/table": "2.1.0", + "@chakra-ui/tabs": "3.0.0", + "@chakra-ui/tag": "3.1.1", + "@chakra-ui/textarea": "2.1.2", + "@chakra-ui/theme": "3.3.1", + "@chakra-ui/theme-utils": "2.0.21", + "@chakra-ui/toast": "7.0.2", + "@chakra-ui/tooltip": "2.3.1", + "@chakra-ui/transition": "2.1.0", + "@chakra-ui/utils": "2.0.15", + "@chakra-ui/visually-hidden": "2.2.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/react-children-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-children-utils/-/react-children-utils-2.0.6.tgz", + "integrity": "sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-context": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.1.0.tgz", + "integrity": "sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-env": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-3.1.0.tgz", + "integrity": "sha512-Vr96GV2LNBth3+IKzr/rq1IcnkXv+MLmwjQH6C8BRtn3sNskgDFD5vLkVXcEhagzZMCh8FR3V/bzZPojBOyNhw==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-types/-/react-types-2.0.7.tgz", + "integrity": "sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-animation-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.1.0.tgz", + "integrity": "sha512-CFZkQU3gmDBwhqy0vC1ryf90BVHxVN8cTLpSyCpdmExUEtSEInSCGMydj2fvn7QXsz/za8JNdO2xxgJwxpLMtg==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-callback-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-callback-ref/-/react-use-callback-ref-2.1.0.tgz", + "integrity": "sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-controllable-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-controllable-state/-/react-use-controllable-state-2.1.0.tgz", + "integrity": "sha512-QR/8fKNokxZUs4PfxjXuwl0fj/d71WPrmLJvEpCTkHjnzu7LnYvzoe2wB867IdooQJL0G1zBxl0Dq+6W1P3jpg==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-disclosure": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-disclosure/-/react-use-disclosure-2.1.0.tgz", + "integrity": "sha512-Ax4pmxA9LBGMyEZJhhUZobg9C0t3qFE4jVF1tGBsrLDcdBeLR9fwOogIPY9Hf0/wqSlAryAimICbr5hkpa5GSw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-event-listener": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-event-listener/-/react-use-event-listener-2.1.0.tgz", + "integrity": "sha512-U5greryDLS8ISP69DKDsYcsXRtAdnTQT+jjIlRYZ49K/XhUR/AqVZCK5BkR1spTDmO9H8SPhgeNKI70ODuDU/Q==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-focus-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.1.0.tgz", + "integrity": "sha512-xzVboNy7J64xveLcxTIJ3jv+lUJKDwRM7Szwn9tNzUIPD94O3qwjV7DDCUzN2490nSYDF4OBMt/wuDBtaR3kUQ==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-focus-on-pointer-down": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-on-pointer-down/-/react-use-focus-on-pointer-down-2.1.0.tgz", + "integrity": "sha512-2jzrUZ+aiCG/cfanrolsnSMDykCAbv9EK/4iUyZno6BYb3vziucmvgKuoXbMPAzWNtwUwtuMhkby8rc61Ue+Lg==", + "dependencies": { + "@chakra-ui/react-use-event-listener": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-interval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-interval/-/react-use-interval-2.1.0.tgz", + "integrity": "sha512-8iWj+I/+A0J08pgEXP1J1flcvhLBHkk0ln7ZvGIyXiEyM6XagOTJpwNhiu+Bmk59t3HoV/VyvyJTa+44sEApuw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-latest-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-latest-ref/-/react-use-latest-ref-2.1.0.tgz", + "integrity": "sha512-m0kxuIYqoYB0va9Z2aW4xP/5b7BzlDeWwyXCH6QpT2PpW3/281L3hLCm1G0eOUcdVlayqrQqOeD6Mglq+5/xoQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-merge-refs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-merge-refs/-/react-use-merge-refs-2.1.0.tgz", + "integrity": "sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-outside-click": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.2.0.tgz", + "integrity": "sha512-PNX+s/JEaMneijbgAM4iFL+f3m1ga9+6QK0E5Yh4s8KZJQ/bLwZzdhMz8J/+mL+XEXQ5J0N8ivZN28B82N1kNw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-pan-event": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-pan-event/-/react-use-pan-event-2.1.0.tgz", + "integrity": "sha512-xmL2qOHiXqfcj0q7ZK5s9UjTh4Gz0/gL9jcWPA6GVf+A0Od5imEDa/Vz+533yQKWiNSm1QGrIj0eJAokc7O4fg==", + "dependencies": { + "@chakra-ui/event-utils": "2.0.8", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "framesync": "6.1.2" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-previous": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-previous/-/react-use-previous-2.1.0.tgz", + "integrity": "sha512-pjxGwue1hX8AFcmjZ2XfrQtIJgqbTF3Qs1Dy3d1krC77dEsiCUbQ9GzOBfDc8pfd60DrB5N2tg5JyHbypqh0Sg==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-safe-layout-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-safe-layout-effect/-/react-use-safe-layout-effect-2.1.0.tgz", + "integrity": "sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-size": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.1.0.tgz", + "integrity": "sha512-tbLqrQhbnqOjzTaMlYytp7wY8BW1JpL78iG7Ru1DlV4EWGiAmXFGvtnEt9HftU0NJ0aJyjgymkxfVGI55/1Z4A==", + "dependencies": { + "@zag-js/element-size": "0.10.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-timeout": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-timeout/-/react-use-timeout-2.1.0.tgz", + "integrity": "sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-update-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-update-effect/-/react-use-update-effect-2.1.0.tgz", + "integrity": "sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-utils": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-2.0.12.tgz", + "integrity": "sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==", + "dependencies": { + "@chakra-ui/utils": "2.0.15" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/select": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.1.2.tgz", + "integrity": "sha512-ZwCb7LqKCVLJhru3DXvKXpZ7Pbu1TDZ7N0PdQ0Zj1oyVLJyrpef1u9HR5u0amOpqcH++Ugt0f5JSmirjNlctjA==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/shared-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/shared-utils/-/shared-utils-2.0.5.tgz", + "integrity": "sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==" + }, + "node_modules/@chakra-ui/skeleton": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-2.1.0.tgz", + "integrity": "sha512-JNRuMPpdZGd6zFVKjVQ0iusu3tXAdI29n4ZENYwAJEMf/fN0l12sVeirOxkJ7oEL0yOx2AgEYFSKdbcAgfUsAQ==", + "dependencies": { + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/react-use-previous": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/skip-nav": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-2.1.0.tgz", + "integrity": "sha512-Hk+FG+vadBSH0/7hwp9LJnLjkO0RPGnx7gBJWI4/SpoJf3e4tZlWYtwGj0toYY4aGKl93jVghuwGbDBEMoHDug==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/slider": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.1.0.tgz", + "integrity": "sha512-lUOBcLMCnFZiA/s2NONXhELJh6sY5WtbRykPtclGfynqqOo47lwWJx+VP7xaeuhDOPcWSSecWc9Y1BfPOCz9cQ==", + "dependencies": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-pan-event": "2.1.0", + "@chakra-ui/react-use-size": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/spinner": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-2.1.0.tgz", + "integrity": "sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/stat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.1.1.tgz", + "integrity": "sha512-LDn0d/LXQNbAn2KaR3F1zivsZCewY4Jsy1qShmfBMKwn6rI8yVlbvu6SiA3OpHS0FhxbsZxQI6HefEoIgtqY6Q==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/stepper": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/stepper/-/stepper-2.3.1.tgz", + "integrity": "sha512-ky77lZbW60zYkSXhYz7kbItUpAQfEdycT0Q4bkHLxfqbuiGMf8OmgZOQkOB9uM4v0zPwy2HXhe0vq4Dd0xa55Q==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/styled-system": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.9.2.tgz", + "integrity": "sha512-To/Z92oHpIE+4nk11uVMWqo2GGRS86coeMmjxtpnErmWRdLcp1WVCVRAvn+ZwpLiNR+reWFr2FFqJRsREuZdAg==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5", + "csstype": "^3.1.2", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/switch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.1.2.tgz", + "integrity": "sha512-pgmi/CC+E1v31FcnQhsSGjJnOE2OcND4cKPyTE+0F+bmGm48Q/b5UmKD9Y+CmZsrt/7V3h8KNczowupfuBfIHA==", + "dependencies": { + "@chakra-ui/checkbox": "2.3.2", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/system": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.6.2.tgz", + "integrity": "sha512-EGtpoEjLrUu4W1fHD+a62XR+hzC5YfsWm+6lO0Kybcga3yYEij9beegO0jZgug27V+Rf7vns95VPVP6mFd/DEQ==", + "dependencies": { + "@chakra-ui/color-mode": "2.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme-utils": "2.0.21", + "@chakra-ui/utils": "2.0.15", + "react-fast-compare": "3.2.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/table": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.1.0.tgz", + "integrity": "sha512-o5OrjoHCh5uCLdiUb0Oc0vq9rIAeHSIRScc2ExTC9Qg/uVZl2ygLrjToCaKfaaKl1oQexIeAcZDKvPG8tVkHyQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/tabs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-3.0.0.tgz", + "integrity": "sha512-6Mlclp8L9lqXmsGWF5q5gmemZXOiOYuh0SGT/7PgJVNPz3LXREXlXg2an4MBUD8W5oTkduCX+3KTMCwRrVrDYw==", + "dependencies": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/tag": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-3.1.1.tgz", + "integrity": "sha512-Bdel79Dv86Hnge2PKOU+t8H28nm/7Y3cKd4Kfk9k3lOpUh4+nkSGe58dhRzht59lEqa4N9waCgQiBdkydjvBXQ==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/textarea": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.1.2.tgz", + "integrity": "sha512-ip7tvklVCZUb2fOHDb23qPy/Fr2mzDOGdkrpbNi50hDCiV4hFX02jdQJdi3ydHZUyVgZVBKPOJ+lT9i7sKA2wA==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/theme": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.3.1.tgz", + "integrity": "sha512-Hft/VaT8GYnItGCBbgWd75ICrIrIFrR7lVOhV/dQnqtfGqsVDlrztbSErvMkoPKt0UgAkd9/o44jmZ6X4U2nZQ==", + "dependencies": { + "@chakra-ui/anatomy": "2.2.2", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/theme-tools": "2.1.2" + }, + "peerDependencies": { + "@chakra-ui/styled-system": ">=2.8.0" + } + }, + "node_modules/@chakra-ui/theme-tools": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.1.2.tgz", + "integrity": "sha512-Qdj8ajF9kxY4gLrq7gA+Azp8CtFHGO9tWMN2wfF9aQNgG9AuMhPrUzMq9AMQ0MXiYcgNq/FD3eegB43nHVmXVA==", + "dependencies": { + "@chakra-ui/anatomy": "2.2.2", + "@chakra-ui/shared-utils": "2.0.5", + "color2k": "^2.0.2" + }, + "peerDependencies": { + "@chakra-ui/styled-system": ">=2.0.0" + } + }, + "node_modules/@chakra-ui/theme-utils": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.21.tgz", + "integrity": "sha512-FjH5LJbT794r0+VSCXB3lT4aubI24bLLRWB+CuRKHijRvsOg717bRdUN/N1fEmEpFnRVrbewttWh/OQs0EWpWw==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme": "3.3.1", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/toast": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-7.0.2.tgz", + "integrity": "sha512-yvRP8jFKRs/YnkuE41BVTq9nB2v/KDRmje9u6dgDmE5+1bFt3bwjdf9gVbif4u5Ve7F7BGk5E093ARRVtvLvXA==", + "dependencies": { + "@chakra-ui/alert": "2.2.2", + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-timeout": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme": "3.3.1" + }, + "peerDependencies": { + "@chakra-ui/system": "2.6.2", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/tooltip": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.3.1.tgz", + "integrity": "sha512-Rh39GBn/bL4kZpuEMPPRwYNnccRCL+w9OqamWHIB3Qboxs6h8cOyXfIdGxjo72lvhu1QI/a4KFqkM3St+WfC0A==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/transition": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.1.0.tgz", + "integrity": "sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@chakra-ui/shared-utils": "2.0.5" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" } }, - "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "node_modules/@chakra-ui/utils": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-2.0.15.tgz", + "integrity": "sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==", "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" + "@types/lodash.mergewith": "4.6.7", + "css-box-model": "1.2.1", + "framesync": "6.1.2", + "lodash.mergewith": "4.6.2" } }, - "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/@chakra-ui/visually-hidden": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-2.2.0.tgz", + "integrity": "sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } }, "node_modules/@cnakazawa/watch": { "version": "1.0.4", @@ -2558,9 +3718,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -2615,12 +3775,12 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -2640,9 +3800,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -2751,54 +3911,6 @@ "node": ">=6" } }, - "node_modules/@istanbuljs/load-nyc-config/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/@istanbuljs/load-nyc-config/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/@istanbuljs/load-nyc-config/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/@istanbuljs/load-nyc-config/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/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -4357,14 +5469,6 @@ "node": ">=8" } }, - "node_modules/@jest/transform/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/@jest/transform/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4870,6 +5974,57 @@ } } }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -5080,9 +6235,9 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, "node_modules/@rushstack/eslint-patch": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz", - "integrity": "sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==" + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz", + "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==" }, "node_modules/@sideway/address": { "version": "4.1.4", @@ -5654,9 +6809,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.1.tgz", - "integrity": "sha512-18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ==", + "version": "8.56.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", + "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -5688,9 +6843,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -5803,6 +6958,19 @@ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, + "node_modules/@types/lodash": { + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" + }, + "node_modules/@types/lodash.mergewith": { + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz", + "integrity": "sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==", + "dependencies": { + "@types/lodash": "*" + } + }, "node_modules/@types/long": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", @@ -5863,9 +7031,9 @@ "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" }, "node_modules/@types/qs": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", - "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" + "version": "6.9.12", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", + "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==" }, "node_modules/@types/range-parser": { "version": "1.2.7", @@ -5917,9 +7085,9 @@ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==" + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" }, "node_modules/@types/send": { "version": "0.17.4", @@ -6391,6 +7559,24 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "node_modules/@zag-js/dom-query": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.16.0.tgz", + "integrity": "sha512-Oqhd6+biWyKnhKwFFuZrrf6lxBz2tX2pRQe6grUnYwO6HJ8BcbqZomy2lpOdr+3itlaUqx+Ywj5E5ZZDr/LBfQ==" + }, + "node_modules/@zag-js/element-size": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.10.5.tgz", + "integrity": "sha512-uQre5IidULANvVkNOBQ1tfgwTQcGl4hliPSe69Fct1VfYb2Fd0jdAcGzqQgPhfrXFpR62MxLPB7erxJ/ngtL8w==" + }, + "node_modules/@zag-js/focus-visible": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.16.0.tgz", + "integrity": "sha512-a7U/HSopvQbrDU4GLerpqiMcHKEkQkNPeDZJWz38cw/6Upunh41GjHetq5TB84hxyCaDzJ6q2nEdNoBQfC0FKA==", + "dependencies": { + "@zag-js/dom-query": "0.16.0" + } + }, "node_modules/@zeit/schemas": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", @@ -6663,6 +7849,17 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", @@ -6699,12 +7896,15 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6750,16 +7950,52 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "node_modules/array.prototype.filter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", + "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz", + "integrity": "sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", + "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6820,29 +8056,41 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.tosorted": { + "node_modules/array.prototype.toreversed": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -6931,9 +8179,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", "funding": [ { "type": "opencollective", @@ -6949,9 +8197,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -6967,9 +8215,12 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -7194,12 +8445,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", - "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.9.tgz", + "integrity": "sha512-BXIWIaO3MewbXWdJdIGDWZurv5OGJlFNo7oy20DpB3kWDVJLcY2NRypRsRUbRe5KMqSNLuOGnWTFQQtY5MAsRw==", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.4", + "@babel/helper-define-polyfill-provider": "^0.6.0", "semver": "^6.3.1" }, "peerDependencies": { @@ -7215,23 +8466,53 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", - "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4", - "core-js-compat": "^3.33.1" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", - "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -7408,12 +8689,12 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "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.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -7421,7 +8702,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -7440,21 +8721,10 @@ }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/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==", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" + "ms": "2.0.0" } }, "node_modules/body-parser/node_modules/ms": { @@ -7463,9 +8733,9 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/bonjour-service": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.0.tgz", - "integrity": "sha512-xdzMA6JGckxyJzZByjEWRcfKmDxXaGXZWVftah3FkCqdlePNS9DjHSUN5zkP4oEfz/t0EXXlro88EIhzwMB4zA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" @@ -7633,9 +8903,9 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "funding": [ { "type": "opencollective", @@ -7651,8 +8921,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -7758,13 +9028,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7818,9 +9093,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001576", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", - "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "version": "1.0.30001596", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz", + "integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==", "funding": [ { "type": "opencollective", @@ -7977,15 +9252,9 @@ "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -7998,6 +9267,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -8104,14 +9376,6 @@ "node": ">= 10.0" } }, - "node_modules/clean-css/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/cli-boxes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", @@ -8260,6 +9524,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/color2k": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz", + "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==" + }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -8282,11 +9551,11 @@ } }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "engines": { - "node": ">= 12" + "node": ">= 6" } }, "node_modules/common-path-prefix": { @@ -8362,6 +9631,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "node_modules/compute-scroll-into-view": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz", + "integrity": "sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -8426,10 +9700,18 @@ "node": ">=0.10.0" } }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, "node_modules/core-js": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.0.tgz", - "integrity": "sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", + "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -8437,11 +9719,11 @@ } }, "node_modules/core-js-compat": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", - "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.22.3" }, "funding": { "type": "opencollective", @@ -8449,9 +9731,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.35.0.tgz", - "integrity": "sha512-f+eRYmkou59uh7BPcyJ8MC76DiGhspj1KMxVIcF24tzP8NA9HVa1uC7BTW2tgx7E1QVCzDzsgp7kArrzhlz8Ew==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.0.tgz", + "integrity": "sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -8659,6 +9941,14 @@ "postcss": "^8.4" } }, + "node_modules/css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "dependencies": { + "tiny-invariant": "^1.0.6" + } + }, "node_modules/css-declaration-sorter": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", @@ -8688,18 +9978,18 @@ } }, "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", + "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.21", + "postcss": "^8.4.33", "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "engines": { "node": ">= 12.13.0" @@ -8709,7 +9999,16 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/css-minimizer-webpack-plugin": { @@ -8798,14 +10097,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/css-prefers-color-scheme": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", @@ -8852,14 +10143,6 @@ "node": ">=8.0.0" } }, - "node_modules/css-tree/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/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", @@ -8877,9 +10160,9 @@ "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" }, "node_modules/cssdb": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.10.0.tgz", - "integrity": "sha512-yGZ5tmA57gWh/uvdQBHs45wwFY0IBh3ypABk5sEubPBPSzXzkNgsWReqx7gdx6uhC+QoFBe+V8JwBB9/hQ6cIA==", + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", "funding": [ { "type": "opencollective", @@ -9003,14 +10286,6 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, - "node_modules/csso/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/cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -9204,16 +10479,19 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-lazy-prop": { @@ -9313,6 +10591,11 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, "node_modules/detect-port-alt": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", @@ -9544,9 +10827,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.623", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz", - "integrity": "sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==" + "version": "1.4.699", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz", + "integrity": "sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw==" }, "node_modules/emittery": { "version": "0.13.1", @@ -9591,9 +10874,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", + "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -9627,49 +10910,51 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.8", "string.prototype.trimend": "^1.0.7", "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -9683,6 +10968,25 @@ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" }, + "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/es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -9703,24 +11007,28 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz", + "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==", "dependencies": { "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", + "es-abstract": "^1.22.4", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.2", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", + "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", + "internal-slot": "^1.0.7", "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "safe-array-concat": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-module-lexer": { @@ -9729,13 +11037,13 @@ "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -9806,25 +11114,16 @@ "source-map": "~0.6.1" } }, - "node_modules/escodegen/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==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -9915,9 +11214,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dependencies": { "debug": "^3.2.7" }, @@ -10065,26 +11364,28 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.34.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.0.tgz", + "integrity": "sha512-MeVXdReleBTdkz/bvcQMSnCXGi+c9kvy51IpinjnJgutl3YTHWsDdke7Z1ufZpGfDG8xduBDKyjtB9JH1eBKIQ==", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.0.17", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.10" }, "engines": { "node": ">=4" @@ -10348,6 +11649,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -10381,6 +11697,34 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10762,13 +12106,13 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -10978,9 +12322,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dependencies": { "reusify": "^1.0.4" } @@ -11141,18 +12485,15 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "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": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/flat-cache": { @@ -11169,9 +12510,20 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + }, + "node_modules/focus-lock": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-1.3.4.tgz", + "integrity": "sha512-Gv0N3mvej3pD+HWkNryrF8sExzEHqhQ6OSFxD4DPxm9n5HGCaHme98ZMBZroNEAJcsdtHxk+skvThGKyUeoEGA==", + "dependencies": { + "tslib": "^2.0.3" + }, + "engines": { + "node": ">=10" + } }, "node_modules/follow-redirects": { "version": "1.15.4", @@ -11355,6 +12707,17 @@ "node": ">=8" } }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", @@ -11391,6 +12754,14 @@ "node": ">=6" } }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -11436,6 +12807,60 @@ "node": ">=0.10.0" } }, + "node_modules/framer-motion": { + "version": "11.0.8", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.0.8.tgz", + "integrity": "sha512-1KSGNuqe1qZkS/SWQlDnqK2VCVzRVEoval379j0FiUBJAZoqgwyvqFkfvJbgW2IPFo4wX16K+M0k5jO23lCIjA==", + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "peer": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/framer-motion/node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true, + "peer": true + }, + "node_modules/framesync": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", + "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", + "dependencies": { + "tslib": "2.4.0" + } + }, + "node_modules/framesync/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -11451,16 +12876,17 @@ "dev": true }, "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=12" + "node": ">=6 <7 || >=8" } }, "node_modules/fs-monkey": { @@ -11536,19 +12962,31 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "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-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -11574,12 +13012,13 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -11603,38 +13042,6 @@ "node": ">= 14" } }, - "node_modules/get-uri/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/get-uri/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/get-uri/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -11659,15 +13066,6 @@ "gherkin-javascript": "bin/gherkin" } }, - "node_modules/gherkin/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -11847,20 +13245,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -11880,11 +13278,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -11963,9 +13361,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dependencies": { "function-bind": "^1.1.2" }, @@ -12063,9 +13461,9 @@ } }, "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", "funding": [ { "type": "github", @@ -12102,6 +13500,14 @@ "node": ">=12" } }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, "node_modules/html-webpack-plugin": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", @@ -12246,11 +13652,11 @@ } }, "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==", + "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.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" @@ -12304,9 +13710,9 @@ ] }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "engines": { "node": ">= 4" } @@ -12397,11 +13803,11 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -12409,6 +13815,14 @@ "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -12451,13 +13865,15 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12721,9 +14137,9 @@ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "engines": { "node": ">= 0.4" }, @@ -12849,11 +14265,14 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12899,11 +14318,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -13077,14 +14496,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/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/istanbul-reports": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", @@ -15224,15 +16635,6 @@ "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", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/jest-cucumber/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -16218,14 +17620,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-jasmine2/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/jest-jasmine2/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17109,15 +18503,6 @@ "node": ">=10" } }, - "node_modules/jest-runner/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/jest-runner/node_modules/source-map-support": { "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", @@ -18376,12 +19761,10 @@ } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -18551,17 +19934,14 @@ } }, "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dependencies": { - "p-locate": "^5.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/lodash": { @@ -18584,6 +19964,11 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -18816,11 +20201,12 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", + "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", "dependencies": { - "schema-utils": "^4.0.0" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { "node": ">= 12.13.0" @@ -19552,14 +20938,15 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", + "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "array.prototype.filter": "^1.0.3", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0" } }, "node_modules/object.hasown": { @@ -19716,14 +21103,25 @@ } }, "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "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": "^3.0.2" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" + "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" @@ -19821,9 +21219,9 @@ } }, "node_modules/pac-resolver/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", "dev": true }, "node_modules/param-case": { @@ -19945,9 +21343,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "engines": { "node": "14 || >=16.14" } @@ -19996,81 +21394,33 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "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/pkg-dir/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/pkg-dir/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" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pkg-dir/node_modules/p-limit": { + "node_modules/pify": { "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" - }, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/pkg-dir/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==", + "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": { - "p-limit": "^2.2.0" + "find-up": "^4.0.0" }, "engines": { "node": ">=8" @@ -20152,10 +21502,18 @@ "node": ">=0.10.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "funding": [ { "type": "opencollective", @@ -20643,17 +22001,23 @@ } }, "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } @@ -20805,9 +22169,9 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", + "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", @@ -20821,9 +22185,9 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", - "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", + "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -21298,14 +22662,6 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, - "node_modules/postcss-svgo/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/postcss-svgo/node_modules/svgo": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", @@ -21774,9 +23130,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "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", @@ -21795,17 +23151,6 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/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/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -21862,6 +23207,17 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, + "node_modules/react-clientside-effect": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", + "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", + "dependencies": { + "@babel/runtime": "^7.12.13" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -21952,6 +23308,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/react-dev-utils/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -21968,6 +23339,34 @@ "node": ">= 12.13.0" } }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/react-dev-utils/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -21996,6 +23395,33 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-focus-lock": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.11.2.tgz", + "integrity": "sha512-DDTbEiov0+RthESPVSTIdAWPPKic+op3sCcP+icbMRobvQNt7LuAlJ3KoarqQv5sCgKArru3kXmlmFTa27/CdQ==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^1.3.2", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.6", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -22009,6 +23435,51 @@ "node": ">=0.10.0" } }, + "node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.5.tgz", + "integrity": "sha512-3cqjOqg6s0XbOjWvmasmqHch+RLxIEk2r/70rzGXuz3iIGQsQheEQyqYCBb5EECoD01Vo2SIbDqW4paLeLTASw==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", @@ -22400,6 +23871,19 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/react-scripts/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/react-scripts/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -23048,19 +24532,22 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/react-scripts/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/react-scripts/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/react-scripts/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/react-scripts/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23072,6 +24559,14 @@ "node": ">=8" } }, + "node_modules/react-scripts/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/react-scripts/node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", @@ -23118,6 +24613,28 @@ "node": ">=10" } }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", @@ -23152,77 +24669,25 @@ "parse-json": "^5.0.0", "type-fest": "^0.6.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "node_modules/read-pkg-up/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==", + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/type-fest": { @@ -23291,14 +24756,15 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz", + "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0", + "get-intrinsic": "^1.2.3", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -23357,13 +24823,14 @@ "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==" }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -23595,14 +25062,6 @@ "url": "https://opencollective.com/postcss/" } }, - "node_modules/resolve-url-loader/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/resolve.exports": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", @@ -23761,12 +25220,12 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -23806,14 +25265,17 @@ } }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -24295,9 +25757,9 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dependencies": { "randombytes": "^2.1.0" } @@ -24513,14 +25975,16 @@ "dev": true }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -24614,13 +26078,17 @@ "optional": true }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -24855,11 +26323,11 @@ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, "node_modules/source-map-js": { @@ -24890,6 +26358,17 @@ "webpack": "^5.0.0" } }, + "node_modules/source-map-loader/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/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -24913,14 +26392,6 @@ "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", @@ -25160,15 +26631,6 @@ "node": ">= 0.8.0" } }, - "node_modules/static-eval/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==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/static-eval/node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -25471,9 +26933,9 @@ } }, "node_modules/style-loader": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", - "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", "engines": { "node": ">= 12.13.0" }, @@ -25534,14 +26996,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, "node_modules/sucrase/node_modules/glob": { "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", @@ -25838,9 +27292,9 @@ } }, "node_modules/terser": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", - "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "version": "5.29.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", + "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -25945,6 +27399,11 @@ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -26014,6 +27473,11 @@ "node": ">=8.0" } }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -26162,27 +27626,28 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -26192,15 +27657,16 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -26210,13 +27676,19 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -26349,11 +27821,12 @@ } }, "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, "engines": { - "node": ">= 10.0.0" + "node": ">= 4.0.0" } }, "node_modules/unpipe": { @@ -26510,6 +27983,47 @@ "node": ">=0.10.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", + "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -26663,18 +28177,18 @@ } }, "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", + "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.15.0", "es-module-lexer": "^1.2.1", @@ -26688,7 +28202,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", + "terser-webpack-plugin": "^5.3.10", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -26901,14 +28415,6 @@ "webpack": "^4.44.2 || ^5.47.0" } }, - "node_modules/webpack-manifest-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", @@ -26978,17 +28484,6 @@ "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", @@ -27087,15 +28582,15 @@ "dev": true }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -27285,6 +28780,17 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "node_modules/workbox-build/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/workbox-build/node_modules/source-map": { "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", @@ -27304,6 +28810,14 @@ "punycode": "^2.1.0" } }, + "node_modules/workbox-build/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/workbox-build/node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", @@ -27346,6 +28860,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", "dependencies": { "workbox-background-sync": "6.6.0", "workbox-core": "6.6.0", @@ -27440,14 +28955,6 @@ "webpack": "^4.4.0 || ^5.9.0" } }, - "node_modules/workbox-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -27670,58 +29177,6 @@ "node": ">=6" } }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yargs/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", diff --git a/webapp/package.json b/webapp/package.json index 74e31bee..4467b989 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@chakra-ui/react": "^2.8.2", "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", "@mui/material": "^5.15.3", diff --git a/webapp/src/App.css b/webapp/src/App.css index 74b5e053..dbfccaa5 100644 --- a/webapp/src/App.css +++ b/webapp/src/App.css @@ -1,3 +1,11 @@ +body{ + margin: 0; + background: #222; + font-family: system-ui; + display: grid; + place-content: center; +} + .App { text-align: center; } diff --git a/webapp/src/App.js b/webapp/src/App.js index d932005b..3a313320 100644 --- a/webapp/src/App.js +++ b/webapp/src/App.js @@ -5,6 +5,8 @@ import CssBaseline from '@mui/material/CssBaseline'; import Container from '@mui/material/Container'; import Typography from '@mui/material/Typography'; import Link from '@mui/material/Link'; +import { Box} from "@chakra-ui/react"; +import { QuestionArea } from './components/QuestionArea'; function App() { const [showLogin, setShowLogin] = useState(true); @@ -12,7 +14,18 @@ function App() { const handleToggleView = () => { setShowLogin(!showLogin); }; - + // /** + return ( + <> + + + + + ); + // */ + /** return ( @@ -33,6 +46,7 @@ function App() { ); + */ } export default App; diff --git a/webapp/src/components/AnswerButton.jsx b/webapp/src/components/AnswerButton.jsx new file mode 100644 index 00000000..7b8ea38b --- /dev/null +++ b/webapp/src/components/AnswerButton.jsx @@ -0,0 +1,20 @@ +import {Button} from '@chakra-ui/react' + +export function AnswerButton({text, colorFondo}){ + + return( + + ) +} \ No newline at end of file diff --git a/webapp/src/components/AnswersBlock.jsx b/webapp/src/components/AnswersBlock.jsx new file mode 100644 index 00000000..b037dca4 --- /dev/null +++ b/webapp/src/components/AnswersBlock.jsx @@ -0,0 +1,15 @@ +import { Box } from "@chakra-ui/react"; +import { AnswerButton } from './AnswerButton.jsx'; + +export function AnswersBlock(){ + + return( + + + + + + + ) +} \ No newline at end of file diff --git a/webapp/src/components/EnunciadoBlock.jsx b/webapp/src/components/EnunciadoBlock.jsx new file mode 100644 index 00000000..b6bb9bd6 --- /dev/null +++ b/webapp/src/components/EnunciadoBlock.jsx @@ -0,0 +1,12 @@ +import {Center } from "@chakra-ui/react"; + + +export function EnunciadoBlock({pregunta}){ + + return( +

+ {pregunta} +
+ ) +} \ No newline at end of file diff --git a/webapp/src/components/QuestionArea.jsx b/webapp/src/components/QuestionArea.jsx new file mode 100644 index 00000000..bb2625f3 --- /dev/null +++ b/webapp/src/components/QuestionArea.jsx @@ -0,0 +1,14 @@ +import { Box} from "@chakra-ui/react"; +import { AnswersBlock } from './AnswersBlock.jsx'; +import { EnunciadoBlock } from './EnunciadoBlock.jsx'; + +export function QuestionArea(){ + + return( + + + + + ) +} \ No newline at end of file diff --git a/webapp/src/index.js b/webapp/src/index.js index d563c0fb..ca873b14 100644 --- a/webapp/src/index.js +++ b/webapp/src/index.js @@ -3,11 +3,15 @@ import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; +import { ChakraProvider } from '@chakra-ui/react' + const root = ReactDOM.createRoot(document.getElementById('root')); root.render( - + + + ); From 8e98f6a9f88c3c4304a6d3e22254b2f1f067cf7a Mon Sep 17 00:00:00 2001 From: uo288120 <145131850+Pedro-C-M@users.noreply.github.com> Date: Sun, 10 Mar 2024 13:10:06 +0100 Subject: [PATCH 77/82] Sale preguntas formadas en json --- webapp/src/components/AnswersBlock.jsx | 20 +++++++++--- webapp/src/components/QuestionArea.jsx | 45 ++++++++++++++++++++++++-- 2 files changed, 58 insertions(+), 7 deletions(-) diff --git a/webapp/src/components/AnswersBlock.jsx b/webapp/src/components/AnswersBlock.jsx index b037dca4..5f28c174 100644 --- a/webapp/src/components/AnswersBlock.jsx +++ b/webapp/src/components/AnswersBlock.jsx @@ -1,15 +1,25 @@ import { Box } from "@chakra-ui/react"; import { AnswerButton } from './AnswerButton.jsx'; -export function AnswersBlock(){ +export function AnswersBlock({ respuestas }){ + + const correcta = respuestas[0]; + //Ordenar random + //Intercambiar el primer elemento con otro elemento aleatorio del array + const indiceAleatorio = Math.floor(Math.random() * (respuestas.length - 1)); + const save = respuestas[0]; + respuestas[0] = respuestas[indiceAleatorio]; + respuestas[indiceAleatorio] = save; + + console.log(correcta); return( - - - - + + + + ) } \ No newline at end of file diff --git a/webapp/src/components/QuestionArea.jsx b/webapp/src/components/QuestionArea.jsx index bb2625f3..57eb8d3c 100644 --- a/webapp/src/components/QuestionArea.jsx +++ b/webapp/src/components/QuestionArea.jsx @@ -1,14 +1,55 @@ +import { useEffect, useState } from 'react'; +import axios from 'axios'; import { Box} from "@chakra-ui/react"; import { AnswersBlock } from './AnswersBlock.jsx'; import { EnunciadoBlock } from './EnunciadoBlock.jsx'; export function QuestionArea(){ + const apiEndpoint = process.env.REACT_APP_API_ENDPOINT || 'http://localhost:8000'; + // Estado para almacenar los datos de la pregunta + const [questionData, setQuestionData] = useState(null); + + // Función para llamar al servicio y obtener los datos de la pregunta + const fetchQuestionData = async () => { + try { + // Llamada al servicio para obtener los datos de la pregunta (aquí asumiendo que el servicio devuelve un JSON) + const response = await axios.get(`${apiEndpoint}/question`); + const data = await response.json(); + setQuestionData(data); // Actualizar el estado con los datos de la pregunta obtenidos del servicio + } catch (error) { + console.error('Error fetching question data:', error); + } + }; + + // Llamar al servicio al cargar el componente (equivalente a componentDidMount) + useEffect(() => { + fetchQuestionData(); + }, []); // El array vacío asegura que esto solo se ejecute una vez al montar el componente + + + const questionJson = { + "pregunta": "What is the capital of France?", + "correcta": "Paris", + "respuestasIncorrecta1": "London", + "respuestasIncorrecta2": "Berlin", + "respuestasIncorrecta3": "Madrid" + } + + const respuestas = [questionJson.correcta,questionJson.respuestasIncorrecta1,questionJson.respuestasIncorrecta2,questionJson.respuestasIncorrecta3]; + + return( - - + {questionJson ? ( // Verificar si se han obtenido los datos de la pregunta + <> + {/* Renderizar el enunciado de la pregunta */} + {/* Renderizar las respuestas de la pregunta */} + + ) : ( +

Cargando...

// Mensaje de carga mientras se obtienen los datos + )}
) } \ No newline at end of file From dd03b8beea23cd5f5360b8832cb030a4cdaa6cfe Mon Sep 17 00:00:00 2001 From: UO283535 Date: Sun, 10 Mar 2024 16:59:17 +0100 Subject: [PATCH 78/82] =?UTF-8?q?A=C3=B1ado=20las=20preguntas=20a=20las=20?= =?UTF-8?q?consultas=20a=20esqueletoPreguntas.xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/esqueletoPreguntas.xml | 39 +++++++++++++++++++++++-- questionsService/preguntas.xml | 32 +++++++------------- 2 files changed, 47 insertions(+), 24 deletions(-) diff --git a/questionsService/esqueletoPreguntas.xml b/questionsService/esqueletoPreguntas.xml index 2becdd75..7074b61a 100644 --- a/questionsService/esqueletoPreguntas.xml +++ b/questionsService/esqueletoPreguntas.xml @@ -1,10 +1,43 @@ + - ¿Cuál es la capital de {RELLENAR}? + ¿Cuál es la capital del pais {RELLENAR}? - + ¿Cuál es la capital del estado de {RELLENAR}? - + + + ¿Cuál es el autor/es del libro llamado {RELLENAR}? + + + + ¿Cuál es el genero/s del libro llamado {RELLENAR}? + + + + ¿Cuál es la plataforma/s que desarrollo el videojuego llamado {RELLENAR}? + + + + ¿Cuál es el genero/s del videojuego llamado {RELLENAR}? + + + + ¿Cuál es el estadio del club de futbol llamado {RELLENAR}? + + + + ¿Cuál es el pais de nacimiento del tenista llamado {RELLENAR}? + + + + ¿Cuál es la fecha de nacimiento del presidente de España llamado {RELLENAR}? + + + + ¿Cuál es la fecha de nacimiento de la personalidad de Oviedo llamado/a {RELLENAR}? + + \ No newline at end of file diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index 5e84f6cc..429c479d 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -1,18 +1,19 @@ - - - SELECT ?country ?countryLabel ?capitalLabel - WHERE - { - ?country wdt:P31 wd:Q3624078. # Instance of country - ?country wdt:P36 ?capital. # Has capital - SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],es". } + + + SELECT DISTINCT ?countryLabel (SAMPLE(?nombreCapital) AS ?capitales) + WHERE { + ?country wdt:P31 wd:Q3624078. # Instancia de país + ?country wdt:P36 ?capital. # Tiene capital + ?country rdfs:label ?countryLabel filter (lang(?countryLabel) = "es"). + ?capital rdfs:label ?nombreCapital filter (lang(?nombreCapital) = "es"). } - + GROUP BY ?countryLabel + SELECT ?state ?stateLabel ?capitalLabel @@ -37,18 +38,7 @@ } - - - SELECT DISTINCT ?countryLabel (SAMPLE(?nombreCapital) AS ?capitales) - WHERE { - ?country wdt:P31 wd:Q3624078. # Instancia de país - ?country wdt:P36 ?capital. # Tiene capital - ?country rdfs:label ?countryLabel filter (lang(?countryLabel) = "es"). - ?capital rdfs:label ?nombreCapital filter (lang(?nombreCapital) = "es"). - } - GROUP BY ?countryLabel - - + SELECT DISTINCT ?nombreLibro (GROUP_CONCAT(DISTINCT ?nombreAuthor; SEPARATOR=", ") AS ?authors) From 56122d18b6951c677d2b5a0dc6cc63e5fe96cfbf Mon Sep 17 00:00:00 2001 From: sonia Date: Sun, 10 Mar 2024 18:58:39 +0100 Subject: [PATCH 79/82] Arreglado como se obtenia la pregunta de WikiData para las nuevas consultas --- questionsService/obtenerPreguntasWikidata.js | 17 ++++++++++++----- questionsService/preguntas.xml | 16 ++++++++-------- webapp/src/App.js | 8 ++++---- webapp/src/index.js | 2 -- 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/questionsService/obtenerPreguntasWikidata.js b/questionsService/obtenerPreguntasWikidata.js index 583ddf11..c5579728 100644 --- a/questionsService/obtenerPreguntasWikidata.js +++ b/questionsService/obtenerPreguntasWikidata.js @@ -57,11 +57,16 @@ class ObtenerPreguntaWikiData { // Obtener la consulta var query = pregunta.query[0]; + //obtenemos lo que esta entre el select y el where var consultaParte = query.match(/SELECT(.*?)WHERE/s)[1].trim(); - + + //obtenemos las labels que necesitamos para la consulta + var prueba = consultaParte.match(/\?(\w+)/g); // Dividir la parte de la consulta por los símbolos '?' para obtener las labels - this.labels = consultaParte.split('?').map(part => part.trim()).filter(part => part !== ''); - + this.labels = prueba.map(match => { + return match.slice(1); // Elimina el primer carácter "?" y muestra el resto + }); + //obtenemos todas las entradas de wikidata para esa query this.obtenerEntidadesConsulta(query) .then(() => resolve()) @@ -106,7 +111,7 @@ class ObtenerPreguntaWikiData { var entidades = data.results.bindings.map(binding => { return { //obtenemos el label de la "pregunta" (ejemplo country) - label: this.obtenerValorPropiedad(binding, this.labels[1]), + label: this.obtenerValorPropiedad(binding, this.labels[0]), //obtenemos el label de la "respuesta" (ejemplo capital) result: this.obtenerValorPropiedad(binding, this.labels[2]) }; @@ -208,7 +213,7 @@ class ObtenerPreguntaWikiData { //añadimos el resto de respuestas for(var i = 0; i < this.answers.length; i++){ if(this.answers[i].result !== respuestaCorrecta){ - respuestasIncorrectas[num] = this.answers[i].label; + respuestasIncorrectas[num] = this.answers[i].result; num++; } } @@ -224,6 +229,8 @@ class ObtenerPreguntaWikiData { type: this.type } + console.log(this.finalQuestion); + resolve(); }); } diff --git a/questionsService/preguntas.xml b/questionsService/preguntas.xml index 429c479d..36c9e55f 100644 --- a/questionsService/preguntas.xml +++ b/questionsService/preguntas.xml @@ -12,11 +12,10 @@ GROUP BY ?countryLabel - - SELECT ?state ?stateLabel ?capitalLabel + SELECT ?stateLabel ?state ?capitalLabel WHERE { ?state wdt:P31 wd:Q35657 . ?state p:P36 ?statement . @@ -80,7 +79,6 @@ - # Consulta para obtener los nombres únicos de los videojuegos y sus géneros SELECT DISTINCT ?nombreVideojuego (GROUP_CONCAT(DISTINCT ?nombreGenero; SEPARATOR=", ") AS ?generos) WHERE { ?videojuego wdt:P31 wd:Q7889. # Videojuegos (clase) @@ -104,9 +102,10 @@ GROUP BY ?clubLabel + - SELECT ?tenistaLabel ?paisNacimientoLabel + SELECT ?tenistaLabel ?tenista ?paisNacimientoLabel WHERE { ?tenista wdt:P106 wd:Q10833314. # Instancia de tenista ?tenista wdt:P19 ?paisNacimiento. # País de nacimiento @@ -117,7 +116,7 @@ - SELECT DISTINCT ?presidente ?nombreCompleto ?fechaNacimiento + SELECT DISTINCT ?nombreCompleto ?presidente ?fechaNacimiento WHERE { ?presidente wdt:P31 wd:Q5; # Filtrar por personas wdt:P39 wd:Q844587; # Filtrar por posición: presidente del Gobierno de España @@ -128,15 +127,16 @@ ORDER BY ?nombreCompleto + - # Personalidades Nacidas en oviedo y su fecha de nacimiento - SELECT ?personLabel ?fNacimiento + SELECT ?personLabel ?person ?fNacimiento WHERE { ?person wdt:P19 wd:Q14317. - ?person wdt:P569 ?fNacimiento . + ?person wdt:P569 ?fNacimiento . SERVICE wikibase:label { bd:serviceParam wikibase:language "es". } } + \ No newline at end of file diff --git a/webapp/src/App.js b/webapp/src/App.js index 3a313320..14b8ff24 100644 --- a/webapp/src/App.js +++ b/webapp/src/App.js @@ -14,7 +14,7 @@ function App() { const handleToggleView = () => { setShowLogin(!showLogin); }; - // /** + /** return ( <> ); - // */ - /** + */ + return ( @@ -46,7 +46,7 @@ function App() { ); - */ + } export default App; diff --git a/webapp/src/index.js b/webapp/src/index.js index ca873b14..68fce632 100644 --- a/webapp/src/index.js +++ b/webapp/src/index.js @@ -9,9 +9,7 @@ import { ChakraProvider } from '@chakra-ui/react' const root = ReactDOM.createRoot(document.getElementById('root')); root.render( - - ); From 15b4f24e1dfee3e1d4c23656ab39ed1557291c2f Mon Sep 17 00:00:00 2001 From: sonia Date: Sun, 10 Mar 2024 23:35:38 +0100 Subject: [PATCH 80/82] =?UTF-8?q?A=C3=B1adido=20boton=20para=20ir=20a=20la?= =?UTF-8?q?=20pantalla=20de=20la=20pregunta=20cuando=20te=20logeas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/src/App.js | 75 +++++++++++++++----------- webapp/src/components/Game.js | 19 +++++++ webapp/src/components/Login.js | 97 ++++++++++++++++++++-------------- webapp/src/index.js | 2 - 4 files changed, 119 insertions(+), 74 deletions(-) create mode 100644 webapp/src/components/Game.js diff --git a/webapp/src/App.js b/webapp/src/App.js index 3a313320..c42821ff 100644 --- a/webapp/src/App.js +++ b/webapp/src/App.js @@ -5,48 +5,61 @@ import CssBaseline from '@mui/material/CssBaseline'; import Container from '@mui/material/Container'; import Typography from '@mui/material/Typography'; import Link from '@mui/material/Link'; -import { Box} from "@chakra-ui/react"; -import { QuestionArea } from './components/QuestionArea'; + + +import Game from './components/Game'; +import { ChakraProvider } from '@chakra-ui/react'; + function App() { const [showLogin, setShowLogin] = useState(true); + const [showGame, setShowGame] = useState(false); // Nuevo estado para controlar si se muestra el juego + const [showWelcomeMessage, setShowWelcomeMessage] = useState(true); // Estado para controlar la visibilidad del mensaje de bienvenida y los enlaces + const handleToggleView = () => { setShowLogin(!showLogin); + setShowWelcomeMessage(true); }; - // /** - return ( - <> - - - - - ); - // */ - /** + + // Función para activar el juego y ocultar el resto de la interfaz + const startGame = () => { + setShowLogin(false); + setShowGame(true); + setShowWelcomeMessage(false); + }; + return ( - + - - Welcome to the 2024 edition of the Software Architecture course - - {showLogin ? : } - - {showLogin ? ( - - Don't have an account? Register here. - - ) : ( - - Already have an account? Login here. - - )} - + {/* Mostrar el mensaje de bienvenida y los enlaces solo si showWelcomeMessage es true */} + {showWelcomeMessage && ( + + Welcome to the 2024 edition of the Software Architecture course + + {showLogin ? ( + + Don't have an account? Register here. + + ) : ( + + Already have an account? Login here. + + )} + + + )} + + {showLogin && } + {!showLogin && !showGame && } + {showGame && ( + + + + )} ); - */ + } export default App; diff --git a/webapp/src/components/Game.js b/webapp/src/components/Game.js new file mode 100644 index 00000000..676fa06b --- /dev/null +++ b/webapp/src/components/Game.js @@ -0,0 +1,19 @@ +import React, { useState } from 'react'; +import { Box} from "@chakra-ui/react"; +import { QuestionArea } from './QuestionArea'; + +function Game() { + return ( + <> + + + + + ); + + +} + +export default Game; diff --git a/webapp/src/components/Login.js b/webapp/src/components/Login.js index 0ad6268e..3e29764a 100644 --- a/webapp/src/components/Login.js +++ b/webapp/src/components/Login.js @@ -3,7 +3,7 @@ import React, { useState } from 'react'; import axios from 'axios'; import { Container, Typography, TextField, Button, Snackbar } from '@mui/material'; -const Login = () => { +const Login = ({ startGame }) => { const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); @@ -11,6 +11,10 @@ const Login = () => { const [createdAt, setCreatedAt] = useState(''); const [openSnackbar, setOpenSnackbar] = useState(false); + //para mostrar el juego o no + const [showQuestionArea, setShowQuestionArea] = useState(false); + + const apiEndpoint = process.env.REACT_APP_API_ENDPOINT || 'http://localhost:8000'; const loginUser = async () => { @@ -33,48 +37,59 @@ const Login = () => { setOpenSnackbar(false); }; + //para empezar el juego + const handleButtonClick = () => { + startGame(); + }; + + return ( - - {loginSuccess ? ( -
- - Hello {username}! - - - Your account was created on {new Date(createdAt).toLocaleDateString()}. - -
- ) : ( -
- - Login - - setUsername(e.target.value)} - /> - setPassword(e.target.value)} - /> - - - {error && ( - setError('')} message={`Error: ${error}`} /> + + {loginSuccess ? ( +
+ + Hello {username}! + + + Your account was created on {new Date(createdAt).toLocaleDateString()}. + + + + +
+ ) : ( +
+ + Login + + setUsername(e.target.value)} + /> + setPassword(e.target.value)} + /> + + + {error && ( + setError('')} message={`Error: ${error}`} /> + )} +
)} -
- )} -
- ); +
+ ); }; export default Login; diff --git a/webapp/src/index.js b/webapp/src/index.js index ca873b14..68fce632 100644 --- a/webapp/src/index.js +++ b/webapp/src/index.js @@ -9,9 +9,7 @@ import { ChakraProvider } from '@chakra-ui/react' const root = ReactDOM.createRoot(document.getElementById('root')); root.render( - - ); From 142c5cf10d9eb83dfaef59e56382898934fc45c8 Mon Sep 17 00:00:00 2001 From: sonia Date: Mon, 11 Mar 2024 15:35:45 +0100 Subject: [PATCH 81/82] =?UTF-8?q?A=C3=B1adida=20la=20llamada=20a=20la=20AP?= =?UTF-8?q?I=20para=20coger=20una=20pregunta=20aleatoria=20de=20la=20base?= =?UTF-8?q?=20de=20datos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gatewayservice/gateway-service.js | 1 + questionsService/obtenerPreguntasBaseDatos.js | 8 +++--- questionsService/question-service.js | 4 +-- webapp/src/components/QuestionArea.jsx | 26 +++++++++++++------ 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index 5508539f..4770d5e7 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -46,6 +46,7 @@ app.get('/getQuestion', async (req, res) => { try { // llamamos al servicio de preguntas const questionResponse = await axios.get(questionServiceUrl+'/getQuestion', req.body); + res.json(questionResponse.data); } catch (error) { res.status(error.response.status).json({ error: error.response.data.error }); diff --git a/questionsService/obtenerPreguntasBaseDatos.js b/questionsService/obtenerPreguntasBaseDatos.js index c035946f..d8031147 100644 --- a/questionsService/obtenerPreguntasBaseDatos.js +++ b/questionsService/obtenerPreguntasBaseDatos.js @@ -20,13 +20,15 @@ class ObtenerPreguntas{ { $sample: { size: 3 } } ]); - return resultado = { - pregunta: pregunta.textoPregunta, - correcta: pregunta.respuestaCorrecta, + resultado = { + pregunta: pregunta[0].textoPregunta, + correcta: pregunta[0].respuestaCorrecta, respuestasIncorrecta1: respuestas[0].textoRespuesta, respuestasIncorrecta2: respuestas[1].textoRespuesta, respuestasIncorrecta3: respuestas[2].textoRespuesta }; + + return resultado; } } diff --git a/questionsService/question-service.js b/questionsService/question-service.js index fdda07a5..46c57290 100644 --- a/questionsService/question-service.js +++ b/questionsService/question-service.js @@ -25,9 +25,7 @@ mongoose.connect(mongoUri); app.get('/getQuestion', async(req,res)=> { try{ //coger pregunta bd - console.log("LLegamos al question service") - const questions = question.obtenerPregunta(); - + const questions = await question.obtenerPregunta(); //para devolver la pregunta res.json(questions); diff --git a/webapp/src/components/QuestionArea.jsx b/webapp/src/components/QuestionArea.jsx index 57eb8d3c..526a20ae 100644 --- a/webapp/src/components/QuestionArea.jsx +++ b/webapp/src/components/QuestionArea.jsx @@ -8,16 +8,23 @@ export function QuestionArea(){ const apiEndpoint = process.env.REACT_APP_API_ENDPOINT || 'http://localhost:8000'; // Estado para almacenar los datos de la pregunta - const [questionData, setQuestionData] = useState(null); + const [questionJson, setQuestionData] = useState(null); + // Estado para almacenar las respuestas + const [respuestas, setRespuestas] = useState([]); // Función para llamar al servicio y obtener los datos de la pregunta const fetchQuestionData = async () => { - try { + try { // Llamada al servicio para obtener los datos de la pregunta (aquí asumiendo que el servicio devuelve un JSON) - const response = await axios.get(`${apiEndpoint}/question`); - const data = await response.json(); + const response = await axios.get(`${apiEndpoint}/getQuestion`); + const data = response.data; setQuestionData(data); // Actualizar el estado con los datos de la pregunta obtenidos del servicio - } catch (error) { + + //calcular respuestas + const respuestasArray = [data.correcta, data.respuestasIncorrecta1, data.respuestasIncorrecta2, data.respuestasIncorrecta3]; + setRespuestas(respuestasArray); + + } catch (error) { console.error('Error fetching question data:', error); } }; @@ -27,7 +34,7 @@ export function QuestionArea(){ fetchQuestionData(); }, []); // El array vacío asegura que esto solo se ejecute una vez al montar el componente - + /* const questionJson = { "pregunta": "What is the capital of France?", "correcta": "Paris", @@ -35,8 +42,9 @@ export function QuestionArea(){ "respuestasIncorrecta2": "Berlin", "respuestasIncorrecta3": "Madrid" } + */ - const respuestas = [questionJson.correcta,questionJson.respuestasIncorrecta1,questionJson.respuestasIncorrecta2,questionJson.respuestasIncorrecta3]; + //const respuestas = [questionJson.correcta,questionJson.respuestasIncorrecta1,questionJson.respuestasIncorrecta2,questionJson.respuestasIncorrecta3]; return( @@ -48,7 +56,9 @@ export function QuestionArea(){ {/* Renderizar las respuestas de la pregunta */} ) : ( -

Cargando...

// Mensaje de carga mientras se obtienen los datos + <> +

Cargando...

{/* Mensaje de carga mientras se obtienen los datos */} + )}
) From 9895aab99f3732fd6e3bcc2a6efca4606ea51863 Mon Sep 17 00:00:00 2001 From: sonia Date: Mon, 11 Mar 2024 16:06:35 +0100 Subject: [PATCH 82/82] =?UTF-8?q?Arreglado=20como=20se=20veian=20las=20fec?= =?UTF-8?q?has=20y=20a=C3=B1adidas=20comprobaciones=20para=20que=20no=20se?= =?UTF-8?q?=20a=C3=B1adan=20preguntas=20no=20validas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- questionsService/obtenerPreguntasWikidata.js | 49 ++++++++++++++++++-- questionsService/questionGeneration.js | 6 ++- 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/questionsService/obtenerPreguntasWikidata.js b/questionsService/obtenerPreguntasWikidata.js index c5579728..2e9f940e 100644 --- a/questionsService/obtenerPreguntasWikidata.js +++ b/questionsService/obtenerPreguntasWikidata.js @@ -140,9 +140,17 @@ class ObtenerPreguntaWikiData { obtenemos el valor que queremos de la entidad */ obtenerValorPropiedad(binding, propertyName) { - //si tiene la + //si tiene la propiedad if (binding && binding.hasOwnProperty(propertyName)) { + //comprobamos si es una fecha + if(this.esFormatoISO8601(binding[propertyName].value)){ + //devolvemos la fecha formateada + return this.formatearFecha(binding[propertyName].value); + } + //si no es una fecha devolvemos el valor + else{ return binding[propertyName].value; + } } else { return "Ninguna de las anteriores"; } @@ -170,9 +178,11 @@ class ObtenerPreguntaWikiData { //obtenemos el esqueleto de la pregunta que queremos hacer var textoPregunta = this.obtenerTextoPregunta(result, this.question, this.type); + //para comprobar si es un Q + var regex = /^Q\d+/; //comprobamos que el resultado es valido para hacer la pregunta (que no sea QXXXXX) var preguntaCorrecta = this.answers.find(entidad => { - return entidad.label !== "Ninguna de las anteriores"; + return entidad.label !== "Ninguna de las anteriores" && !regex.test(entidad.label); }); if(preguntaCorrecta){ @@ -184,7 +194,12 @@ class ObtenerPreguntaWikiData { this.generarPregunta(consulta, respuestaCorrecta) .then(() => resolve()) .catch(error => reject(error)); - } + } + + //si no hay pregunta resolvemos la promesa + else{ + resolve(); + } }); }); }); @@ -229,15 +244,39 @@ class ObtenerPreguntaWikiData { type: this.type } - console.log(this.finalQuestion); - resolve(); }); } + /* + obtenemos la pregunta que hemos generado + */ obtenerPregunta(){ return this.finalQuestion; } + + /* + comprobamos si es una fecha en formato ISO 8601 + */ + esFormatoISO8601(cadena) { + // Expresión regular para el formato ISO 8601 + var formatoISO8601 = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/; + return formatoISO8601.test(cadena); + } + + /* + formateamos la fecha a un formato más legible + */ + formatearFecha(fechaISO8601) { + var meses = ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"]; + var fecha = new Date(fechaISO8601); + var dia = fecha.getDate(); + var mes = meses[fecha.getMonth()]; + var año = fecha.getFullYear(); + return dia + " de " + mes + " de " + año; + } + + } module.exports = ObtenerPreguntaWikiData; \ No newline at end of file diff --git a/questionsService/questionGeneration.js b/questionsService/questionGeneration.js index 4a99cb22..3f92302d 100644 --- a/questionsService/questionGeneration.js +++ b/questionsService/questionGeneration.js @@ -8,7 +8,11 @@ class GenerarPregunta { // Método para ejecutar las operaciones async ejecutarOperaciones() { await preguntaWiki.leerYSacarConsultas(); - guardarPregunta.guardarEnBaseDatos(preguntaWiki.obtenerPregunta()); + + //si se ha generado pregunta, guardarla en la base de datos + if (preguntaWiki.obtenerPregunta() !== undefined) { + guardarPregunta.guardarEnBaseDatos(preguntaWiki.obtenerPregunta()); + } } }

yBBzw;?pEXeN;+XxAE|H~U5yma0D5aeNrT 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 literal 0 HcmV?d00001 diff --git a/docs/images/05-Database-Level2.png b/docs/images/05-Database-Level2.png new file mode 100644 index 0000000000000000000000000000000000000000..51cc686b19b384e571b0938f80594b846d58ca1c GIT binary patch literal 99739 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 aUl4lLUhBdmwGuJ#W3$VC=e_M-QU3%?AeDgt literal 0 HcmV?d00001 diff --git a/docs/images/05-ScopeAndContext.png b/docs/images/05-ScopeAndContext.png new file mode 100644 index 0000000000000000000000000000000000000000..0a63bda71a8f68553bb2e405cad826583e40e889 GIT binary patch literal 25814 zcmeHw2UJwo+9-^mhy|=fQNV(zNN1?hq)P_{q$71GGnAp%36>}V76j=iGDsKc9fJx= zQ$_}*D@{Op9T?#4GbNIkRTTwY z8k$YnG&HoI7&e2EtI39+z#p{ky2|Hha+(i~(9p2lMJpPjoxN=lPBt{0Lh|G%PC<=%HBi0?CnrlzK_xgZKUnId0Rm}_@^S}{nis%-1o*+Q z&^hn~UWf>jAH79{Pk|9R7Z)cR1Dnfg2yhN1xR5BXkO&w)sity4L!DDl9y~iC9BsfK z$~IPxDCiS;dpDFb7*P@s1Pep|fI&S=TT3^@#wE10b)h-@;Lzkb&@FAymUiSDs$4d| ztSG8yWv`;9D{gS%va$diPQIC^jhj0Hg`@yNh*yADnEV3m<6=V|wYKp@Sb-x5atbMO z^2>pRp?`(sDPRRZke1+xByekU$_sJI3D_Z!mOKLFg%A`d3wt;z3R|C7b>X?}Y-HqV zsN&3{`Nu`6OFMfjyIH!}YoM%coWT0l-sIJV!~nRUn_2si2L!}Kg~%gzZq$7!+d>0+ z2w%#%1i+c05A8e<);8{xkI6%56v_#WaQXe96$**8v7(@yvZAG%8-!=lJt;%BC@0G8 zC<88lQhqlB8ql+{bozeO0AY=`C(jiV6eXVpnyq4ku(PM`EFdCIe&cLOolLojyS*hK zJM#CWp^eBP!;uP2Hxvr2w*hw>UsESJd&}E6LBOWMk+KgUtAG95-=N|48{hojET`{v z(Zfqs^P;{QT9aSEP1!)xT8&4LLJOXjP97BKl0oH;_Mw8?4dsEfCb2ohlV0`+w2hvN zB_L)Y1usBgV9Xxv>;!%ZkoXj$5Wo;<8w$Ps$u&qre-F!V5LLDTyo+}80n1WW6ceJr zfkMDS&}3*^uW!^KE=(D--#`h%Vw6Ek3I*Ezwl?(nKZ7MOhl1q4KR+Z#|3C|WiU5Is z2>}p<{{s*pz%Nb#Bn1P)RMD^j18^#^H)24L`r&^N1}InAK=C%#K;BRo0Of|ZN7`#ESUFj`yCbZq!%9G(g3)g*2;Bh;0LJ($1{CB6>)8Qq zPMY=!>OB*`207~^Y_OT0yfA0W2r#F*$*w@|6F1ghByhr z`G1{+{WG&m#0luabG9gwj`>FABCZ~g=}&sW<4*F1ApcEJ$OUL=;GI69_gdG$MKtrbBM&AhKfp$V5ZRCG*iy`qu-umC`FbN1yaYp51Drz?1@Xt^vLSg^^ zAPiDNE*l-ze~obkME-(t_2jj*6#-|z6* zoB-(xDIifuXcZ8^bNa*3{{(S~{n6kNrl4p8Z3*&I2x+5ypc34F4si)m;zZwMzu^C% zEBMX*+hDEyr85Y5hT1l62oM{Ai0hlFL$Z5#`T2zaNstU7@@fDpl;3}0{E+7UaYZr# z{WHEK+1COG0iXP-FDXEgz5meZB&p_qr%ePIHUBss_m6!#lHd0iaY2etxFG_&@kXS# z)X*>a1?2-M3QrCdzD-NmM?=FwqpBcx!P{)Sd&kqmHUTnIbpq^oGcu*6e0~#Bc1gVxfz7w}%ujqAE>4=1_FME?jPI^Xjbu|Z zqhny^kPW7xg^?aOl56_iaLXU8mhr(KPu`#oL+>m1dw2D-MGI$F_Ru?>rOYRN_?gk( zsNXh4kh}zWtvNGUT*rzj&BhhzeoUl-`UiM^BfB3&@q;LSNQxhV^nb7Vz?8tedIP-5 z#&XJAr53yHRjrPr(k25J%SRqwXFD&m^qi?xD`**4VABva_rWUSWjD?JU1Xj&rg!Vl ztKBL2I8ACCff!Ek(k%b_OwD(~Jt@v?=~otPeXGitXSM1E~#I=G$Yp- zO4h}{@ZDa28^7L1oT_Cq2nr6IdcGx7Mx__rppE^>WW{XrT;*f{AJ3&{$1910d|J8Q zFS%PkzYOh1Jz(VGO-3Y$<zs$w9SDY9x?hWKr6BHqv9L(x{;gS<7Nz3okTI*!irblu5 zDF1#|+zqb8pR&#msvF7TBoLNkT(TCdm{8ublcsL3IolTXdx%4#X|+r;@yry<#X=Jk zhb%i4FmQ}LeZtFic_b~ZEz_Wdz_tx74@{S^L(cS=DVTwYtDB7o>7_pOs{?kA zH!+>%_iti6PPUmoZ|(BzbRPK}%BN|*HWQ8O>|I+ZaA?c$R?M)^g2m$V+>8#;!u05o zrGrtUEa$8A`aaqvB}DNUZ>HK-Pc1MzSVbPsw#ZcbK9XIlT{?38(6c@dBRO?i4aY{4 z3yR5mV0MW<;x&Tq7p7FG)*gx7E-`Mb?Oi6tJ^_o6KdqL_U5_SSnHZtit$ifAUhy)HeVS$ppV z?^C3PBQ08f_m^j~RopIB`MuX=h@a4{s$3pEdd{rBA>j>ot~$!6!8n6!Z%Kp8Q0X> zVH(bKc1pHv`W0)yAu)xcH_4x@?yF~Kksf+r)ru@1*Oxj`m)Q+2< zV_dYc;g=@gls{8;?br&SxGyQc@^otnXY=gP z{783x+dv#|ci_r6Vs&{wRZW00Sr!l#*ze3?ml|4RvvAsl3VPw}X+fP`fRYG#B7{%f ztfELXE_DiV>Nfev^)SMax>_`^20$^k?o)wN^xJ}>GyH?QPx3rP;IN~)k>-Rq250eD z^iQw2$j4XOT^~^^{v|miLo1ZWtit>8qEShFFt#wh^3K)*-98&Wze~QjxSmK&iIK