From add33a3ca86a709e880b86492e707e6508b5516a Mon Sep 17 00:00:00 2001 From: Shishir Suman <shishir.suman@tarento.com> Date: Fri, 9 Feb 2024 13:10:51 +0530 Subject: [PATCH] adding latest changes --- apps/wrapper/applicant-portal/dockerfile | 4 +- apps/wrapper/applicant-portal/package.json | 4 +- apps/wrapper/applicant-portal/src/App.css | 4 + apps/wrapper/applicant-portal/src/App.js | 22 +- .../applicant-portal/src/api/formApi.js | 16 +- .../wrapper/applicant-portal/src/api/index.js | 61 +- .../src/assets/json_files/messages.json | 11 + .../src/components/ApplicationCard.jsx | 61 +- .../src/components/FormCard.jsx | 47 + .../src/components/Header.jsx | 8 +- .../src/constants/apiConstants.js | 23 +- .../src/login/ApplicantLogin.jsx | 73 +- .../applicant-portal/src/login/Register.jsx | 108 +- .../src/pages/AllApplications.jsx | 240 +- .../applicant-portal/src/pages/CreateForm.jsx | 634 +- .../applicant-portal/src/pages/Dashboard.jsx | 12 +- .../src/pages/MyApplications.jsx | 347 +- .../src/pages/PaymentResult.jsx | 62 +- .../applicant-portal/src/pages/Profile.jsx | 20 +- .../src/pages/StatusLogModal.jsx | 106 + .../NotificationsDetailedView.jsx | 8 +- .../src/payment-config/config.json | 28 + .../src/services/applicantService.js | 40 +- .../src/services/applicationService.js | 10 + .../src/services/userService.js | 28 +- apps/wrapper/assessor-app/dockerfile | 4 +- apps/wrapper/assessor-app/package-lock.json | 22904 ++++++++++------ apps/wrapper/assessor-app/src.zip | Bin 0 -> 576420 bytes apps/wrapper/assessor-app/src/App.js | 2 + apps/wrapper/assessor-app/src/api/index.js | 63 + .../src/components/CommonLayout/index.jsx | 26 +- .../src/components/GenericForm/index.js | 4 +- .../src/constants/apiConstants.js | 9 + .../assessor-app/src/constants/index.js | 1 + .../assessor-app/src/pages/AssessmentType.jsx | 14 +- .../src/pages/CaptureLocation.jsx | 2 +- .../assessor-app/src/pages/CaptureSelfie.jsx | 14 +- .../assessor-app/src/pages/ForgotPassword.jsx | 72 +- .../assessor-app/src/pages/LoginMedical.jsx | 95 +- .../src/pages/MedicalAssessments.jsx | 3 +- .../src/pages/MedicalAssessor.jsx | 12 +- .../src/pages/forms/GenericOdkForm.jsx | 548 +- .../src/utils/enketo/module/store.js | 971 + .../src/utils/enketo/module/utils.js | 265 + apps/wrapper/assessor-app/src/utils/index.js | 52 +- apps/wrapper/web-portal/package.json | 3 +- .../files/Template_bulk_user_create.csv | 2 +- apps/wrapper/web-portal/public/index.html | 7 + apps/wrapper/web-portal/src/App.css | 44 + apps/wrapper/web-portal/src/App.js | 311 +- apps/wrapper/web-portal/src/api/apiUrl.js | 32 +- .../src/api/fileUploadAdminCustomApi.js | 19 + apps/wrapper/web-portal/src/api/index.js | 381 +- .../wrapper/web-portal/src/api/userService.js | 125 + .../src/assets/json-files/messages.json | 35 + .../src/components/CommentsModal.jsx | 490 + .../web-portal/src/components/Header.jsx | 9 +- .../wrapper/web-portal/src/components/Nav.jsx | 181 +- .../src/components/table/Filters.jsx | 220 +- .../src/components/table/GlobalFilter.jsx | 14 +- .../wrapper/web-portal/src/config/firebase.js | 6 +- .../web-portal/src/login/AdminLogin.jsx | 138 +- .../web-portal/src/login/LoginEnterOtp.jsx | 38 +- .../pages/dashboard/DashboardLandingPage.jsx | 421 +- .../desktop-analysis/DesktopAnalysisList.jsx | 325 +- .../desktop-analysis/DesktopAnalysisView.jsx | 384 +- .../ReturnToInstituteModal.js | 5 +- .../ScheduleInspectionModal.jsx | 629 +- .../GroundInspectionListForms.jsx | 163 +- .../GroundInspectionViewForm.jsx | 289 +- .../pages/ground-analysis/IssueNocModal.jsx | 11 +- .../src/pages/ground-analysis/OGASidebar.jsx | 9 +- .../pages/ground-analysis/RejectNocModal.jsx | 6 +- .../pages/ground-analysis/StatusLogModal.jsx | 38 +- .../src/pages/manage-forms/CreateForm.jsx | 334 +- .../src/pages/manage-forms/FormsOverview.jsx | 1 + .../src/pages/manage-forms/UploadForm.jsx | 4 +- .../src/pages/manage-forms/calendar.css | 21 + .../pages/manage-users/AdminCreateUser.jsx | 253 +- .../manage-users/BulkUploadUsersModal.jsx | 159 +- .../pages/manage-users/ManageUsersList.jsx | 721 +- .../NotificationsDetailedView.jsx | 6 +- .../src/pages/notifications/Overlay.js | 2 +- .../role-management/CreateUpdateRole.jsx | 682 + .../src/pages/role-management/ManageRole.jsx | 13 + .../pages/role-management/ManageRolesList.jsx | 622 + .../ScheduleManagementList.jsx | 176 +- .../web-portal/src/routes/adminRouteMap.js | 7 + apps/wrapper/web-portal/src/utils/common.js | 2 +- 89 files changed, 23911 insertions(+), 10465 deletions(-) create mode 100644 apps/wrapper/applicant-portal/src/assets/json_files/messages.json create mode 100644 apps/wrapper/applicant-portal/src/pages/StatusLogModal.jsx create mode 100644 apps/wrapper/applicant-portal/src/payment-config/config.json create mode 100644 apps/wrapper/assessor-app/src.zip create mode 100644 apps/wrapper/assessor-app/src/constants/apiConstants.js create mode 100644 apps/wrapper/assessor-app/src/constants/index.js create mode 100644 apps/wrapper/assessor-app/src/utils/enketo/module/store.js create mode 100644 apps/wrapper/assessor-app/src/utils/enketo/module/utils.js create mode 100644 apps/wrapper/web-portal/src/api/fileUploadAdminCustomApi.js create mode 100644 apps/wrapper/web-portal/src/assets/json-files/messages.json create mode 100644 apps/wrapper/web-portal/src/components/CommentsModal.jsx create mode 100644 apps/wrapper/web-portal/src/pages/manage-forms/calendar.css create mode 100644 apps/wrapper/web-portal/src/pages/role-management/CreateUpdateRole.jsx create mode 100644 apps/wrapper/web-portal/src/pages/role-management/ManageRole.jsx create mode 100644 apps/wrapper/web-portal/src/pages/role-management/ManageRolesList.jsx diff --git a/apps/wrapper/applicant-portal/dockerfile b/apps/wrapper/applicant-portal/dockerfile index 6dc89655..5574d1b4 100644 --- a/apps/wrapper/applicant-portal/dockerfile +++ b/apps/wrapper/applicant-portal/dockerfile @@ -3,5 +3,5 @@ WORKDIR /app COPY . ./ RUN npm install RUN npm run build -EXPOSE 3002 -CMD ["npm", "run", "start-prod"] \ No newline at end of file +EXPOSE 3000 +CMD ["npm", "run", "start"] \ No newline at end of file diff --git a/apps/wrapper/applicant-portal/package.json b/apps/wrapper/applicant-portal/package.json index 832a1464..845549ff 100644 --- a/apps/wrapper/applicant-portal/package.json +++ b/apps/wrapper/applicant-portal/package.json @@ -17,7 +17,9 @@ "react-scripts": "5.0.1", "react-table": "^7.8.0", "rxjs": "^7.8.1", - "web-vitals": "^2.1.4" + "dotenv": "^10.0.0", + "web-vitals": "^2.1.4", + "xlsx": "^0.18.5" }, "scripts": { "start": "react-scripts start", diff --git a/apps/wrapper/applicant-portal/src/App.css b/apps/wrapper/applicant-portal/src/App.css index 53ce22f8..6500298b 100644 --- a/apps/wrapper/applicant-portal/src/App.css +++ b/apps/wrapper/applicant-portal/src/App.css @@ -31,4 +31,8 @@ body { :disabled { background: #f9f9f9; color: rgb(209 213 219 / var(--tw-text-opacity)); +} + +.or-group .dropdown-menu > .active > a { + color: #333333 !important; } \ No newline at end of file diff --git a/apps/wrapper/applicant-portal/src/App.js b/apps/wrapper/applicant-portal/src/App.js index d6a1509d..1bc74e2c 100644 --- a/apps/wrapper/applicant-portal/src/App.js +++ b/apps/wrapper/applicant-portal/src/App.js @@ -1,4 +1,4 @@ -import { BrowserRouter, Routes, Route } from "react-router-dom"; +import { BrowserRouter, Routes, Route, Navigate} from "react-router-dom"; import "./App.css"; import APPLICANT_ROUTE_MAP from "./routes/ApplicantRoute"; @@ -52,10 +52,22 @@ function App() { useEffect(() => { getPermissionForToken(); + // console.log("REACT_APP_WEB_PORTAL_USER_SERVICE_URL-->", process.env.REACT_APP_WEB_PORTAL_USER_SERVICE_URL ) + setInterval(() => { + console.log("checking conn",navigator.onLine) + if(!navigator.onLine){ + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "You seem to be offline. Please check your internet connection.", + toastType: "error", + })); + } + }, 5000); }, []); useEffect(() => { - if (toast) { + if (toast?.toastOpen) { setTimeout(() => { setToast({ toastOpen: false, @@ -75,6 +87,7 @@ function App() { <BrowserRouter> <Routes> + {<Route path="/" element={<Navigate to="/auth/login" />} />} <Route path={APPLICANT_ROUTE_MAP.auth} element={<Authenticate />}> <Route path={APPLICANT_ROUTE_MAP.loginModule.login} @@ -101,7 +114,8 @@ function App() { } ></Route> <Route - path={APPLICANT_ROUTE_MAP.dashboardModule.all_applications} + path={`${APPLICANT_ROUTE_MAP.dashboardModule.all_applications}/:round?/:courseType?`} + element={ <PrivateRoute> <AllApplications /> @@ -109,7 +123,7 @@ function App() { } ></Route> <Route - path={`${APPLICANT_ROUTE_MAP.dashboardModule.createForm}/:formName/:formId?/:applicantStatus?`} + path={`${APPLICANT_ROUTE_MAP.dashboardModule.createForm}/:formName/:formId?/:applicantStatus?/:paymentStage?`} element={ <PrivateRoute> <CreateForm /> diff --git a/apps/wrapper/applicant-portal/src/api/formApi.js b/apps/wrapper/applicant-portal/src/api/formApi.js index 6b9e4aa5..011c1ffb 100644 --- a/apps/wrapper/applicant-portal/src/api/formApi.js +++ b/apps/wrapper/applicant-portal/src/api/formApi.js @@ -166,14 +166,14 @@ const validateResponse = async (response) => { } //email notify - const emailData = { - recipientEmail: [`${getCookie("userData")?.userRepresentation?.email}`], - emailSubject: `${getCookie("institutes")[0]?.name} Application Submission`, - emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${ - getCookie("institutes")[0]?.name - },</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Your application has been successfully submitted. Thank you for your interest. You will receive further updates regarding the review process.</p></td></tr></table></body></html>`, - }; - applicantService.sendEmailNotification(emailData); + // const emailData = { + // recipientEmail: [`${getCookie("userData")?.userRepresentation?.email}`], + // emailSubject: `${getCookie("institutes")[0]?.name} Application Submission`, + // emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${ + // getCookie("institutes")[0]?.name + // },</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Your application has been successfully submitted. Thank you for your interest. You will receive further updates regarding the review process.</p></td></tr></table></body></html>`, + // }; + // applicantService.sendEmailNotification(emailData); // regulator const regAPIRes = await applicantService.getAllRegulatorDeviceId(); diff --git a/apps/wrapper/applicant-portal/src/api/index.js b/apps/wrapper/applicant-portal/src/api/index.js index d5e4a586..b36192b0 100644 --- a/apps/wrapper/applicant-portal/src/api/index.js +++ b/apps/wrapper/applicant-portal/src/api/index.js @@ -1,6 +1,7 @@ import { APIS } from "../constants"; import customPost from "./customPost"; import axios from 'axios'; +import { utils, writeFile } from 'xlsx'; export const getFormData = async (postData) => { @@ -36,4 +37,62 @@ export const registerEvent = async (postData) => { events ); return res; -} \ No newline at end of file +} + +export const getStatus = async (postData) => { + const res = await customPost.post( + APIS.viewStatus.getViewStatus, + postData + ); + return res.data; +}; + +//#region (xlsx) + +//#region (json to xlsx) +export const exportToExcel = async (downloadObjects) => { + if (downloadObjects && downloadObjects.objectsList) { + const workbook = utils.book_new(); + downloadObjects.objectsList.forEach((element) => { + const sheetName = element.sheetName ? element.sheetName : `Sheet ${workbook.SheetNames.length + 1}` + const worksheet = utils.json_to_sheet([]); + utils.sheet_add_aoa(worksheet, [element.headers]) + utils.book_append_sheet(workbook, worksheet, sheetName); + utils.sheet_add_json(worksheet, element.downloadObject, { origin: 'A2', skipHeader: true }); + }); + writeFile(workbook, downloadObjects.fileName ? downloadObjects.fileName : 'data.xlsx'); + } +} + +/** API to save drafted application on click of save as draft */ +export const saveApplicationDraft = async (postData) => { + const res = await customPost.put( + APIS.FORMS.SAVE_DRAFT, + postData + ); + return res.data; +} + +export const updateApplicationDraft = async (postData) => { + const res = await customPost.post( + APIS.FORMS.UPDATE_DRAFT, + postData + ); + return res.data; +} + +export const deleteApplicationDraft = async (postData) => { + const res = await customPost.post( + APIS.FORMS.DELETE_DRAFT, + postData + ); + return res.data; +} + +export const updateFormStatus = async (postData) => { + const res = await customPost.put(APIS.FORMS.UPDATE_FORM, postData); + return res; +}; +//#endregion + +//#endregion diff --git a/apps/wrapper/applicant-portal/src/assets/json_files/messages.json b/apps/wrapper/applicant-portal/src/assets/json_files/messages.json new file mode 100644 index 00000000..6de90167 --- /dev/null +++ b/apps/wrapper/applicant-portal/src/assets/json_files/messages.json @@ -0,0 +1,11 @@ +{ + "ACCOUNT_CREATED_OTP_BASED_LOGIN_MAIL": { + "SUBJECT": "Welcome - Your Onboarding is Complete!", + "BODY": { + "part1": "<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ", + "part2": ",</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Welcome aboard! We are thrilled to have you as a new user of our application. Your onboarding process has been successfully completed, and you are now ready to use our application.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>To get started, you will be using OTP (One-Time Password) for secure login. Here are the details you will need:</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Email ID: ", + "part3": "</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Mobile Number: ", + "part4": "</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>When logging in, you can generate your OTP using your registered email ID / Mobile Number. If you encounter any difficulties during the login process or have any questions about the application, please feel free to reach out to our support team.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Best regards,</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Please be informed that this email has been generated by the system. If you have any queries or require clarification, kindly contact the administrator.</p></td></tr></table></body></html>" + } + } +} \ No newline at end of file diff --git a/apps/wrapper/applicant-portal/src/components/ApplicationCard.jsx b/apps/wrapper/applicant-portal/src/components/ApplicationCard.jsx index 5d975c80..5c7826b5 100644 --- a/apps/wrapper/applicant-portal/src/components/ApplicationCard.jsx +++ b/apps/wrapper/applicant-portal/src/components/ApplicationCard.jsx @@ -2,8 +2,11 @@ import React, { useEffect } from "react"; import { Card, Button } from "./index"; import { generate_uuidv4, getCookie, readableDate, removeCookie, setCookie } from "../utils"; import { applicantService } from "../services"; -import { useNavigate } from "react-router-dom"; +import paymentConfigPostData from '../payment-config/config.json'; +import { + setToLocalForage, +} from "./../forms"; const ApplicationCard = (props) => { let formName = props?.application?.course?.course_name?.trim() || "NA"; @@ -13,7 +16,7 @@ const ApplicationCard = (props) => { setCookie("payment_ref_no",refNo) const instituteDetails = getCookie("institutes"); const instituteId = instituteDetails?.[0]?.id; - const postData = { + /* const postData = { endpoint: "https://eazypayuat.icicibank.com/EazyPG", returnUrl: "https://payment.uphrh.in/api/v1/user/payment", paymode: "9", @@ -39,10 +42,24 @@ const ApplicationCard = (props) => { refundStatus: "x", }, optionalFields: "", - }; + }; */ try { - const paymentRes = await applicantService.initiatePayment(postData); - await window.open(paymentRes?.data?.redirectUrl); + const paymentRes = await applicantService.initiatePayment(paymentConfigPostData); + //await applicantService.savePaymentRefNumber(paymentRes?.data?.referenceNo); + await setToLocalForage( + `refNo`, + { + refNo: paymentRes?.data?.referenceNo + } + ); + + await setToLocalForage( + `common_payload`, + { + "paymentStage":"secStage", + } + ); + window.open(paymentRes?.data?.redirectUrl); } catch (error) {} }; @@ -50,9 +67,9 @@ const ApplicationCard = (props) => { <Card moreClass="flex flex-col border-gray-100 m-3 gap-5 w-[360px] border-[1px] drop-shadow justify-between"> <div className="flex flex-col gap-2"> <div className="text-xl font-medium">{formName}</div> - <div className="text-sm"> + {props.application.submitted_on !== null && (<div className="text-sm"> Submitted on: {readableDate(props.application.submitted_on)} - </div> + </div>)} <div className="flex flex-row gap-2 text-sm"> <span className={`text-xs p-1 rounded-md ${ @@ -107,11 +124,34 @@ const ApplicationCard = (props) => { }`} style={{ backgroundColor: "#eee" }} > - Payment: - {props?.application?.payment_status !== null + Payment: {props?.application?.payment_status !== null ? props?.application?.payment_status : "NA"} </span> + <div className="w-[84px]"> + <span + className={`text-xs py-1 px-2 rounded-md ${ + props.application.round === 1 + ? "text-yellow-800" + : "text-indigo-700" + }`} + style={{ backgroundColor: "#eee" }} + > + Round: <span> {props.application.round}</span> + </span> + </div> + </div> + <div> + <span + className={`text-xs py-1 px-2 rounded-md ${ + props.application.round === 1 + ? "text-yellow-800" + : "text-indigo-700" + }`} + style={{ backgroundColor: "#eee" }} + > + Course Applied: {props?.application?.institute?.course_applied ? props?.application?.institute?.course_applied : props?.application?.institutes?.course_applied } + </span> </div> </div> @@ -127,7 +167,8 @@ const ApplicationCard = (props) => { text="Pay" onClick={handlePayment} otherProps={{ - disabled: props?.application?.payment_status !== "Pending", + // disabled: props?.application?.payment_status !== "Pending", + hidden: props?.application?.payment_status !== "Pending", }} ></Button> </div> diff --git a/apps/wrapper/applicant-portal/src/components/FormCard.jsx b/apps/wrapper/applicant-portal/src/components/FormCard.jsx index b2d93f1a..a302bab5 100644 --- a/apps/wrapper/applicant-portal/src/components/FormCard.jsx +++ b/apps/wrapper/applicant-portal/src/components/FormCard.jsx @@ -1,10 +1,23 @@ import React from "react"; import { Card, Button } from "./index"; +import { readableDate } from "../utils/common"; +import { Tooltip } from "@material-tailwind/react"; const FormCard = (props) => { let name = props?.form?.course_name; name = name.charAt(0).toUpperCase() + name.slice(1); + + const isFormSubmissionDateOver = () => { + //if (new Date("2023-11-11") < new Date()) { + if (new Date(props?.form?.form?.last_submission_date) < new Date()) { + return true; + } else { + return false + } + } + + return ( <Card moreClass="flex flex-col border-gray-100 m-3 gap-3 w-[300px] border-[1px] drop-shadow justify-between"> <div className="text-xl font-medium">{name}</div> @@ -13,6 +26,31 @@ const FormCard = (props) => { title={props?.form?.course_desc} > {props?.form?.course_desc} + + </div> + <div className="flex" > + <span className={"text-purple-400 text-sm rounded-md p-1" } style={{ backgroundColor: "#eee" }}> + Course type: {props?.form?.course_type} - ({props?.form?.course_level}) + </span> + + {/* <span className={"text-indigo-700 text-sm rounded-md m-2"} style={{ backgroundColor: "#eee" }}> + Course level: ({props?.form?.course_level}) + </span> */} + </div> + <div className="flex" > + <span className={"text-teal-400 text-sm rounded-md p-1"} style={{ backgroundColor: "#eee" }}> + Round : {props?.form?.round} + </span> + + </div> + <div className="flex" > + <span + className={`text-xs py-1 px-2 rounded-md text-yellow-800}`} + style={{ backgroundColor: "#eee" }} + > + {console.log(props?.form)} + Last Date for Submission: <span>{readableDate(props?.form?.form?.last_submission_date)}</span> + </span> </div> <div className="flex"> <Button @@ -20,7 +58,16 @@ const FormCard = (props) => { style={{ backgroundColor: "#fff" }} text="Apply" onClick={props.onApply ? () => props.onApply(props?.form) : null} + otherProps={{ + disabled : isFormSubmissionDateOver() + }} ></Button> + { isFormSubmissionDateOver() && + <div className="flex grow gap-4 justify-end items-center"> + <Tooltip arrow content="Last date to apply is over. Please contact admin"> + ⓘ + </Tooltip> + </div>} </div> </Card> ); diff --git a/apps/wrapper/applicant-portal/src/components/Header.jsx b/apps/wrapper/applicant-portal/src/components/Header.jsx index 6c79fcc4..51301832 100644 --- a/apps/wrapper/applicant-portal/src/components/Header.jsx +++ b/apps/wrapper/applicant-portal/src/components/Header.jsx @@ -11,6 +11,9 @@ import { MenuItem, } from "@material-tailwind/react"; import Overlay from "../pages/notifications/Overlay"; +import { + removeAllFromLocalForage, +} from "./../forms"; const Header = () => { const [showButtons, setshowButtons] = useState(false); @@ -23,6 +26,7 @@ const Header = () => { removeCookie("institutes"); removeCookie("firebase_client_token") removeCookie("formId"); + removeAllFromLocalForage(); navigate(APPLICANT_ROUTE_MAP.loginModule.login); }; @@ -69,7 +73,7 @@ const Header = () => { </div> )} - {userData?.userRepresentation && ( + {userData && ( <div className="flex flex-row gap-8 items-center"> <Overlay className="text-3xl text-gray-500" /> <Menu placement="bottom-end"> @@ -80,7 +84,7 @@ const Header = () => { aria-haspopup="true" > {getInitials( - `${userData?.userRepresentation?.firstName?.trim()} ${userData?.userRepresentation?.lastName?.trim()}` + `${userData?.firstName?.trim()} ${userData?.lastName?.trim()}` )} </button> </MenuHandler> diff --git a/apps/wrapper/applicant-portal/src/constants/apiConstants.js b/apps/wrapper/applicant-portal/src/constants/apiConstants.js index 8eeab9c0..3bcc8ee6 100644 --- a/apps/wrapper/applicant-portal/src/constants/apiConstants.js +++ b/apps/wrapper/applicant-portal/src/constants/apiConstants.js @@ -1,6 +1,8 @@ export const APIS = { APPLICATIONS: { STATUS_LIST: "/rest/getApplicationStatus", + OTHER_VALID_FORMS:"/rest/applicantApplicationStatus", + DRAFTED_APPLICATIONS: "/rest/getAllInstituteDrafts" }, COMMON: { REGISTER_EVENT: `/rest/addEvents`, @@ -9,14 +11,23 @@ export const APIS = { FORMS: { LIST: "/rest/getAllCourses", VIEW_FORM: `/rest/getFormData`, + SAVE_DRAFT: "/rest/instituteFormsDrafts", + UPDATE_DRAFT: "/rest/updateInstituteFormDrafts", + DELETE_DRAFT: "/rest/deleteInstituteFormDraftsById", + UPDATE_FORM: "/rest/updateForm" }, SIGNUP: { CREATE_USER: "create", + CHECK_IS_EMAIL_EXIST: `/rest/findUserByEmail` }, EDITUSERS:{ EDIT_USER: "update", }, + USER:{ + CHECKVALID: "emaildetails" + }, + LOGIN: { GENERATE_OTP: "keycloak/otp", USERLOGIN: "keycloak/login", @@ -38,7 +49,8 @@ export const APIS = { }, FORM: { UPDATE_FORM: "/rest/updateFormSubmission", - UPDATE_CHILD_CODE: "/rest/updateChildCode" + UPDATE_CHILD_CODE: "/rest/updateChildCode", + SAVE_INITIAL_FORM_SUBMISSION: "/rest/saveInitialFormSubmissions" }, SEARCH:{ SEARCH_FORM: "/rest/searchCourses" @@ -52,7 +64,12 @@ export const APIS = { readNotification: `notification/update`, }, PAYMENT:{ + GENERATE_LINK_V2: `payment/v2/generatelink`, GENERATE_LINK: `payment/generatelink`, - UPDATE_PAYMENT_STATUS: `rest/updatePaymentStatus` - } + UPDATE_PAYMENT_STATUS: `rest/updatePaymentStatus`, + UPDATE_INITIAL_PAYMENT_STATUS: `rest/updateTransactionStatusByRefNo` + }, + viewStatus: { + getViewStatus: `rest/getEvents`, + }, }; diff --git a/apps/wrapper/applicant-portal/src/login/ApplicantLogin.jsx b/apps/wrapper/applicant-portal/src/login/ApplicantLogin.jsx index 137916f7..b38b0ab2 100644 --- a/apps/wrapper/applicant-portal/src/login/ApplicantLogin.jsx +++ b/apps/wrapper/applicant-portal/src/login/ApplicantLogin.jsx @@ -22,6 +22,7 @@ const ApplicantLogin = () => { const { register, handleSubmit, + resetField, formState: { errors }, } = useForm(); useEffect(() => { @@ -38,6 +39,44 @@ const ApplicantLogin = () => { checkLoggedInStatus(); }, [navigate]); + const handleBackClick = () => { + setEnableOtp(false); + resetField("otp"); + } + + const isUserActive = async (data) => { + //setSpinner(true); + console.log("REACT_APP_WEB_PORTAL_USER_SERVICE_URL-->", process.env.REACT_APP_WEB_PORTAL_USER_SERVICE_URL ) + + try { + const res = await userService.isUserActive(data); + console.log(res) + if (res?.data[0]?.enabled && res?.data[0]?.attributes.Role[0] === "Institute") { + login(data); + //setSpinner(false); + } else { + //setSpinner(false); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "User not found. Please contact system admin.", + toastType: "error", + })); + return + } + + } catch (error) { + // setSpinner(false); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Something went wrong. Please try again later. ", + toastType: "error", + })); + } + + } + const login = async (data) => { try { const otpRes = await userService.generateOtp({ @@ -48,14 +87,21 @@ const ApplicantLogin = () => { setEnableOtp(true); setEmailId(data.email); } else { - console.log("Something went wrong", otpRes); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: otpRes?.data?.error ? otpRes?.data?.error : "Something went wrong.Please try again later", + toastType: "error", + })); + // console.log("Something went wrong", otpRes); + } } catch (error) { console.log("Otp not sent due to some error", error); setToast((prevState) => ({ ...prevState, toastOpen: true, - toastMsg: "User not registered.", + toastMsg: "Something went wrong.Please try again later", toastType: "error", })); } @@ -67,7 +113,6 @@ const ApplicantLogin = () => { email: data.email, otp: Number(data.otp), }; - const loginRes = await userService.login(loginDetails); const applicantDetailsRes = await applicantService.getApplicantDetails({ @@ -84,8 +129,10 @@ const ApplicantLogin = () => { const role = loginRes?.data?.userRepresentation?.attributes?.Role?.[0]; + console.log(loginRes?.data) + if (role === "Institute") { - setCookie("userData", loginRes.data); + setCookie("userData", loginRes?.data?.userRepresentation); setCookie("institutes", applicantDetailsRes.data.institutes); navigate(APPLICANT_ROUTE_MAP.dashboardModule.my_applications); } else { @@ -123,7 +170,8 @@ const ApplicantLogin = () => { <> <form onSubmit={handleSubmit((data) => { - login(data); + //login(data); + isUserActive(data) })} noValidate > @@ -159,13 +207,13 @@ const ApplicantLogin = () => { type="submit" ></Button> <p className="flex justify-center my-6"> - <span className="text-gray-400">Create an account, </span> + <span className="text-gray-400">Not registered yet?, </span> <Link to={APPLICANT_ROUTE_MAP.dashboardModule.register} className="text-primary-700" > - Sign up + Register here </Link> </p> </form> @@ -186,9 +234,10 @@ const ApplicantLogin = () => { name="otp" id="otp" placeholder="0-0-0-0-0-0" + {...register("otp", { required: true, - pattern: /^\d{1,6}$/i, + pattern:/^\d{1,6}$/i })} className="block w-full rounded-md border-0 p-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6" noValidate @@ -208,11 +257,11 @@ const ApplicantLogin = () => { Please enter the correct OTP </p> )} - {toast.toastOpen && ( + {/* {toast.toastOpen && ( <p className="text-red-500 mt-2 text-sm"> You are not a registered institute. </p> - )} + )} */} </div> <Button moreClass="uppercase text-white w-full mt-7" @@ -222,9 +271,7 @@ const ApplicantLogin = () => { <p className="flex justify-center my-6"> <span className="text-primary-700 cursor-pointer" - onClick={() => { - setEnableOtp(false); - }} + onClick={handleBackClick} > Go back, re-enter the email id </span> diff --git a/apps/wrapper/applicant-portal/src/login/Register.jsx b/apps/wrapper/applicant-portal/src/login/Register.jsx index 49c73b19..8a04e70d 100644 --- a/apps/wrapper/applicant-portal/src/login/Register.jsx +++ b/apps/wrapper/applicant-portal/src/login/Register.jsx @@ -11,6 +11,7 @@ import { userService, applicantService } from "../services"; import { forkJoin, lastValueFrom } from "rxjs"; import { UP_DISTRICTS } from "../utils/constants"; import { ContextAPI } from "../utils/contextAPI"; +import messages from "../assets/json_files/messages.json"; export default function SelfRegistration() { const navigate = useNavigate(); @@ -50,6 +51,7 @@ export default function SelfRegistration() { ], attributes: { Role: applicantType, + module: "affiliation", }, }, }; @@ -71,43 +73,75 @@ export default function SelfRegistration() { }; try { - const keyCloakSignupRes = await userService.signup(userDetails); - console.log(keyCloakSignupRes); - - const addInstituteRes = await applicantService.addInstitute( - instituteDetails - ); - console.log(addInstituteRes); - - institutePocDetils.user_id = keyCloakSignupRes.data; - institutePocDetils["institute_id"] = - addInstituteRes.data.insert_institutes_one.id; - const addInstitutePocRes = await applicantService.addInstitutePoc( - institutePocDetils - ); - console.log(addInstitutePocRes); - - //institute update API to add Parent center code - const res = await applicantService.updateParentCode({"institute_id": addInstituteRes.data.insert_institutes_one.id,"parent_code": `P${addInstituteRes.data.insert_institutes_one.id}`}) - - //applicant notification - applicantService.sendPushNotification({ - title: "Applicant Registration", - body: `You are successfully registered as an Applicant`, - deviceToken: [`${getCookie("firebase_client_token")}`], - userId: keyCloakSignupRes.data, - }); - - //email notify - const emailData = { - recipientEmail: [`${userDetails.request.email}`], - emailSubject: `${applicantName} Applicant Registration`, - emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${applicantName},</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>You are successfully registered as an Applicant.</p></td></tr></table></body></html>`, - }; - - applicantService.sendEmailNotification(emailData); - - navigate(APPLICANT_ROUTE_MAP.dashboardModule.congratulations); + const checkIsEmailExistRes = await applicantService.checkIsEmailExist({ email: email }); + + if (checkIsEmailExistRes?.data + && (checkIsEmailExistRes?.data?.assessors?.length + || checkIsEmailExistRes?.data?.institutes?.length + || checkIsEmailExistRes?.data?.regulator?.length)) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: 'Email is Already Registered.', + toastType: "error", + })); + } else { + try { + const keyCloakSignupRes = await userService.signup(userDetails); + console.log(keyCloakSignupRes); + + const addInstituteRes = await applicantService.addInstitute( + instituteDetails + ) + // console.log(addInstituteRes); + + institutePocDetils.user_id = keyCloakSignupRes.data; + institutePocDetils["institute_id"] = + addInstituteRes.data.insert_institutes_one.id; + const addInstitutePocRes = await applicantService.addInstitutePoc( + institutePocDetils + ).then( + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "You are successfully registered as an Applicant", + toastType: "success", + })) + ); + //console.log(addInstitutePocRes); + + //institute update API to add Parent center code + const res = await applicantService.updateParentCode({ "institute_id": addInstituteRes.data.insert_institutes_one.id, "parent_code": `P${addInstituteRes.data.insert_institutes_one.id}` }) + + //applicant notification + applicantService.sendPushNotification({ + title: "Applicant Registration", + body: `You are successfully registered as an Applicant`, + deviceToken: [`${getCookie("firebase_client_token")}`], + userId: keyCloakSignupRes.data, + }); + + //email notify + // const emailBody = messages.ACCOUNT_CREATED_OTP_BASED_LOGIN_MAIL; + // const emailData = { + // recipientEmail: [`${userDetails.request.email}`], + // emailSubject: `${emailBody.SUBJECT}`, + // emailBody: `${emailBody.BODY.part1}${userDetails.request.firstName} ${userDetails.request.lastName}${emailBody.BODY.part2}${userDetails.request.email}${emailBody.BODY.part3}${userDetails.request.credentials[0].value}${emailBody.BODY.part4}` + // }; + + // applicantService.sendEmailNotification(emailData); + + navigate(APPLICANT_ROUTE_MAP.dashboardModule.congratulations); + } catch (error) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Error occured during applicant registration", + toastType: "error", + })); + } + + } } catch (error) { setToast((prevState) => ({ ...prevState, diff --git a/apps/wrapper/applicant-portal/src/pages/AllApplications.jsx b/apps/wrapper/applicant-portal/src/pages/AllApplications.jsx index a763cfa7..156ba6b0 100644 --- a/apps/wrapper/applicant-portal/src/pages/AllApplications.jsx +++ b/apps/wrapper/applicant-portal/src/pages/AllApplications.jsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from "react"; -import { Link, useNavigate } from "react-router-dom"; +import { Link, useNavigate,useParams } from "react-router-dom"; import { FormCard } from "../components"; import { useForm } from "react-hook-form"; @@ -8,22 +8,48 @@ import { setToLocalForage } from "../forms"; import { Select, Option } from "@material-tailwind/react"; import { FaAngleRight } from "react-icons/fa"; -import { MdFilterList } from "react-icons/md"; +import { Switch, Tooltip } from "@material-tailwind/react"; -import { formService } from "../services"; +import { formService , applicationService} from "../services"; import { getCookie } from "../utils"; import APPLICANT_ROUTE_MAP from "../routes/ApplicantRoute"; const AllApplications = () => { + + const { round, courseType } = useParams(); const [loadingForms, setLoadingForms] = useState(false); + + const [switchDisabled, setSwitchDisabled] = useState(true); + const [defaultChecked, setDefaultChecked] = useState(false); + const [selectedRound, setSelectedRound] = useState(round); + const [value, setValue] = useState(""); const [isSearchOpen, setIsSearchOpen] = useState("false"); + const [courseTypeOptions, setCourseTypeOptions] = useState([]); + + + const [formData, setFormData] = useState({ condition: { - _and: { form: {} }, + _and: { form: { + "form_status": { + "_eq": "Published" + }, + "_and": { + "course_type": { + "_eq": courseType + } + } + } }, assignee: { _eq: "applicant" }, - }, + round: { + _eq: selectedRound + } + } }); + + + const [availableForms, setAvailableForms] = useState([]); const instituteDetails = getCookie("institutes"); const navigate = useNavigate(); @@ -33,12 +59,15 @@ const AllApplications = () => { condition: { ...formData.condition, [name]: { - _eq: value, + _eq: value }, assignee: { - _eq: "applicant", + _eq: "applicant" }, - }, + round: { + _eq: selectedRound + } + } }); }; @@ -50,11 +79,19 @@ const AllApplications = () => { // offsetNo: 0, // })); - const postData = { searchString: `%${value}%` }; + const postData = {searchString:{_or:[{course_name:{_ilike:`%${value}%`}}], + _and:{round:{_eq:selectedRound},course_type:{_eq:courseType}, + assignee:{_eq:"applicant"},form: {form_status:{_eq: "Published"}} + } +}} + + + //const postData = { searchString: `%${value}%` }; if (value.trim() == "" || value.trim().length >= 3) { let formsResponse = await formService.searchForm(postData); if (formsResponse?.data?.courses) { setAvailableForms(formsResponse?.data?.courses); + // checkAvailableFormsToShow(selectedRound); } } }; @@ -67,6 +104,47 @@ const AllApplications = () => { setLoadingForms(false); }; + + const checkAvailableFormsToShow = async (roundSelected) => { + + const requestPayload = { + "round": roundSelected, + "applicant_id": instituteDetails?.[0].id, + "noc_path": true + // NOTE: "noc_path"= true returns the forms for which + // no noc is generated for this applicant_id for given round + } + const formsToOmitResp = await applicationService.formsToOmit( + requestPayload + ); + + const formsToOmit = formsToOmitResp?.data?.form_submissions + if (formsToOmitResp?.data?.form_submissions) { + const courseIdsToOmit = []; + for (let i = 0; i < formsToOmit.length; i++) { + courseIdsToOmit.push(availableForms?.filter((el) => { + if (el?.form.form_id === formsToOmit[i].course?.form?.form_id) { + return el.course_id + } + })) + } + const unique = [...new Set(courseIdsToOmit.flat().map((item) => item?.course_id))]; + for (let i = 0; i < unique.length; i++) { + setAvailableForms(availableForms?.filter(object => { + return object?.course_id !== unique[i]; + })); + } + + // setAvailableForms(rrr?.slice(0,4)) + } + /* applications.forEach((item, index) => { + // console.log(item) + if (item.noc_Path !== null && item.round === 1) { + setSwitchDisabled(false) + } + }); */ + } + const applyFormHandler = async (obj) => { await setToLocalForage("course_details", obj); let form_obj = obj?.formObject; @@ -78,19 +156,124 @@ const AllApplications = () => { navigate(`${APPLICANT_ROUTE_MAP.dashboardModule.createForm}/${file_name}`); }; +/* {"condition": {"round": {"_eq": 1}, + "course_type": {"_eq": "Nursing"}, + "course_level": {"_eq": "Degree"}, "assignee": {"_eq": "on-ground_assessor"}, + "application_type": {"_eq": "new_institute"}, + "form": {"labels": {"_eq": "infrastructure"}}}} */ + const handleClearFilter = () => { setFormData({ condition: { - assignee: { - _eq: "applicant", - }, - }, + _and: { form: { + "form_status": { + "_eq": "Published" + }, + "_and": { + "course_type": { + "_eq": courseType + } + } + } }, + assignee: { _eq: "applicant" }, + round: { + _eq: selectedRound + } + } }); }; useEffect(() => { + // console.log("courseTypecourseType from url",courseType) + //courseTypeOptions.push(courseType) + setCourseTypeOptions([courseType]) + round === "1" ? setSelectedRound("1") : setSelectedRound("2"); + }, []); + + useEffect(() => { + getAvailableForms(); - }, [formData]); + if(round === "1"){ + setSwitchDisabled(true); + setDefaultChecked(false); + } else { + setSwitchDisabled(false); + setDefaultChecked(true); + } + }, [selectedRound,formData,]); + + useEffect(() => { + checkAvailableFormsToShow(selectedRound); + }, [availableForms]); + +/* useEffect(() => { + checkAvailableFormsToShow(); + }, [applications]); + + const checkAvailableFormsToShow = async () => { + + if (!instituteDetails || !instituteDetails?.length) { + return; + } + + setLoadingApplications(true); + let round=1 ; + applications.forEach((item, index) => { + console.log(item) + if (item.noc_Path !== null && item.round === 1) { + round=2 + } + }); + setSelectedRound(round) + setLoadingApplications(false); + } */ + + const handleToggleChange = (e) => { + console.log("e.target.checkede.target.checked",e.target.checked) + if(e.target.checked){ + // getAvailableForms(); + setFormData({ + condition: { + _and: { form: { + "form_status": { + "_eq": "Published" + }, + "_and": { + "course_type": { + "_eq": courseType + } + } + } }, + assignee: { _eq: "applicant" }, + round: { + _eq: 2 + } + } + }); + setSelectedRound("2") + } else { + // getAvailableForms(); + setFormData({ + condition: { + _and: { form: { + "form_status": { + "_eq": "Published" + }, + "_and": { + "course_type": { + "_eq": courseType + } + } + } }, + assignee: { _eq: "applicant" }, + round: { + _eq: 1 + } + } + }); + setSelectedRound("1"); + } + } return ( <> @@ -111,7 +294,7 @@ const AllApplications = () => { <div className="container mx-auto py-12 px-3 min-h-[40vh]"> <div className="flex flex-col gap-4"> <div className="flex mb-12 justify-between grid grid-cols-10 gap-x-5 gap-y-8 sm:grid-cols-10"> - <div className="sm:col-span-3"> + <div className="sm:col-span-4"> <Select name="application_type" id="application_type" @@ -130,7 +313,7 @@ const AllApplications = () => { </Option> </Select> </div> - <div className="sm:col-span-3 "> + {/* <div className="sm:col-span-3 "> <Select name="course_type" id="course_type" @@ -140,11 +323,13 @@ const AllApplications = () => { size="lg" label="Course Type" > - <Option value="Nursing">Nursing</Option> - <Option value="Paramedical">Paramedical</Option> + + {courseTypeOptions.map((option, index) => ( + <option key={index} value={option}>{option}</option> + ))} </Select> - </div> - <div className="sm:col-span-3 "> + </div> */} + <div className="sm:col-span-4 "> <Select name="course_level" id="course_level" @@ -170,6 +355,19 @@ const AllApplications = () => { <div className="flex flex-col gap-3"> <div className="text-xl font-semibold">Application forms</div> + <div> + <Tooltip content="Round 2 forms are only applicable for applicants who have received NOC for Round 1 forms"> + <Switch + id="show-with-errors" + label={<span className="text-sm">Show Round 2 forms</span>} + onChange={handleToggleChange} + disabled={switchDisabled} + defaultChecked={defaultChecked} + /> + </Tooltip> + + </div> + {!loadingForms && availableForms.length === 0 && ( <div className="text-sm">There is no form available</div> )} @@ -204,7 +402,7 @@ const AllApplications = () => { {availableForms.map((form, index) => ( <FormCard form={form} key={index} onApply={applyFormHandler} /> ))} - {console.log("available forms-", availableForms)} + {/* {console.log("available forms-", availableForms)} */} </div> )} </div> diff --git a/apps/wrapper/applicant-portal/src/pages/CreateForm.jsx b/apps/wrapper/applicant-portal/src/pages/CreateForm.jsx index 30ad3ec5..703738e9 100644 --- a/apps/wrapper/applicant-portal/src/pages/CreateForm.jsx +++ b/apps/wrapper/applicant-portal/src/pages/CreateForm.jsx @@ -1,6 +1,7 @@ import React, { useEffect, useState, useRef, useContext } from "react"; import { Link, useParams, useNavigate } from "react-router-dom"; import XMLParser from "react-xml-parser"; +import { applicationService } from "../services"; import { FaAngleRight, @@ -10,6 +11,8 @@ import { FaRegTimesCircle, } from "react-icons/fa"; +import paymentConfigPostData from "../payment-config/config.json"; + import { getCookie, getFromLocalForage, @@ -17,6 +20,7 @@ import { updateFormData, getSpecificDataFromForage, removeAllFromLocalForage, + removeItemFromLocalForage, } from "./../forms"; import APPLICANT_ROUTE_MAP from "../routes/ApplicantRoute"; @@ -26,7 +30,14 @@ import CommonModal from "../Modal"; import Toast from "../components/Toast"; import "./loading.css"; -import { getFormData, base64ToPdf, getLocalTimeInISOFormat } from "../api"; +import { + getFormData, + base64ToPdf, + getLocalTimeInISOFormat, + saveApplicationDraft, + updateApplicationDraft, + deleteApplicationDraft, +} from "../api"; import { getPrefillXML, saveFormSubmission, @@ -36,15 +47,16 @@ import { import { generate_uuidv4 } from "../utils"; import { applicantService } from "../services"; import { ContextAPI } from "../utils/contextAPI"; +import StatusLogModal from "./StatusLogModal"; const ENKETO_URL = process.env.REACT_APP_ENKETO_URL; let previewFlag = false; let isFormInPreview = false; +let ogaRevertedCount = 0; const CreateForm = (props) => { const navigate = useNavigate(); - - let { formName, formId, applicantStatus } = useParams(); + let { formName, formId, applicantStatus, paymentStage } = useParams(); let [encodedFormURI, setEncodedFormURI] = useState(""); let [paymentDetails, setPaymentDetails] = useState(""); let [onFormSuccessData, setOnFormSuccessData] = useState(undefined); @@ -52,6 +64,7 @@ const CreateForm = (props) => { let [onFormFailureData, setOnFormFailureData] = useState(undefined); let [isDownloading, setIsDownloading] = useState(false); let [previewModal, setPreviewModal] = useState(false); + let [formLoaded, setFormLoaded] = useState(false); const { setToast } = useContext(ContextAPI); // Spinner Element @@ -67,12 +80,11 @@ const CreateForm = (props) => { longitude: null, }); const [onSubmit, setOnSubmit] = useState(false); + const [reloadForm, setReloadForm] = useState(true); - const { userRepresentation } = getCookie("userData"); - const userId = userRepresentation?.id; + const userId = getCookie("userData")?.id; const instituteDetails = getCookie("institutes"); - - let formData = {}; + const [openStatusModel, setOpenStatusModel] = useState(false); const formSpec = { skipOnSuccessMessage: true, @@ -100,6 +112,7 @@ const CreateForm = (props) => { const [encodedFormSpec, setEncodedFormSpec] = useState( encodeURI(JSON.stringify(formSpec?.formId)) ); + const iframeRef = useRef(null); const fetchFormData = async () => { let formData = {}; @@ -107,14 +120,21 @@ const CreateForm = (props) => { let data = await getFromLocalForage( `${userId}_${formName}_${new Date().toISOString().split("T")[0]}` ); - if (data) { formData = data; } else { - if (formId) { + if (formId !== undefined) { const postData = { form_id: formId }; const res = await getFormData(postData); formData = res?.data?.form_submissions[0]; + ogaRevertedCount = formData?.oga_reverted_count; + await setToLocalForage( + `${userId}_${startingForm}_${new Date().toISOString().split("T")[0]}`, + { + formData: formData.form_data, + imageUrls: { ...formData.imageUrls }, + } + ); setPaymentDetails(formData?.payment_status); setFormDataNoc(formData); } @@ -132,6 +152,99 @@ const CreateForm = (props) => { setEncodedFormURI(formURI); }; + const getDraftApplicationDetail = async (id) => { + let formData = {}; + let data = await getFromLocalForage( + `${userId}_${formName}_${new Date().toISOString().split("T")[0]}` + ); + if (data) { + formData = data; + } else { + const requestPayload = { + searchString: { + applicant_id: { + _eq: instituteDetails?.[0].id || 11, + }, + id: { + _eq: id, + }, + }, + offsetNo: 0, + limit: 100, + }; + const draftApplicationResponse = await applicationService.getDraftForms( + requestPayload + ); + // console.log("response =>", draftApplicationResponse); + formData = draftApplicationResponse?.data?.institute_form_drafts[0]; + // setPaymentDetails(formData?.payment_status); + await setToLocalForage( + `${userId}_${startingForm}_${new Date().toISOString().split("T")[0]}`, + { + formData: formData.form_data, + imageUrls: { ...formData.imageUrls }, + } + ); + setFormDataNoc(formData); + } + + let fileGCPPath = + process.env.REACT_APP_GCP_AFFILIATION_LINK + formName + ".xml"; + + let formURI = await getPrefillXML( + `${fileGCPPath}`, + formSpec.onSuccess, + formData?.formData || formData?.form_data, + formData?.imageUrls + ); + setEncodedFormURI(formURI); + }; + + const initiatePaymentForNewForm = async () => { + try { + const payloadFromForage = await getFromLocalForage(`common_payload`); + // console.log(payloadFromForage) + + let reqBody = { + object: { + form_data: payloadFromForage.common_payload.form_data, + form_name: payloadFromForage.common_payload.form_name, + assessment_type: payloadFromForage.common_payload.form_name, + submission_status: true, + applicant_id: instituteDetails?.[0]?.id, + form_status: "Initial Draft", + round: payloadFromForage.common_payload.round, + course_type: payloadFromForage.common_payload.course_type, + course_level: payloadFromForage.common_payload.course_level, + course_id: payloadFromForage.common_payload.course_id, + payment_status: "Pending", + }, + }; + await applicantService.saveInitialFormSubmission(reqBody); + + paymentConfigPostData.created_by = userId; + + const paymentRes = await applicantService.initiatePaymentForNewForm( + paymentConfigPostData + ); + await setToLocalForage(`refNo`, { + refNo: paymentRes?.data?.referenceNo, + }); + // await applicantService.savePaymentRefNumber(paymentRes?.data?.referenceNo); + window.open(paymentRes?.data?.redirectUrl); + // window.location.replace(paymentRes?.data?.redirectUrl) + } catch (error) { + console.log(error); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: + "Payment gateway seems to be not responding. Please try again later.", + toastType: "error", + })); + } + }; + const afterFormSubmit = async (e) => { const data = typeof e.data === "string" ? JSON.parse(e.data) : e.data; @@ -141,9 +254,15 @@ const CreateForm = (props) => { if (data?.state === "ON_FORM_SUCCESS_COMPLETED") { isFormInPreview = true; if (!previewFlag) { - await fetchFormData(); + if (applicantStatus !== "draft" || applicantStatus === undefined) { + await fetchFormData(); + } else { + getDraftApplicationDetail(); + } handleRenderPreview(); } else { + console.log("aaaaaa"); + console.log(applicantStatus); handleSubmit(); } } @@ -182,6 +301,10 @@ const CreateForm = (props) => { if (!section) return; for (var i = 0; i < section?.length; i++) { var inputElements = section[i].querySelectorAll("input"); + var buttonElements = section[i].querySelectorAll("button"); + buttonElements.forEach((button) => { + button.disabled = true; + }); inputElements.forEach((input) => { input.disabled = true; }); @@ -192,8 +315,9 @@ const CreateForm = (props) => { const handleSubmit = async () => { const updatedFormData = await updateFormData(formSpec.start, userId); + console.log("updatedFormData ====>", updatedFormData); const course_details = await getSpecificDataFromForage("course_details"); - + console.log(course_details); const common_payload = { form_data: updatedFormData, assessment_type: "applicant", @@ -202,60 +326,264 @@ const CreateForm = (props) => { round: course_details?.round, course_type: course_details?.course_type, course_level: course_details?.course_level, - course_id: course_details?.course_id, + course_id: course_details?.course_id || course_details?.course?.course_id, + reverted_count: course_details?.reverted_count, }; - console.log("common_payload - ", common_payload); + await setToLocalForage(`common_payload`, { + formSpecstart: formSpec.start, + userId, + common_payload, + paymentStage: "firstStage", + formId, + }); + + console.log(common_payload); if (!applicantStatus) { - await saveFormSubmission({ - schedule_id: null, - assessor_id: null, - applicant_id: instituteDetails?.[0]?.id, - submitted_on: new Date().toJSON().slice(0, 10), - form_status: "Application Submitted", - ...common_payload, - }); + initiatePaymentForNewForm(); } else { + triggerFormSubmission(); + } + }; + + const triggerFormSubmission = async () => { + const formDATA = await getFromLocalForage(`common_payload`); + try { + const commonPayload = formDATA?.common_payload; + if (applicantStatus === "draft" || applicantStatus === "undefined") { + //new form + console.log("Saving new form.."); + console.log(commonPayload); + const response = await saveFormSubmission({ + schedule_id: null, + assessor_id: null, + applicant_id: instituteDetails?.[0]?.id, + submitted_on: new Date().toJSON().slice(0, 10), + reverted_count: 0, + form_status: + commonPayload.round === 1 + ? "Application Submitted" + : "DA Completed", + ...commonPayload, + }); + // console.log(response); + // if the application is drafted, remove it's entry post form submission + if (response) { + // form submission success message + const draft = await getFromLocalForage("draft"); + console.log("draft ===>", draft); + if (draft && draft.draftId !== "") { + const request = { + id: draft.draftId, + }; + console.log("req", request); + try { + await deleteApplicationDraft(request); + removeItemFromLocalForage("draft"); + } catch (error) { + console.log("error =>", error); + } + } + isFormInPreview = false; + setOnSubmit(false); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Form Submitted Successfully!.", + toastType: "success", + })); + + setTimeout( + () => + navigate(`${APPLICANT_ROUTE_MAP.dashboardModule.my_applications}`), + 1500 + ); + // await removeAllFromLocalForage(); + } + console.log( + response?.data?.insert_form_submissions?.returning[0]?.form_id + ); + const tempStore = await getFromLocalForage(`refNo`); + // console.log(tempStore.refNo) + const reqBody = { + refNo: tempStore.refNo, + status: "Paid", + formId: + response?.data?.insert_form_submissions?.returning[0]?.form_id, + }; + + await applicantService.updateTransactionStatusByRefNo(reqBody); + } else { + /* await updateFormSubmission({ + form_id: formId, + applicant_id: instituteDetails?.[0]?.id, + updated_at: getLocalTimeInISOFormat(), + form_status: "Resubmitted", + ...commonPayload, + }); + removeAllFromLocalForage(); */ + let thisFormStatus = ""; + ogaRevertedCount > 0 ? thisFormStatus = "OGA Completed" : thisFormStatus = "Resubmitted"; + console.log("ogaRevertedCount===>", ogaRevertedCount) await updateFormSubmission({ form_id: formId, applicant_id: instituteDetails?.[0]?.id, updated_at: getLocalTimeInISOFormat(), - form_status: "Resubmitted", - ...common_payload, + form_status: thisFormStatus, //"Resubmitted", + ...commonPayload, }); + // Delete the form and course details data from the Local Forage + removeAllFromLocalForage(); + } + + isFormInPreview = false; + setOnSubmit(false); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Form Submitted Successfully!.", + toastType: "success", + })); + + setTimeout( + () => + navigate(`${APPLICANT_ROUTE_MAP.dashboardModule.my_applications}`), + 1500 + ); + } catch (error) { + console.log("Something went wrong", error); } - - // Delete the form and course details data from the Local Forage - removeAllFromLocalForage(); - isFormInPreview = false; - - setOnSubmit(false); - setToast((prevState) => ({ - ...prevState, - toastOpen: true, - toastMsg: "Form Submitted Successfully!.", - toastType: "success", - })); - - setTimeout( - () => navigate(`${APPLICANT_ROUTE_MAP.dashboardModule.my_applications}`), - 1500 - ); }; const handleDownloadNocOrCertificate = () => { + //console.log(formDataNoc) + let url = ""; if (formDataNoc.round == 1) { - window.open(formDataNoc?.noc_Path, "_blank"); + // window.open(formDataNoc?.noc_Path, "_blank"); + url = formDataNoc?.noc_Path } else { - window.open(formDataNoc?.certificate_Path, "_blank"); + // window.open(formDataNoc?.certificate_Path, "_blank"); + url = formDataNoc?.certificate_Path } + const filename = formDataNoc?.certificate_fileName || formDataNoc?.noc_fileName; + + fetch(url) + .then((response) => response.blob()) + .then((blob) => { + const blobURL = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = blobURL; + a.style.display = "none"; + + if (filename && filename.length !== 0) { + a.download = filename; + } + document.body.appendChild(a); + a.click(); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: + "NOC / Certificate downloaded successfully.", + toastType: "success", + })); + }) + .catch((error) => { + console.error(error); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: + "Failed to download NOC / Certificate. Please try again later.", + toastType: "error", + })); + }); }; const handleFormEvents = async (startingForm, afterFormSubmit, e) => { + const eventFormData = + typeof e.data === "string" ? JSON.parse(e.data) : e.data; + + //console.log("event =>", e); + // if(applicantStatus === 'draft' && (eventFormData?.formData !== undefined && eventFormData?.formData?.instance !== "formLoad")) { + // let fileGCPPath = + // process.env.REACT_APP_GCP_AFFILIATION_LINK + formName + ".xml"; + + // let formURI = await getPrefillXML( + // `${fileGCPPath}`, + // formSpec.onSuccess, + // eventFormData.formData, + // eventFormData?.fileURLs + // ); + // setEncodedFormURI(formURI); + // } + if ( + eventFormData?.formData?.draft !== "" && + eventFormData?.formData?.draft === true + ) { + const course_details = await getSpecificDataFromForage("course_details"); + console.log("courseDetails ===>", course_details); + const requestBody = { + object: { + applicant_id: instituteDetails?.[0]?.id, + form_status: "Draft", + form_name: formName, + assessment_type: course_details?.form?.assignee, + round: course_details?.form?.round, + course_type: course_details?.course_type, + course_level: course_details?.course_level, + course_name: course_details?.form?.course_mapping, + course_id: course_details?.course_id, + // updated_by: userId, + created_by: userId, + form_data: eventFormData?.formData?.xml, + // form_id: course_details?.form?.form_id, + created_at: new Date().toJSON().slice(0, 10), + }, + }; + if (formId !== undefined) { + const requestBody = { + id: formId, + formData: eventFormData?.formData?.xml, + }; + const res = await updateApplicationDraft(requestBody); + if (res) { + console.log("record saved as draft"); + setTimeout( + () => + navigate( + `${APPLICANT_ROUTE_MAP.dashboardModule.my_applications}` + ), + 1500 + ); + // to remove all data from local forage + removeAllFromLocalForage(); + } + } else { + const res = await saveApplicationDraft(requestBody); + if (res) { + console.log("record saved as draft"); + setTimeout( + () => + navigate( + `${APPLICANT_ROUTE_MAP.dashboardModule.my_applications}` + ), + 1500 + ); + // to remove all data from local forage + removeAllFromLocalForage(); + } + } + + return; + } + if (typeof e.data === "string" && e.data.includes("formLoad")) { + setFormLoaded(true); + return; + } if (typeof e.data === "string" && e.data.includes("webpackHot")) { return; } - if ( (ENKETO_URL === `${e.origin}/enketo` || ENKETO_URL === `${e.origin}/enketo/`) && @@ -273,7 +601,6 @@ const CreateForm = (props) => { // let prevData = await getFromLocalForage( // `${userId}_${startingForm}_${new Date().toISOString().split("T")[0]}` // ); - await setToLocalForage( `${userId}_${startingForm}_${new Date().toISOString().split("T")[0]}`, { @@ -295,6 +622,7 @@ const CreateForm = (props) => { }; const handleGoBack = () => { + removeAllFromLocalForage(); navigate(`${APPLICANT_ROUTE_MAP.dashboardModule.my_applications}`); }; @@ -329,45 +657,176 @@ const CreateForm = (props) => { var iframeContent = iframeElem?.contentDocument || iframeElem?.contentWindow.document; if (!iframeContent) return; - if (applicantStatus && applicantStatus?.toLowerCase() !== "returned") { + if (applicantStatus && applicantStatus?.toLowerCase() !== "draft") { + iframeContent.getElementById("save-draft").style.display = "none"; + } + if ( + applicantStatus && + applicantStatus?.toLowerCase() !== "draft" && + applicantStatus?.toLowerCase() !== "returned" + ) { + iframeContent.getElementById("submit-form").style.display = "none"; + } + if ( + applicantStatus && + applicantStatus?.toLowerCase() !== "returned" && + applicantStatus.toLowerCase() !== "draft" + ) { var section = iframeContent?.getElementsByClassName("or-group"); if (!section) return; for (var i = 0; i < section?.length; i++) { var inputElements = section[i].querySelectorAll("input"); + var buttonElements = section[i].querySelectorAll("button"); + + buttonElements.forEach((button) => { + button.disabled = true; + }); inputElements.forEach((input) => { + input.disabled = true; + }); + } + } + if (applicantStatus && applicantStatus?.toLowerCase() === "returned") { + var formSection = iframeContent?.getElementsByClassName("or-group"); + if (!formSection) return; + // case radio elements + for (var j = 0; j < formSection?.length; j++) { + const inputElements1 = formSection[j].querySelectorAll("input"); + var buttonElements1 = formSection[j].querySelectorAll("button"); + + buttonElements1.forEach((button) => { + button.disabled = true; + }); + // const buttonElements1 = formSection[j].querySelectorAll("button"); + // const selectElements1 = formSection[j].querySelectorAll("select"); + inputElements1.forEach((input) => { input.disabled = true; + if ( + input?.type === "radio" + ) { + if(input?.name?.toLowerCase().includes("desktop") && + input?.value.toLowerCase() === "reject" && + input.checked === true) { + const parentElement = input.parentNode.parentNode.parentNode; + const previousSiblingElement = parentElement.parentNode.previousSibling; + if (previousSiblingElement) { + const children = previousSiblingElement.children; + console.log("children =>", children); + for (let k = 0; k < children.length; k++) { + if ( + children[k].name !== undefined && + children[k].name?.includes("applicant") + ) { + if(children[k].tagName.toLowerCase() === 'select') { + if (children[k + 1]) { + const firstChild = children[k + 1].children[0]; + firstChild.disabled = false; + } + else { + const firstChild = children[k + 1].children[0]; + firstChild.disabled = true; + } + } + else if(children[k].tagName.toLowerCase() === 'input') { + if(children[k].name.includes('applicant_url')) { + const parentNode = children[k].parentNode; + const sibling = parentNode.previousSibling; + if(sibling) { + const children = sibling.children; + for(let l = 0; l < children.length; l++) { + if(children[l].tagName === 'INPUT') { + children[l+1].children[0].disabled = false; + } + } + } + } + children[k].disabled = false; + } + } + } + } + } + else { + input.disabled = true; + } + } }); } - - iframeContent.getElementById("submit-form").style.display = "none"; + // optionElement styling + var optionElements = iframeContent.getElementsByClassName('option-label'); + if (!optionElements) return; + for(var k = 0; k < optionElements.length; k++ ) { + optionElements[k].style.color = '#333333'; + } + } + // disabling input fields in fresh form + // if(formId === undefined) { + // var section1 = iframeContent?.getElementsByClassName("or-group"); + // for (let j = 0; j < section1?.length; j++) { + // const inputElements1 = section1[j].querySelectorAll("input"); + + // inputElements1.forEach((input) => { + // if(input?.name?.toLowerCase().includes('desktop')) { + // input.previousSibling.style.display = 'none'; + // input.style.display = 'none'; + + // } + // if(input?.type === 'radio' && (input?.name?.toLowerCase().includes('desktop'))) { + // const parentNode = input?.parentNode?.parentNode; + // parentNode.style.display = 'none'; + // parentNode.previousSibling.style.display = 'none'; + // } + // }) + // } + // } // Need to work on Save draft... - iframeContent.getElementById("save-draft").style.display = "none"; + // iframeContent.getElementById("save-draft").style.display = "none"; // var draftButton = iframeContent.getElementById("save-draft"); } }; useEffect(() => { - fetchFormData(); + if (applicantStatus === "draft") { + setDraftIdToLocal(); + const draftApplicationId = formId; + getDraftApplicationDetail(draftApplicationId); + } else { + fetchFormData(); + } bindEventListener(); - if (spinner) { spinner.style.display = "flex"; } - setTimeout(() => { - checkIframeLoaded(); - }, 1500); - // To clean all variables return () => { previewFlag = false; - removeAllFromLocalForage(); + // removeAllFromLocalForage(); window.removeEventListener("message", handleEventTrigger); }; }, []); + const setDraftIdToLocal = async () => { + await setToLocalForage(`draft`, { + draftId: formId, + }); + }; + + useEffect(() => { + if (formLoaded === true) { + checkIframeLoaded(); + } + }, [formLoaded]); + + useEffect(() => { + console.log(paymentStage); + if (paymentStage === "firstStage") { + triggerFormSubmission(); + } + }, [paymentStage]); + return ( <div> <div className="h-[48px] bg-white drop-shadow-sm"> @@ -394,22 +853,41 @@ const CreateForm = (props) => { onClick={handleGoBack} className="bg-gray-100 py-2 mb-8 font-medium rounded-[4px] px-2 text-blue-900 border border-gray-500 flex flex-row items-center gap-3" > - Back to my application + Back to my application done </button> - <button - onClick={handleDownloadNocOrCertificate} - disabled={formDataNoc.form_status !== "Approved" ? true : false} - className={`${ - formDataNoc.form_status !== "Approved" - ? "cursor-not-allowed border border-gray-500 bg-white rounded-[4px] text-gray-200 px-2 h-[44px]" - : "border border-blue-900 bg-blue-900 text-white rounded-[4px] px-2 h-[44px]" - }`} - > - Download NOC/Certificate - </button> + {applicantStatus !== "draft" && ( + <> + <button + onClick={() => setOpenStatusModel(true)} + className="bg-gray-100 py-2 mb-8 font-medium rounded-[4px] px-2 text-blue-900 border border-gray-500 flex flex-row items-center gap-3" + > + View status log + </button> + + <button + onClick={handleDownloadNocOrCertificate} + disabled={ + formDataNoc.form_status !== "Approved" ? true : false + } + className={`${ + formDataNoc.form_status !== "Approved" + ? "cursor-not-allowed border border-gray-500 bg-white rounded-[4px] text-gray-200 px-2 h-[44px]" + : "border border-blue-900 bg-blue-900 text-white rounded-[4px] px-2 h-[44px]" + }`} + > + Download NOC / Certificate + </button> + </> + )} </div> </div> + {openStatusModel && ( + <StatusLogModal + closeStatusModal={setOpenStatusModel} + formId={formId} + /> + )} <Card moreClass="shadow-md"> <div className="flex flex-col gap-5"> @@ -426,14 +904,18 @@ const CreateForm = (props) => { </button> </div> <div className="flex"> - <iframe - id="enketo-applicant-form" - title="form" - src={`${ENKETO_URL}/preview?formSpec=${encodeURI( - JSON.stringify(formSpec) - )}&xform=${encodedFormURI}&userId=${userId}`} - style={{ minHeight: "100vh", width: "100%" }} - /> + {paymentStage === undefined && encodedFormURI !== "" && ( + <iframe + id="enketo-applicant-form" + title="form" + ref={iframeRef} + onLoad={checkIframeLoaded} + src={`${ENKETO_URL}/preview?formSpec=${encodeURI( + JSON.stringify(formSpec) + )}&xform=${encodedFormURI}&userId=${userId}`} + style={{ minHeight: "100vh", width: "100%" }} + /> + )} </div> </div> </Card> @@ -510,4 +992,4 @@ const CreateForm = (props) => { ); }; -export default CreateForm; +export default CreateForm; \ No newline at end of file diff --git a/apps/wrapper/applicant-portal/src/pages/Dashboard.jsx b/apps/wrapper/applicant-portal/src/pages/Dashboard.jsx index bfc75c3e..0701d5e1 100644 --- a/apps/wrapper/applicant-portal/src/pages/Dashboard.jsx +++ b/apps/wrapper/applicant-portal/src/pages/Dashboard.jsx @@ -7,12 +7,12 @@ import APPLICANT_ROUTE_MAP from "../routes/ApplicantRoute"; const Dashboard = () => { const navigate = useNavigate(); - useEffect(()=>{ - let userDetails = getCookie("userData") - if(userDetails?.userRepresentation?.username){ - navigate(APPLICANT_ROUTE_MAP.dashboardModule.my_applications) - } - },[]) + // useEffect(()=>{ + // let userDetails = getCookie("userData") + // if(userDetails?.userRepresentation?.username){ + // navigate(APPLICANT_ROUTE_MAP.dashboardModule.my_applications) + // } + // },[]) return ( <div className="flex flex-col"> <Header /> diff --git a/apps/wrapper/applicant-portal/src/pages/MyApplications.jsx b/apps/wrapper/applicant-portal/src/pages/MyApplications.jsx index 53e44338..bf1122e9 100644 --- a/apps/wrapper/applicant-portal/src/pages/MyApplications.jsx +++ b/apps/wrapper/applicant-portal/src/pages/MyApplications.jsx @@ -1,43 +1,212 @@ -import React, { useEffect, useState } from "react"; +import React, { useEffect, useState, useContext } from "react"; import { Link, useNavigate } from "react-router-dom"; import { Button, ApplicationCard, FormCard } from "../components"; import APPLICANT_ROUTE_MAP from "../routes/ApplicantRoute"; import { applicationService, formService } from "../services"; import { getCookie } from "../utils"; -import { setToLocalForage } from "../forms"; +import { removeAllFromLocalForage, setToLocalForage } from "../forms"; +import { Switch, Tooltip } from "@material-tailwind/react"; +import { ContextAPI } from "../utils/contextAPI"; + const MyApplications = () => { const [loadingApplications, setLoadingApplications] = useState(false); const [loadingForms, setLoadingForms] = useState(false); + const [switchDisabled, setSwitchDisabled] = useState(true); + const [applications, setApplications] = useState([]); const [availableForms, setAvailableForms] = useState([]); + const [selectedRound, setSelectedRound] = useState(1); + const [courseType, setCourseType] = useState(""); + const { setToast } = useContext(ContextAPI); const [draftApplications, setDraftApplications] = useState([]); + + const instituteDetails = getCookie("institutes"); const navigate = useNavigate(); useEffect(() => { - getApplications(); - getAvailableForms(); + removeAllFromLocalForage(); + getProfileDetails(); }, []); - const getApplications = async () => { + + useEffect(() => { + getApplications(); + getDraftApplications(); + getAllAvailableForms(1); + setSelectedRound(1); + }, [courseType]); + + useEffect(() => { + getAllAvailableForms(selectedRound); + }, [selectedRound]); + + + + useEffect(() => { + checkAvailableFormsToShow(selectedRound); + }, [applications]); + + + const getProfileDetails = async () => { + if (!instituteDetails || !instituteDetails?.length) { + return; + } + console.log(instituteDetails[0].course_applied) + setCourseType(instituteDetails[0].course_applied) + /* const instituteViewDetails = { + institute_id: instituteData[0]?.id, + }; + + try { + const response = await profileService.getProfileView( + instituteViewDetails + ); + + const instituteDetails = response.data.institutes[0]; + console.log(instituteDetails) + } catch (error) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Something went wrong.", + toastType: "error", + })); + console.error("Can not see profile due to some error:", error); + } */ + } + + const checkAvailableFormsToShow = async (roundSelected) => { + if (!instituteDetails || !instituteDetails?.length) { + return; + } + + setLoadingApplications(true); + + //getAllAvailableForms(round) + const requestPayload = { + "round": roundSelected, + "applicant_id": instituteDetails?.[0].id, + "noc_path": true + // NOTE: "noc_path"= true returns the forms for which + // no noc is generated for this applicant_id for given round + } + const formsToOmitResp = await applicationService.formsToOmit( + requestPayload + ); + + const formsToOmit = formsToOmitResp?.data?.form_submissions + if (formsToOmitResp?.data?.form_submissions) { + const courseIdsToOmit = []; + for (let i = 0; i < formsToOmit.length; i++) { + courseIdsToOmit.push(availableForms?.filter((el) => { + if (el?.form.form_id === formsToOmit[i].course?.form?.form_id) { + return el.course_id + } + })) + } + const unique = [...new Set(courseIdsToOmit.flat().map((item) => item?.course_id))]; + for (let i = 0; i < unique.length; i++) { + setAvailableForms(availableForms?.filter(object => { + return object?.course_id !== unique[i]; + })); + } + + // setAvailableForms(rrr?.slice(0,4)) + } + applications.forEach((item, index) => { + // console.log(item) + if (item.noc_Path !== null && item.round === 1) { + setSwitchDisabled(false) + } + }); + setLoadingApplications(false); + } + + + const getDraftApplications = async () => { if (!instituteDetails || !instituteDetails?.length) { return; } setLoadingApplications(true); - const requestPayload = { applicant_id: instituteDetails?.[0].id || 11 }; - const applicationsResponse = await applicationService.getData( + const requestPayload = { + "searchString": { + "applicant_id": { + _eq: instituteDetails?.[0].id || 11 + }, + "_and": { + "id": { + "_gte": 0 + } + } + }, + offsetNo: 1, + limit: 100 + } + const draftApplicationResponse = await applicationService.getDraftForms( requestPayload ); - if (applicationsResponse?.data?.form_submissions) { - setApplications(applicationsResponse?.data?.form_submissions); + /* draftApplicationResponse?.data?.institute_form_drafts.forEach((item, index) => { + console.log(item) + if (item.form_id === 706) { + item.noc_Path = "noc-path-isthere"; + item.noc_fileName = "noc-filename"; + } + }); */ + + if (draftApplicationResponse?.data?.institute_form_drafts) { + setDraftApplications(draftApplicationResponse?.data?.institute_form_drafts); } + console.log("draft Applications =>", draftApplicationResponse?.data?.institute_form_drafts); setLoadingApplications(false); }; + + const getApplications = async () => { + if (!instituteDetails || !instituteDetails?.length) { + return; + } + + setLoadingApplications(true); + - const getAvailableForms = async () => { + try { + const requestPayload = { + applicant_id: instituteDetails?.[0].id + }; + const applicationsResponse = await applicationService.getData( + requestPayload + ); + + /* applicationsResponse?.data?.form_submissions.forEach((item, index) => { + //console.log(item) + if (item.form_id === 833) { + item.noc_Path = "noc-path-isthere"; + item.noc_fileName = "noc-filename"; + } + }); */ + console.log(applicationsResponse?.data?.form_submissions.sort( (a,b) => b.form_id - a.form_id )) + // let arr = applicationsResponse?.data?.form_submissions.sort( (a,b) => b.form_status - a.form_status ) + if (applicationsResponse?.data?.form_submissions) { + setApplications( applicationsResponse?.data?.form_submissions.sort( (a,b) => b.form_status - a.form_status )); + + }//arun + setLoadingApplications(false); + + } catch (error) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Something went wrong.", + toastType: "error", + })); + } + + }; + + const getAllAvailableForms = async (round) => { if (!instituteDetails || !instituteDetails?.length) { return; } @@ -45,24 +214,52 @@ const MyApplications = () => { setLoadingForms(true); const requestPayload = { condition: { - _and: { form: {} }, + _and: { form: { + "form_status": { + "_eq": "Published" + } + }, + "_and": { + "course_type": { + "_eq": courseType + } + } }, assignee: { _eq: "applicant" }, + round: { + _eq: round + } }, }; const formsResponse = await formService.getData(requestPayload); if (formsResponse?.data?.courses) { - setAvailableForms(formsResponse?.data?.courses.slice(0, 4)); + const courses = formsResponse?.data?.courses + /* setAvailableForms((prevState) => ({ + ...prevState, + courses + })); */ + setAvailableForms(courses); + // setAvailableForms(formsResponse?.data?.courses); } setLoadingForms(false); }; - const handleViewApplicationHandler = (formObj) => { - navigate( - `${APPLICANT_ROUTE_MAP.dashboardModule.createForm}/${ - formObj?.form_name - }/${formObj?.form_id}/${formObj.form_status?.toLowerCase()}` - ); + const handleViewApplicationHandler = async (formObj) => { + console.log(formObj) + await setToLocalForage("course_details", formObj); + if(formObj?.form_id) { + navigate( + `${APPLICANT_ROUTE_MAP.dashboardModule.createForm}/${formObj?.form_name + }/${formObj?.form_id}/${formObj.form_status?.toLowerCase()}` + ); + } + else { + navigate( + `${APPLICANT_ROUTE_MAP.dashboardModule.createForm}/${formObj?.form_name + }/${formObj.id}/${formObj.form_status?.toLowerCase()}` + ); + } + }; const handleApplyFormHandler = async (obj) => { @@ -76,6 +273,23 @@ const MyApplications = () => { navigate(`${APPLICANT_ROUTE_MAP.dashboardModule.createForm}/${file_name}`); }; + + const handleToggleChange = (e) => { + + if(e.target.checked){ + getAllAvailableForms(2); + setSelectedRound(2) + } else { + getAllAvailableForms(1) + ;setSelectedRound(1); + } + }; + + const navigateToAllApplications= () => { + navigate(`${APPLICANT_ROUTE_MAP.dashboardModule.all_applications}/${selectedRound}/${courseType}`); + + }; + return ( <> <div className="h-[48px] bg-white drop-shadow-sm"> @@ -87,13 +301,25 @@ const MyApplications = () => { <div className="container mx-auto py-12 px-3 min-h-[40vh]"> <div className="flex flex-col gap-3"> <div className="text-xl font-semibold">My Applications</div> - {!loadingApplications && applications.length === 0 && ( + {!loadingApplications && applications?.length === 0 && ( <div className="text-sm"> There is no active applications. Select one from the below list to apply. </div> )} - {!loadingApplications && applications.length > 0 && ( + {/** DRAFT APPLICATIONS */} + {!loadingApplications && draftApplications?.length > 0 && ( + <div className="flex flex-wrap"> + {draftApplications.map((application) => ( + <ApplicationCard + application={application} + key={application.form_id} + onView={handleViewApplicationHandler} + /> + ))} + </div> + )} + {!loadingApplications && applications?.length > 0 && ( <div className="flex flex-wrap"> {applications.map((application) => ( <ApplicationCard @@ -113,12 +339,19 @@ const MyApplications = () => { <div className="flex flex-row"> <div className="flex grow"> <div className="flex flex-col gap-3"> - <div className="text-xl font-semibold">Application form</div> - {!loadingForms && availableForms.length === 0 && ( - <div className="text-sm">There is no form available</div> - )} - {!loadingForms && availableForms.length > 0 && ( - <div className="text-sm"> + <div className="text-xl font-semibold">Application forms</div> + { <Tooltip arrow content="Round 2 forms are only applicable for applicants who have received NOC for Round 1 forms"> + <Switch + id="show-with-errors" + label={<span className="text-sm">Show Round 2 forms</span>} + onChange={handleToggleChange} + disabled={switchDisabled} + /> + </Tooltip>} + + {!loadingForms && availableForms?.length === 0 && ( + <div className="text-sm">There is no form available + <br /> These are the available forms for you to apply. Click on any of them to start filling </div> @@ -126,38 +359,42 @@ const MyApplications = () => { </div> </div> <div className="flex items-center"> - {!loadingForms && availableForms.length > 0 && ( - <Link - to={APPLICANT_ROUTE_MAP.dashboardModule.all_applications} - > - <Button - moreClass="text-primary-500 font-bold uppercase border-gray-500" - style={{ - backgroundColor: "#fff", - border: "1px solid #d1d5db", - }} - text="See all" - ></Button> - </Link> + {!loadingForms && availableForms?.length > 0 && ( + /* <Link + to={ + APPLICANT_ROUTE_MAP.dashboardModule.all_applications + } + > */ + <Button + moreClass="text-primary-500 font-bold uppercase border-gray-500" + style={{ + backgroundColor: "#fff", + border: "1px solid #d1d5db", + }} + text="See all" + onClick={() => navigateToAllApplications()} + ></Button> + /* </Link> */ )} - </div> + </div> + </div> + {!loadingForms && availableForms?.length > 0 && ( + <div className="flex flex-wrap"> + { console.log(availableForms)} + {availableForms.slice(0,4).map((form, index) => ( + <FormCard + form={form} + key={index} + onApply={handleApplyFormHandler} + /> + ))} + </div> + )} </div> - {!loadingForms && availableForms.length > 0 && ( - <div className="flex flex-wrap"> - {availableForms.map((form, index) => ( - <FormCard - form={form} - key={index} - onApply={handleApplyFormHandler} - /> - ))} - </div> - )} </div> </div> - </div> - </> - ); + </> + ); }; -export default MyApplications; + export default MyApplications; diff --git a/apps/wrapper/applicant-portal/src/pages/PaymentResult.jsx b/apps/wrapper/applicant-portal/src/pages/PaymentResult.jsx index 7b32f190..53ab06c2 100644 --- a/apps/wrapper/applicant-portal/src/pages/PaymentResult.jsx +++ b/apps/wrapper/applicant-portal/src/pages/PaymentResult.jsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import React, { useEffect, useContext } from "react"; import { Link, useNavigate, useSearchParams } from "react-router-dom"; import { Button } from "../components"; @@ -11,6 +11,11 @@ import APPLICANT_ROUTE_MAP from "../routes/ApplicantRoute"; import { getCookie, removeCookie } from "../utils"; import Header from "../components/Header"; import { applicantService } from "../services"; +import { + getFromLocalForage, + removeItemFromLocalForage, +} from "./../forms"; + export default function PaymentResult() { let [params, setParams] = useSearchParams(); @@ -23,9 +28,15 @@ export default function PaymentResult() { const applicantTransaction = async () => { if (params.get("transaction_id")) { + const tempStore = await getFromLocalForage( + `refNo` + ); const formData = { transaction_details: [ - { id: params.get("transaction_id"), form_id: formId }, + { id: params.get("transaction_id"), + form_id: formId, + payment_ref_no: tempStore.refNo + } ], }; const formsResponse = await applicantService.transactionStatus(formData); @@ -36,8 +47,12 @@ export default function PaymentResult() { } //email notify + // await sendEmailNotification(); + }; + + const sendEmailNotification= async () =>{ const emailData = { - recipientEmail: [`${getCookie("userData")?.userRepresentation?.email}`], + recipientEmail: [`${getCookie("userData")?.email}`], emailSubject: `Payment Details`, emailBody: params.get("transaction_amount") && params.get("transaction_id") @@ -63,12 +78,45 @@ export default function PaymentResult() { applicantService.sendEmailNotification(emailData); removeCookie("payment_ref_no"); - }; + } - useEffect(() => { - if (params.get("resp")) { - applicantTransaction(); + const getDataFromLocalForage = async () =>{ + const formDATA = await getFromLocalForage( + `common_payload` + ); + try { + console.log(formDATA.paymentStage ) + if (params.get("resp") && formDATA.paymentStage === "firstStage") { + + try { + // await sendEmailNotification(); + navigate( + `${APPLICANT_ROUTE_MAP.dashboardModule.createForm}/${formDATA?.common_payload.form_name + }/${undefined}/${undefined}/${formDATA?.paymentStage}` + ); + } catch (error) { + console.log(error) + } + + + } else if (params.get("resp")&& formDATA.paymentStage === "secStage") { + console.log("...secStage.......") + applicantTransaction(); + } + } catch (error) { + console.log(error) + } finally { + removeItemFromLocalForage(formDATA.paymentStage) } + + } + + useEffect(() => { + + getDataFromLocalForage(); + + + }, []); return ( diff --git a/apps/wrapper/applicant-portal/src/pages/Profile.jsx b/apps/wrapper/applicant-portal/src/pages/Profile.jsx index e73c9cf0..be426f74 100644 --- a/apps/wrapper/applicant-portal/src/pages/Profile.jsx +++ b/apps/wrapper/applicant-portal/src/pages/Profile.jsx @@ -54,7 +54,7 @@ export default function Profile() { }, []); const handleEditProfile = async () => { - console.log("data", formData); + //console.log("data", formData); let errorFlag = false; const instituteEditDetails = { @@ -71,11 +71,11 @@ export default function Profile() { try { const postDataKeyCloak = { - userName: userData?.userRepresentation?.id, + userName: userData?.id, request: { firstName: formData?.first_name, lastName: formData?.last_name, - email: userData?.userRepresentation?.email, + email: userData?.email, enabled: true, emailVerified: false, credentials: [ @@ -108,7 +108,7 @@ export default function Profile() { setToast((prevState) => ({ ...prevState, toastOpen: true, - toastMsg: "User successfully edited", + toastMsg: "Updated user profile successfully.", toastType: "success", })); navigate(APPLICANT_ROUTE_MAP.dashboardModule.my_applications); @@ -117,7 +117,7 @@ export default function Profile() { setToast((prevState) => ({ ...prevState, toastOpen: true, - toastMsg: "Error while editing user detail.", + toastMsg: "Failed to edit user profile details.", toastType: "error", })); console.error("Registration failed due to some error:", error); @@ -145,7 +145,7 @@ export default function Profile() { first_name: formDetail?.institute_pocs[0]?.fname, last_name: formDetail?.institute_pocs[0]?.lname, phone_number: formDetail?.institute_pocs[0]?.number, - email: userData?.userRepresentation?.email, + email: userData?.email, name: formDetail?.institute_pocs[0]?.name, // applicant_type: [applicantType], course_type: formDetail?.course_applied, @@ -156,7 +156,7 @@ export default function Profile() { setToast((prevState) => ({ ...prevState, toastOpen: true, - toastMsg: "User already registered.", + toastMsg: "Failed to load user profile.", toastType: "error", })); console.error("Can not see profile due to some error:", error); @@ -350,7 +350,11 @@ export default function Profile() { <div className="flex flex-row justify-end h-1/2 my-auto mb-0 gap-4"> <button className="bg-gray-50 px-6 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" - onClick={() => setIsPreview(true)} + // onClick={goBack} + onClick={() => { + setIsPreview(true); + navigate(APPLICANT_ROUTE_MAP.dashboardModule.my_applications); + }} > Cancel </button> diff --git a/apps/wrapper/applicant-portal/src/pages/StatusLogModal.jsx b/apps/wrapper/applicant-portal/src/pages/StatusLogModal.jsx new file mode 100644 index 00000000..6d95c3da --- /dev/null +++ b/apps/wrapper/applicant-portal/src/pages/StatusLogModal.jsx @@ -0,0 +1,106 @@ +import React, { useContext, useEffect, useState } from "react"; +import { getStatus, + exportToExcel } from "../api"; +import { readableDate } from "../utils/common"; +import { Button } from "../components"; +// import { ContextAPI } from "../utils/contextAPI"; +import { useParams} from "react-router-dom"; + +function StatusLogModal({ closeStatusModal, formId }) { + const [formStatus, setFormStatus] = useState([]); + // const { setSpinner } = useContext(ContextAPI); + let { formName } = useParams(); + useEffect(() => { + async function fetchData() { + const postData = { id: formId }; + try { + // setSpinner(true); + const res = await getStatus(postData); + setFormStatus(res.events); + } catch (error) { + console.log(error); + } finally { + //setSpinner(false); + } + } + fetchData(); + }, []); + + const downloadStatus = () => { + const ENKETO_URL = formName; + const statusLogs = { + sheetName: 'Status logs', + downloadObject: [], + headers: ['Event Name', 'Created Date', 'Remarks'], + } + + if(formStatus.length > 0) { + formStatus.forEach((element) => { + const status = { + event_name: element.event_name, + created_date: readableDate(element.created_date), + remarks: element.remarks, + } + statusLogs.downloadObject.push(status) + }) + } + + const downloadObjects = { + fileName: `status_log_${ENKETO_URL}.xlsx`, + objectsList: [statusLogs] + } + exportToExcel(downloadObjects); + } + + return ( + <> + <div className="flex flex-col justify-center items-center fixed inset-0 bg-opacity-25 backdrop-blur-sm z-[100]"> + <div className="flex bg-white rounded-xl shadow-xl border border-gray-400 w-[560px] h-[460px] p-8"> + <div className="flex flex-col gap-4 w-full"> + <div className="flex text-xl font-medium"> + <h1>Status log</h1> + </div> + + <div className={`flex flex-col overflow-auto min-h-[288px]`}> + {formStatus.length > 0 ? ( + formStatus.map((obj) => ( + <div + className="flex flex-col rounded-xl gap-1 border bg-gray-100 p-4 mb-4" + key={obj?.event_id} + > + <p className="font-medium">{obj?.event_name}</p> + <p className="text-sm">{obj?.remarks}</p> + <p className="text-sm text-gray-600"> + {readableDate(obj?.created_date)} + </p> + </div> + )) + ) : ( + <p className="font-medium">No events available</p> + )} + </div> + <div className="footer flex flex-row justify-end"> + <Button + onClick={() => { + downloadStatus(); + }} + moreClass="border mr-2 boevent_namerder-blue-500 bg-white text-blue-500 w-[140px]" + text="Download" + ></Button> + <Button + onClick={() => { + closeStatusModal(false); + }} + moreClass="border boevent_namerder-blue-500 bg-white text-blue-500 w-[140px]" + text="Close" + ></Button> + {/* <button onClick={() => {closeStatusModal(false)}} className="border border-blue-500 bg-white text-blue-500 w-[140px] h-[40px] font-medium rounded-[4px]">Close</button> */} + </div> + </div> + </div> + </div> + </> + ); +} + +export default StatusLogModal; diff --git a/apps/wrapper/applicant-portal/src/pages/notifications/NotificationsDetailedView.jsx b/apps/wrapper/applicant-portal/src/pages/notifications/NotificationsDetailedView.jsx index 52606679..3aa09ba8 100644 --- a/apps/wrapper/applicant-portal/src/pages/notifications/NotificationsDetailedView.jsx +++ b/apps/wrapper/applicant-portal/src/pages/notifications/NotificationsDetailedView.jsx @@ -31,7 +31,7 @@ export default function NotificationsDetailedView(props) { const handleClick = (notification) => { if (!notification.read_status) { setNotificationReadStatus({ - userId: `${getCookie("userData")?.userRepresentation?.id}`, + userId: `${getCookie("userData")?.id}`, status: true, notificationIds: [notification.id], }); @@ -58,8 +58,10 @@ export default function NotificationsDetailedView(props) { }; const getAllNotifications = async () => { + console.log("getAllNotificationsgetAllNotificationsgetAllNotificationsgetAllNotifications") + console.log(getCookie("userData")) const postData = { - userId: `${getCookie("userData")?.userRepresentation?.id}`, + userId: `${getCookie("userData")?.id}`, page: 0, size: 10, sort: { created_date_ts: "desc" }, @@ -86,7 +88,7 @@ export default function NotificationsDetailedView(props) { setselectedNotification(selectedItem); if (!selectedItem.read_status) { setNotificationReadStatus({ - userId: `${getCookie("userData")?.userRepresentation?.id}`, + userId: `${getCookie("userData")?.id}`, status: true, notificationIds: [selectedItem.id], }); diff --git a/apps/wrapper/applicant-portal/src/payment-config/config.json b/apps/wrapper/applicant-portal/src/payment-config/config.json new file mode 100644 index 00000000..851cbef3 --- /dev/null +++ b/apps/wrapper/applicant-portal/src/payment-config/config.json @@ -0,0 +1,28 @@ + { + "endpoint": "https://eazypayuat.icicibank.com/EazyPG", + "returnUrl": "https://payment.uphrh.in/api/v1/user/payment", + "paymode": "9", + "secret": "", + "merchantId": "600547", + "mandatoryFields": { + "referenceNo": "", + "submerchantId": "45", + "transactionAmount": "2500", + "invoiceId": "x1", + "invoiceDate": "x", + "invoiceTime": "x", + "merchantId": "x", + "payerType": "affiliation", + "payerId": "", + "transactionId": "x", + "transactionDate": "x", + "transactionTime": "x", + "transactionStatus": "x", + "refundId": "x", + "refundDate": "x", + "refundTime": "x", + "refundStatus": "x" + }, + "optionalFields": "" + } + diff --git a/apps/wrapper/applicant-portal/src/services/applicantService.js b/apps/wrapper/applicant-portal/src/services/applicantService.js index 67896621..d78fe2e7 100644 --- a/apps/wrapper/applicant-portal/src/services/applicantService.js +++ b/apps/wrapper/applicant-portal/src/services/applicantService.js @@ -2,6 +2,9 @@ import { APIS } from "../constants"; import axiosService from "./axiosService"; import paymentService from "./paymentService"; + +let paymentReferenceNo=""; + const NOTIFICATION_BASE_URL = process.env.REACT_APP_NODE_URL || "https://uphrh.in/api/api/"; @@ -9,6 +12,15 @@ const addInstitute = (instituteDetails) => { return axiosService.post(APIS.APPLICANT.ADD_INSTITUTE, instituteDetails); }; + +const checkIsEmailExist = async (postData) => { + const res = await axiosService.post( + APIS.SIGNUP.CHECK_IS_EMAIL_EXIST, + postData + ); + return res; +}; + const updateParentCode = (instituteDetails) => { return axiosService.post(APIS.APPLICANT.UPDATE_PARENT_CODE,instituteDetails) } @@ -33,6 +45,11 @@ const initiatePayment = async (postData) => { return res; }; +const initiatePaymentForNewForm = async (postData) => { + const res = await paymentService.post(APIS.PAYMENT.GENERATE_LINK_V2, postData); + return res; +}; + const updateApplicantDeviceId = async (postData) => { const res = await axiosService.put( APIS.COMMON.UPDATE_APPLICANT_DEVICE_ID, @@ -80,6 +97,7 @@ export const getAllRegulatorDeviceId = async (postData) => { }; const transactionStatus = async (postData) => { + console.log(postData) const res = await axiosService.post(APIS.APPLICANT.ADD_TRANSACTION, postData); return res; }; @@ -90,12 +108,29 @@ const updatePaymentStatus = async (postData) => { ); return res; }; + + +const saveInitialFormSubmission = async (postData) => { + return await axiosService.put( + APIS.FORM.SAVE_INITIAL_FORM_SUBMISSION, + postData + ); +} + +const updateTransactionStatusByRefNo = async (postData) => { + return await axiosService.post( + APIS.PAYMENT.UPDATE_INITIAL_PAYMENT_STATUS, + postData + ); +} + export const applicantService = { addInstitute, updateParentCode, addInstitutePoc, getApplicantDetails, initiatePayment, + initiatePaymentForNewForm, updateApplicantDeviceId, sendPushNotification, getAllRegulatorDeviceId, @@ -103,5 +138,8 @@ export const applicantService = { updatePaymentStatus, getAllNotifications, sendEmailNotification, - readNotification + readNotification, + checkIsEmailExist, + saveInitialFormSubmission, + updateTransactionStatusByRefNo }; diff --git a/apps/wrapper/applicant-portal/src/services/applicationService.js b/apps/wrapper/applicant-portal/src/services/applicationService.js index 487f4448..ae200f61 100644 --- a/apps/wrapper/applicant-portal/src/services/applicationService.js +++ b/apps/wrapper/applicant-portal/src/services/applicationService.js @@ -5,6 +5,16 @@ const getData = (requestPayload) => { return axiosService.post(APIS.APPLICATIONS.STATUS_LIST, requestPayload); }; +const formsToOmit = (requestPayload) => { + return axiosService.post(APIS.APPLICATIONS.OTHER_VALID_FORMS, requestPayload); +}; + +const getDraftForms = (requestPayload) => { + return axiosService.post(APIS.APPLICATIONS.DRAFTED_APPLICATIONS, requestPayload); +} + export const applicationService = { getData, + formsToOmit, + getDraftForms }; diff --git a/apps/wrapper/applicant-portal/src/services/userService.js b/apps/wrapper/applicant-portal/src/services/userService.js index 156f49c1..2a2d2d75 100644 --- a/apps/wrapper/applicant-portal/src/services/userService.js +++ b/apps/wrapper/applicant-portal/src/services/userService.js @@ -3,9 +3,15 @@ import { APIS } from "../constants"; import { getCookie } from "../utils"; const BASE_URL = - process.env.REACT_APP_WEB_PORTAL_USER_SERVICE_URL || - "https://uphrh.in/api/api/v1/user/"; + process.env.REACT_APP_WEB_PORTAL_USER_SERVICE_URL + console.log("BASE_URL---->",BASE_URL) + try { + console.log(BASE_URL) + console.log("BASE_URL---->",BASE_URL) + } catch (error) { + console.log(error) + } const TOKEN_BASE_URL = process.env.REACT_APP_TOKEN_URL || "https://odk.upsmfac.org/auth/"; @@ -122,9 +128,27 @@ const getAccessToken = (postData) => { return accessTokenAxiosService.post(APIS.ACCESS_TOKEN.TOKEN_URL, postData); }; +const isUserActive = (postData) => { + return keyCloakAxiosService.post(APIS.USER.CHECKVALID, + { + request:{ + fieldName: "email", + fieldValue: postData.email + } + }, + { + headers: { + "Content-Type": "application/json", + // "Authorization": getCookie("access_token") + Authorization: process.env.REACT_APP_AUTH_TOKEN, + }, + }); + +}; export const userService = { generateOtp, login, signup, getAccessToken, + isUserActive }; diff --git a/apps/wrapper/assessor-app/dockerfile b/apps/wrapper/assessor-app/dockerfile index af9c494b..1548d2ad 100644 --- a/apps/wrapper/assessor-app/dockerfile +++ b/apps/wrapper/assessor-app/dockerfile @@ -1,7 +1,7 @@ FROM node:lts as dependencies WORKDIR /app COPY . ./ -RUN npm install +RUN npm install --force RUN npm run build EXPOSE 3000 -CMD ["npm", "run", "start-prod"] \ No newline at end of file +CMD ["npm", "run", "start"] \ No newline at end of file diff --git a/apps/wrapper/assessor-app/package-lock.json b/apps/wrapper/assessor-app/package-lock.json index 1bb5fe1b..27b0c6e1 100644 --- a/apps/wrapper/assessor-app/package-lock.json +++ b/apps/wrapper/assessor-app/package-lock.json @@ -1,51 +1,112 @@ { "name": "up-hrh", "version": "0.1.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@adobe/css-tools": { + "packages": { + "": { + "name": "up-hrh", + "version": "0.1.0", + "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/free-regular-svg-icons": "^6.2.1", + "@fortawesome/free-solid-svg-icons": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "@material-tailwind/react": "^1.4.2", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "animate.css": "^4.1.1", + "axios": "^1.2.1", + "is-online": "^10.0.0", + "js-cookie": "^3.0.1", + "localforage": "^1.10.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-json-to-csv": "^1.2.0", + "react-otp-input": "^2.4.0", + "react-router-dom": "^6.6.0", + "react-scripts": "5.0.1", + "react-webcam": "^7.0.1", + "react-xml-parser": "^1.1.8", + "web-vitals": "^2.1.4", + "workbox-background-sync": "^6.6.0", + "workbox-broadcast-update": "^6.6.0", + "workbox-cacheable-response": "^6.6.0", + "workbox-core": "^6.6.0", + "workbox-expiration": "^6.6.0", + "workbox-google-analytics": "^6.6.0", + "workbox-navigation-preload": "^6.6.0", + "workbox-precaching": "^6.6.0", + "workbox-range-requests": "^6.6.0", + "workbox-routing": "^6.6.0", + "workbox-strategies": "^6.6.0", + "workbox-streams": "^6.6.0" + }, + "devDependencies": { + "autoprefixer": "^10.4.13", + "postcss": "^8.4.20", + "serve": "^14.2.0", + "tailwindcss": "^3.2.4" + } + }, + "node_modules/@adobe/css-tools": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.2.0.tgz", "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==" }, - "@ampproject/remapping": { + "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "requires": { + "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@apideck/better-ajv-errors": { + "node_modules/@apideck/better-ajv-errors": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "requires": { + "dependencies": { "json-schema": "^0.4.0", "jsonpointer": "^5.0.0", "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" } }, - "@babel/code-frame": { + "node_modules/@babel/code-frame": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "requires": { + "dependencies": { "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/compat-data": { + "node_modules/@babel/compat-data": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==" + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/core": { + "node_modules/@babel/core": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", - "requires": { + "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.21.4", "@babel/generator": "^7.21.4", @@ -62,88 +123,123 @@ "json5": "^2.2.2", "semver": "^6.3.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/eslint-parser": { + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", - "requires": { + "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", "semver": "^6.3.0" }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" } }, - "@babel/generator": { + "node_modules/@babel/generator": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", - "requires": { + "dependencies": { "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-annotate-as-pure": { + "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "requires": { + "dependencies": { "@babel/helper-explode-assignable-expression": "^7.18.6", "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-compilation-targets": { + "node_modules/@babel/helper-compilation-targets": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", - "requires": { + "dependencies": { "@babel/compat-data": "^7.21.4", "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-create-class-features-plugin": { + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.21.0", @@ -152,22 +248,34 @@ "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-create-regexp-features-plugin": { + "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "regexpu-core": "^5.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-define-polyfill-provider": { + "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "requires": { + "dependencies": { "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", @@ -175,65 +283,87 @@ "resolve": "^1.14.2", "semver": "^6.1.2" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "peerDependencies": { + "@babel/core": "^7.4.0-0" } }, - "@babel/helper-environment-visitor": { + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-explode-assignable-expression": { + "node_modules/@babel/helper-explode-assignable-expression": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-function-name": { + "node_modules/@babel/helper-function-name": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "requires": { + "dependencies": { "@babel/template": "^7.20.7", "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { + "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-member-expression-to-functions": { + "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", - "requires": { + "dependencies": { "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-imports": { + "node_modules/@babel/helper-module-imports": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", - "requires": { + "dependencies": { "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { + "node_modules/@babel/helper-module-transforms": { "version": "7.21.2", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", - "requires": { + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.20.2", @@ -242,547 +372,842 @@ "@babel/template": "^7.20.7", "@babel/traverse": "^7.21.2", "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-optimise-call-expression": { + "node_modules/@babel/helper-optimise-call-expression": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-plugin-utils": { + "node_modules/@babel/helper-plugin-utils": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-remap-async-to-generator": { + "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-wrap-function": "^7.18.9", "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-replace-supers": { + "node_modules/@babel/helper-replace-supers": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", - "requires": { + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-member-expression-to-functions": "^7.20.7", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/template": "^7.20.7", "@babel/traverse": "^7.20.7", "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-simple-access": { + "node_modules/@babel/helper-simple-access": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "requires": { + "dependencies": { "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-skip-transparent-expression-wrappers": { + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "requires": { + "dependencies": { "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-split-export-declaration": { + "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-string-parser": { + "node_modules/@babel/helper-string-parser": { "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.19.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-option": { + "node_modules/@babel/helper-validator-option": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==" + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-wrap-function": { + "node_modules/@babel/helper-wrap-function": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "requires": { + "dependencies": { "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", "@babel/traverse": "^7.20.5", "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helpers": { + "node_modules/@babel/helpers": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", - "requires": { + "dependencies": { "@babel/template": "^7.20.7", "@babel/traverse": "^7.21.0", "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "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==", + "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==", "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==", - "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==", - "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==", - "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==" - }, - "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==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } + "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==", + "dependencies": { + "color-name": "1.1.3" } }, - "@babel/parser": { + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==" + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "@babel/plugin-proposal-async-generator-functions": { + "node_modules/@babel/plugin-proposal-async-generator-functions": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-class-properties": { + "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-class-static-block": { + "node_modules/@babel/plugin-proposal-class-static-block": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.", + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "@babel/plugin-proposal-decorators": { + "node_modules/@babel/plugin-proposal-decorators": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz", "integrity": "sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==", - "requires": { + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/plugin-syntax-decorators": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-dynamic-import": { + "node_modules/@babel/plugin-proposal-dynamic-import": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-export-namespace-from": { + "node_modules/@babel/plugin-proposal-export-namespace-from": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-json-strings": { + "node_modules/@babel/plugin-proposal-json-strings": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-logical-assignment-operators": { + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-nullish-coalescing-operator": { + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-numeric-separator": { + "node_modules/@babel/plugin-proposal-numeric-separator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-object-rest-spread": { + "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "dependencies": { "@babel/compat-data": "^7.20.5", "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-catch-binding": { + "node_modules/@babel/plugin-proposal-optional-catch-binding": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-chaining": { + "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-private-methods": { + "node_modules/@babel/plugin-proposal-private-methods": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-private-property-in-object": { + "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-unicode-property-regex": { + "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "requires": { + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-async-generators": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-bigint": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-properties": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-static-block": { + "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-decorators": { + "node_modules/@babel/plugin-syntax-decorators": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz", "integrity": "sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-dynamic-import": { + "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-export-namespace-from": { + "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-flow": { + "node_modules/@babel/plugin-syntax-flow": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz", "integrity": "sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-import-assertions": { + "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-import-meta": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-json-strings": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-jsx": { + "node_modules/@babel/plugin-syntax-jsx": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-logical-assignment-operators": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-numeric-separator": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-object-rest-spread": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-catch-binding": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-chaining": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-private-property-in-object": { + "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-top-level-await": { + "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==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-typescript": { + "node_modules/@babel/plugin-syntax-typescript": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-arrow-functions": { + "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-async-to-generator": { + "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "requires": { + "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoped-functions": { + "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoping": { + "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-classes": { + "node_modules/@babel/plugin-transform-classes": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", @@ -792,242 +1217,404 @@ "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-computed-properties": { + "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-destructuring": { + "node_modules/@babel/plugin-transform-destructuring": { "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dotall-regex": { + "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-duplicate-keys": { + "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-exponentiation-operator": { + "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "requires": { + "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-flow-strip-types": { + "node_modules/@babel/plugin-transform-flow-strip-types": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-flow": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-for-of": { + "node_modules/@babel/plugin-transform-for-of": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-function-name": { + "node_modules/@babel/plugin-transform-function-name": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "requires": { + "dependencies": { "@babel/helper-compilation-targets": "^7.18.9", "@babel/helper-function-name": "^7.18.9", "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-literals": { + "node_modules/@babel/plugin-transform-literals": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-member-expression-literals": { + "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-amd": { + "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.20.11", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.20.11", "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { + "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.21.2", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.21.2", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-systemjs": { + "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.20.11", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", - "requires": { + "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-module-transforms": "^7.20.11", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-umd": { + "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.20.5", "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-new-target": { + "node_modules/@babel/plugin-transform-new-target": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-super": { + "node_modules/@babel/plugin-transform-object-super": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-parameters": { + "node_modules/@babel/plugin-transform-parameters": { "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-property-literals": { + "node_modules/@babel/plugin-transform-property-literals": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-constant-elements": { + "node_modules/@babel/plugin-transform-react-constant-elements": { "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz", "integrity": "sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-display-name": { + "node_modules/@babel/plugin-transform-react-display-name": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-jsx": { + "node_modules/@babel/plugin-transform-react-jsx": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-jsx": "^7.18.6", "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-jsx-development": { + "node_modules/@babel/plugin-transform-react-jsx-development": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", - "requires": { + "dependencies": { "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-pure-annotations": { + "node_modules/@babel/plugin-transform-react-pure-annotations": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-regenerator": { + "node_modules/@babel/plugin-transform-regenerator": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-reserved-words": { + "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-runtime": { + "node_modules/@babel/plugin-transform-runtime": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", - "requires": { + "dependencies": { "@babel/helper-module-imports": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", @@ -1035,88 +1622,143 @@ "babel-plugin-polyfill-regenerator": "^0.4.1", "semver": "^6.3.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" } }, - "@babel/plugin-transform-shorthand-properties": { + "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-spread": { + "node_modules/@babel/plugin-transform-spread": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-sticky-regex": { + "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-template-literals": { + "node_modules/@babel/plugin-transform-template-literals": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-typeof-symbol": { + "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-typescript": { + "node_modules/@babel/plugin-transform-typescript": { "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-escapes": { + "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-regex": { + "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-env": { + "node_modules/@babel/preset-env": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", - "requires": { + "dependencies": { "@babel/compat-data": "^7.21.4", "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", @@ -1193,79 +1835,107 @@ "core-js-compat": "^3.25.1", "semver": "^6.3.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-modules": { + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-react": { + "node_modules/@babel/preset-react": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-transform-react-display-name": "^7.18.6", "@babel/plugin-transform-react-jsx": "^7.18.6", "@babel/plugin-transform-react-jsx-development": "^7.18.6", "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-typescript": { + "node_modules/@babel/preset-typescript": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz", "integrity": "sha512-sMLNWY37TCdRH/bJ6ZeeOH1nPuanED7Ai9Y/vH31IPqalioJ6ZNFUWONsakhv4r4n+I6gm5lmoE0olkgib/j/A==", - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-syntax-jsx": "^7.21.4", "@babel/plugin-transform-modules-commonjs": "^7.21.2", "@babel/plugin-transform-typescript": "^7.21.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/regjsgen": { + "node_modules/@babel/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, - "@babel/runtime": { + "node_modules/@babel/runtime": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", - "requires": { + "dependencies": { "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/template": { + "node_modules/@babel/template": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "requires": { + "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/traverse": { + "node_modules/@babel/traverse": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", - "requires": { + "dependencies": { "@babel/code-frame": "^7.21.4", "@babel/generator": "^7.21.4", "@babel/helper-environment-visitor": "^7.18.9", @@ -1276,180 +1946,341 @@ "@babel/types": "^7.21.4", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { + "node_modules/@babel/types": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", - "requires": { + "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@bcoe/v8-coverage": { + "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==" }, - "@csstools/normalize.css": { + "node_modules/@csstools/normalize.css": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" }, - "@csstools/postcss-cascade-layers": { + "node_modules/@csstools/postcss-cascade-layers": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", - "requires": { + "dependencies": { "@csstools/selector-specificity": "^2.0.2", "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-color-function": { + "node_modules/@csstools/postcss-color-function": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", - "requires": { + "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-font-format-keywords": { + "node_modules/@csstools/postcss-font-format-keywords": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-hwb-function": { + "node_modules/@csstools/postcss-hwb-function": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-ic-unit": { + "node_modules/@csstools/postcss-ic-unit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", - "requires": { + "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-is-pseudo-class": { + "node_modules/@csstools/postcss-is-pseudo-class": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", - "requires": { + "dependencies": { "@csstools/selector-specificity": "^2.0.0", "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-nested-calc": { + "node_modules/@csstools/postcss-nested-calc": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-normalize-display-values": { + "node_modules/@csstools/postcss-normalize-display-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-oklab-function": { + "node_modules/@csstools/postcss-oklab-function": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", - "requires": { + "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-progressive-custom-properties": { + "node_modules/@csstools/postcss-progressive-custom-properties": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "@csstools/postcss-stepped-value-functions": { + "node_modules/@csstools/postcss-stepped-value-functions": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-text-decoration-shorthand": { + "node_modules/@csstools/postcss-text-decoration-shorthand": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-trigonometric-functions": { + "node_modules/@csstools/postcss-trigonometric-functions": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "@csstools/postcss-unset-value": { + "node_modules/@csstools/postcss-unset-value": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", - "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==" + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } }, - "@csstools/selector-specificity": { + "node_modules/@csstools/selector-specificity": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==" + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } }, - "@emotion/is-prop-valid": { + "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, - "requires": { + "dependencies": { "@emotion/memoize": "0.7.4" } }, - "@emotion/memoize": { + "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 }, - "@eslint-community/eslint-utils": { + "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "requires": { + "dependencies": { "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "@eslint-community/regexpp": { + "node_modules/@eslint-community/regexpp": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==" + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } }, - "@eslint/eslintrc": { + "node_modules/@eslint/eslintrc": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", - "requires": { + "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.5.1", @@ -1460,190 +2291,269 @@ "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "@eslint/js": { + "node_modules/@eslint/js": { "version": "8.39.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==" + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } }, - "@floating-ui/core": { + "node_modules/@floating-ui/core": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz", "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" }, - "@floating-ui/dom": { + "node_modules/@floating-ui/dom": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.6.tgz", "integrity": "sha512-02vxFDuvuVPs22iJICacezYJyf7zwwOCWkPNkWNBr1U0Qt1cKFYzWvxts0AmqcOQGwt/3KJWcWIgtbUU38keyw==", - "requires": { + "dependencies": { "@floating-ui/core": "^1.2.6" } }, - "@floating-ui/react": { + "node_modules/@floating-ui/react": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.19.2.tgz", "integrity": "sha512-JyNk4A0Ezirq8FlXECvRtQOX/iBe5Ize0W/pLkrZjfHW9GUV7Xnq6zm6fyZuQzaHHqEnVizmvlA96e1/CkZv+w==", - "requires": { + "dependencies": { "@floating-ui/react-dom": "^1.3.0", "aria-hidden": "^1.1.3", "tabbable": "^6.0.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "@floating-ui/react-dom": { + "node_modules/@floating-ui/react-dom": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-1.3.0.tgz", "integrity": "sha512-htwHm67Ji5E/pROEAr7f8IKFShuiCKHwUC/UY4vC3I5jiSvGFAYnSYiZO5MlGmads+QqvUkR9ANHEguGrDv72g==", - "requires": { + "dependencies": { "@floating-ui/dom": "^1.2.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "@fortawesome/fontawesome-common-types": { + "node_modules/@fortawesome/fontawesome-common-types": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz", - "integrity": "sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==" + "integrity": "sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } }, - "@fortawesome/fontawesome-svg-core": { + "node_modules/@fortawesome/fontawesome-svg-core": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz", "integrity": "sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==", - "requires": { + "hasInstallScript": true, + "dependencies": { "@fortawesome/fontawesome-common-types": "6.4.0" + }, + "engines": { + "node": ">=6" } }, - "@fortawesome/free-regular-svg-icons": { + "node_modules/@fortawesome/free-regular-svg-icons": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.0.tgz", "integrity": "sha512-ZfycI7D0KWPZtf7wtMFnQxs8qjBXArRzczABuMQqecA/nXohquJ5J/RCR77PmY5qGWkxAZDxpnUFVXKwtY/jPw==", - "requires": { + "hasInstallScript": true, + "dependencies": { "@fortawesome/fontawesome-common-types": "6.4.0" + }, + "engines": { + "node": ">=6" } }, - "@fortawesome/free-solid-svg-icons": { + "node_modules/@fortawesome/free-solid-svg-icons": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz", "integrity": "sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==", - "requires": { + "hasInstallScript": true, + "dependencies": { "@fortawesome/fontawesome-common-types": "6.4.0" + }, + "engines": { + "node": ">=6" } }, - "@fortawesome/react-fontawesome": { + "node_modules/@fortawesome/react-fontawesome": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", - "requires": { + "dependencies": { "prop-types": "^15.8.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || ~6", + "react": ">=16.3" } }, - "@humanwhocodes/config-array": { + "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "requires": { + "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "@humanwhocodes/module-importer": { + "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, - "@humanwhocodes/object-schema": { + "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, - "@istanbuljs/load-nyc-config": { + "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==", - "requires": { + "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/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@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": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - } + "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" } }, - "@istanbuljs/schema": { + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@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==" + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } }, - "@jest/console": { + "node_modules/@jest/console": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "requires": { + "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", @@ -1651,94 +2561,117 @@ "jest-util": "^27.5.1", "slash": "^3.0.0" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@jest/core": { + "node_modules/@jest/console/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/@jest/core": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "requires": { + "dependencies": { "@jest/console": "^27.5.1", "@jest/reporters": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -1768,144 +2701,188 @@ "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } } }, - "@jest/environment": { + "node_modules/@jest/core/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/@jest/environment": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "requires": { + "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "jest-mock": "^27.5.1" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/environment/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/environment/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "@jest/expect-utils": { + "node_modules/@jest/environment/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/expect-utils": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", - "requires": { + "dependencies": { "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@jest/fake-timers": { + "node_modules/@jest/fake-timers": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "requires": { + "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", "@types/node": "*", @@ -1913,7306 +2890,9822 @@ "jest-mock": "^27.5.1", "jest-util": "^27.5.1" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@jest/globals": { + "node_modules/@jest/fake-timers/node_modules/@jest/types": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/fake-timers/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@jest/reporters": { + "node_modules/@jest/fake-timers/node_modules/jest-message-util": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", - "@types/node": "*", + "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "stack-utils": "^2.0.3" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", - "requires": { - "@sinclair/typebox": "^0.25.16" + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@jest/source-map": { + "node_modules/@jest/fake-timers/node_modules/jest-util": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "requires": { - "callsites": "^3.0.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" + "picomatch": "^2.2.3" }, - "dependencies": { - "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": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@jest/test-result": { + "node_modules/@jest/fake-timers/node_modules/pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" + "node_modules/@jest/fake-timers/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@jest/transform": { + "node_modules/@jest/fake-timers/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/@jest/globals": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "requires": { - "@babel/core": "^7.1.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "expect": "^27.5.1" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "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": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", - "requires": { - "@jest/schemas": "^29.4.3", + "node_modules/@jest/globals/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^17.0.8", + "@types/yargs": "^16.0.0", "chalk": "^4.0.0" }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "node_modules/@jest/globals/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - }, - "@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==" - }, - "@jridgewell/source-map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", - "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "node_modules/@jest/globals/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "node_modules/@jest/globals/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, + "node_modules/@jest/globals/node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - } + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + "node_modules/@jest/globals/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@material-tailwind/react": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@material-tailwind/react/-/react-1.4.2.tgz", - "integrity": "sha512-XJ1Ie8xXMV2qZEtm0LgnJNK+8Lh1Si8TvOf0jKWGI2rHleD8U/Zype6k1AyRhBHHUwc6B19w8uR1fCIFvumURQ==", - "requires": { - "@floating-ui/react": "^0.19.0", - "classnames": "^2.3.2", - "deepmerge": "^4.2.2", - "framer-motion": "^6.5.1", - "material-ripple-effects": "^2.0.1", - "prop-types": "^15.8.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "tailwind-merge": "^1.8.1" + "node_modules/@jest/globals/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@motionone/animation": { - "version": "10.15.1", - "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz", - "integrity": "sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==", - "requires": { - "@motionone/easing": "^10.15.1", - "@motionone/types": "^10.15.1", - "@motionone/utils": "^10.15.1", - "tslib": "^2.3.1" + "node_modules/@jest/globals/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@motionone/dom": { - "version": "10.12.0", - "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz", - "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==", - "requires": { - "@motionone/animation": "^10.12.0", - "@motionone/generators": "^10.12.0", - "@motionone/types": "^10.12.0", - "@motionone/utils": "^10.12.0", - "hey-listen": "^1.0.8", - "tslib": "^2.3.1" + "node_modules/@jest/globals/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@motionone/easing": { - "version": "10.15.1", - "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.15.1.tgz", - "integrity": "sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==", - "requires": { - "@motionone/utils": "^10.15.1", - "tslib": "^2.3.1" + "node_modules/@jest/globals/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@motionone/generators": { - "version": "10.15.1", - "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.15.1.tgz", - "integrity": "sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==", - "requires": { - "@motionone/types": "^10.15.1", - "@motionone/utils": "^10.15.1", - "tslib": "^2.3.1" + "node_modules/@jest/globals/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@motionone/types": { - "version": "10.15.1", - "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.15.1.tgz", - "integrity": "sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==" + "node_modules/@jest/globals/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "@motionone/utils": { - "version": "10.15.1", - "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.15.1.tgz", - "integrity": "sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==", - "requires": { - "@motionone/types": "^10.15.1", - "hey-listen": "^1.0.8", - "tslib": "^2.3.1" + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "requires": { - "eslint-scope": "5.1.1" + "node_modules/@jest/reporters/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } + "@types/yargs-parser": "*" } }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "node_modules/@jest/reporters/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "node_modules/@jest/reporters/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" } }, - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", - "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==", - "requires": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@remix-run/router": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", - "integrity": "sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==" - }, - "@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" + "node_modules/@jest/source-map/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" } }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, + "node_modules/@jest/test-result/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dependencies": { - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - } + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@rushstack/eslint-patch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", - "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" - }, - "@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==" - }, - "@sindresorhus/is": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==" - }, - "@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "requires": { - "type-detect": "4.0.8" + "node_modules/@jest/test-result/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "requires": { - "@sinonjs/commons": "^1.7.0" + "node_modules/@jest/test-result/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "requires": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" + "node_modules/@jest/transform/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" + "node_modules/@jest/transform/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" + "node_modules/@jest/transform/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + "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" } }, - "@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "requires": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" + "node_modules/@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "dependencies": { + "@jest/schemas": "^29.4.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" } }, - "@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "requires": { - "@babel/types": "^7.12.6" + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "requires": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "requires": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" } }, - "@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" } }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@testing-library/dom": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.0.tgz", - "integrity": "sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } - } - }, - "@testing-library/jest-dom": { - "version": "5.16.5", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", - "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", - "requires": { - "@adobe/css-tools": "^4.0.1", - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^3.0.0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "@testing-library/react": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", - "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", - "requires": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.5.0", - "@types/react-dom": "^18.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==" }, - "@testing-library/user-event": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", - "requires": { - "@babel/runtime": "^7.12.5" + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, - "@types/aria-query": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", - "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==" + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, - "@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "node_modules/@material-tailwind/react": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@material-tailwind/react/-/react-1.4.2.tgz", + "integrity": "sha512-XJ1Ie8xXMV2qZEtm0LgnJNK+8Lh1Si8TvOf0jKWGI2rHleD8U/Zype6k1AyRhBHHUwc6B19w8uR1fCIFvumURQ==", + "dependencies": { + "@floating-ui/react": "^0.19.0", + "classnames": "^2.3.2", + "deepmerge": "^4.2.2", + "framer-motion": "^6.5.1", + "material-ripple-effects": "^2.0.1", + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tailwind-merge": "^1.8.1" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" } }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "requires": { - "@babel/types": "^7.0.0" + "node_modules/@motionone/animation": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz", + "integrity": "sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==", + "dependencies": { + "@motionone/easing": "^10.15.1", + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" } }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "node_modules/@motionone/dom": { + "version": "10.12.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz", + "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==", + "dependencies": { + "@motionone/animation": "^10.12.0", + "@motionone/generators": "^10.12.0", + "@motionone/types": "^10.12.0", + "@motionone/utils": "^10.12.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" } }, - "@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", - "requires": { - "@babel/types": "^7.3.0" + "node_modules/@motionone/easing": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.15.1.tgz", + "integrity": "sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==", + "dependencies": { + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" } }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "requires": { - "@types/connect": "*", - "@types/node": "*" + "node_modules/@motionone/generators": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.15.1.tgz", + "integrity": "sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==", + "dependencies": { + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" } }, - "@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "requires": { - "@types/node": "*" + "node_modules/@motionone/types": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.15.1.tgz", + "integrity": "sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==" + }, + "node_modules/@motionone/utils": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.15.1.tgz", + "integrity": "sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==", + "dependencies": { + "@motionone/types": "^10.15.1", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" } }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" } }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "@types/eslint": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", - "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" } }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "requires": { - "@types/eslint": "*", - "@types/estree": "*" + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } }, - "@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@types/express-serve-static-core": { - "version": "4.17.33", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", - "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", + "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <4.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } } }, - "@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "requires": { - "@types/node": "*" + "node_modules/@remix-run/router": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", + "integrity": "sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==", + "engines": { + "node": ">=14" } }, - "@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "@types/http-proxy": { - "version": "1.17.10", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", - "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", - "requires": { - "@types/node": "*" + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } } }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" } }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "requires": { - "@types/istanbul-lib-report": "*" + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" } }, - "@types/jest": { - "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", - "requires": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" } }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" - }, - "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" - }, - "@types/node": { - "version": "18.16.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.0.tgz", - "integrity": "sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" - }, - "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "node_modules/@rushstack/eslint-patch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", + "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==" }, - "@types/react": { - "version": "18.0.38", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.38.tgz", - "integrity": "sha512-ExsidLLSzYj4cvaQjGnQCk4HFfVT9+EZ9XZsQ8Hsrcn8QNgXtpZ3m9vSIC2MWtx7jHictK6wYhQgGh6ic58oOw==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "node_modules/@sindresorhus/is": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "@types/react-dom": { - "version": "18.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", - "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", - "requires": { - "@types/react": "*" + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" } }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "requires": { - "@types/node": "*" + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" } }, - "@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" - }, - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" - }, - "@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "requires": { - "@types/express": "*" + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" } }, - "@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "requires": { - "@types/mime": "*", - "@types/node": "*" + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "requires": { - "@types/node": "*" + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "@types/testing-library__jest-dom": { - "version": "5.14.5", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", - "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", - "requires": { - "@types/jest": "*" + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@types/trusted-types": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", - "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" - }, - "@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "requires": { - "@types/node": "*" + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "requires": { - "@types/yargs-parser": "*" + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } }, - "@typescript-eslint/eslint-plugin": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", - "integrity": "sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==", - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/type-utils": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@typescript-eslint/experimental-utils": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.1.tgz", - "integrity": "sha512-KVtKcHEizCIRx//LC9tBi6xp94ULKbU5StVHBVWURJQOVa2qw6HP28Hu7LmHrQM3p9I3q5Y2VR4wKllCJ3IWrw==", - "requires": { - "@typescript-eslint/utils": "5.59.1" + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@typescript-eslint/parser": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", - "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", - "requires": { - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "debug": "^4.3.4" + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@typescript-eslint/scope-manager": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", - "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", - "requires": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1" + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@typescript-eslint/type-utils": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", - "integrity": "sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==", - "requires": { - "@typescript-eslint/typescript-estree": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@typescript-eslint/types": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", - "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==" + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", - "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", - "requires": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "@typescript-eslint/utils": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.1.tgz", - "integrity": "sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==", - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" } }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", - "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", - "requires": { - "@typescript-eslint/types": "5.59.1", - "eslint-visitor-keys": "^3.3.0" + "node_modules/@testing-library/dom": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.0.tgz", + "integrity": "sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" } }, - "@webassemblyjs/ast": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", - "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", - "requires": { - "@webassemblyjs/helper-numbers": "1.11.5", - "@webassemblyjs/helper-wasm-bytecode": "1.11.5" + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", - "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==" + "node_modules/@testing-library/dom/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", - "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==" + "node_modules/@testing-library/dom/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", - "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==" + "node_modules/@testing-library/dom/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", - "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.5", - "@webassemblyjs/helper-api-error": "1.11.5", - "@xtuc/long": "4.2.2" + "node_modules/@testing-library/jest-dom": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", + "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", - "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==" + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", - "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", - "requires": { - "@webassemblyjs/ast": "1.11.5", - "@webassemblyjs/helper-buffer": "1.11.5", - "@webassemblyjs/helper-wasm-bytecode": "1.11.5", - "@webassemblyjs/wasm-gen": "1.11.5" + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" } }, - "@webassemblyjs/ieee754": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", - "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", - "requires": { - "@xtuc/ieee754": "^1.2.0" + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" } }, - "@webassemblyjs/leb128": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", - "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", - "requires": { - "@xtuc/long": "4.2.2" + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" } }, - "@webassemblyjs/utf8": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", - "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==" + "node_modules/@types/aria-query": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", + "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==" }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", - "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", - "requires": { - "@webassemblyjs/ast": "1.11.5", - "@webassemblyjs/helper-buffer": "1.11.5", - "@webassemblyjs/helper-wasm-bytecode": "1.11.5", - "@webassemblyjs/helper-wasm-section": "1.11.5", - "@webassemblyjs/wasm-gen": "1.11.5", - "@webassemblyjs/wasm-opt": "1.11.5", - "@webassemblyjs/wasm-parser": "1.11.5", - "@webassemblyjs/wast-printer": "1.11.5" + "node_modules/@types/babel__core": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", - "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", - "requires": { - "@webassemblyjs/ast": "1.11.5", - "@webassemblyjs/helper-wasm-bytecode": "1.11.5", - "@webassemblyjs/ieee754": "1.11.5", - "@webassemblyjs/leb128": "1.11.5", - "@webassemblyjs/utf8": "1.11.5" + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dependencies": { + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", - "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", - "requires": { - "@webassemblyjs/ast": "1.11.5", - "@webassemblyjs/helper-buffer": "1.11.5", - "@webassemblyjs/wasm-gen": "1.11.5", - "@webassemblyjs/wasm-parser": "1.11.5" + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", - "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", - "requires": { - "@webassemblyjs/ast": "1.11.5", - "@webassemblyjs/helper-api-error": "1.11.5", - "@webassemblyjs/helper-wasm-bytecode": "1.11.5", - "@webassemblyjs/ieee754": "1.11.5", - "@webassemblyjs/leb128": "1.11.5", - "@webassemblyjs/utf8": "1.11.5" + "node_modules/@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "dependencies": { + "@babel/types": "^7.3.0" } }, - "@webassemblyjs/wast-printer": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", - "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", - "requires": { - "@webassemblyjs/ast": "1.11.5", - "@xtuc/long": "4.2.2" + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" } }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "@zeit/schemas": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", - "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==", - "dev": true - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" - }, - "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" + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dependencies": { + "@types/node": "*" } }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } + "@types/node": "*" } }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + "node_modules/@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } }, - "address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==" + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" }, - "adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "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" + "node_modules/@types/express-serve-static-core": { + "version": "4.17.33", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", + "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" } }, - "aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "requires": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dependencies": { - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==" - } + "@types/node": "*" } }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.10", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", + "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - } + "@types/node": "*" } }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" }, - "animate.css": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz", - "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } }, - "ansi-align": { + "node_modules/@types/istanbul-reports": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "requires": { - "string-width": "^4.1.0" + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dependencies": { + "@types/istanbul-lib-report": "*" } }, - "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==", - "requires": { - "type-fest": "^0.21.3" - }, + "node_modules/@types/jest": { + "version": "29.5.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", + "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", "dependencies": { - "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==" - } + "expect": "^29.0.0", + "pretty-format": "^29.0.0" } }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + "node_modules/@types/node": { + "version": "18.16.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.0.tgz", + "integrity": "sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==" }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, - "arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" }, - "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "node_modules/@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" }, - "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" - } + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, - "aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "requires": { - "deep-equal": "^2.0.5" - } + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, - "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==", - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "node_modules/@types/react": { + "version": "18.0.38", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.38.tgz", + "integrity": "sha512-ExsidLLSzYj4cvaQjGnQCk4HFfVT9+EZ9XZsQ8Hsrcn8QNgXtpZ3m9vSIC2MWtx7jHictK6wYhQgGh6ic58oOw==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" } }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + "node_modules/@types/react-dom": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", + "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "dependencies": { + "@types/react": "*" + } }, - "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" }, - "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" }, - "array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dependencies": { + "@types/express": "*" } }, - "array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" + "node_modules/@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dependencies": { + "@types/mime": "*", + "@types/node": "*" } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dependencies": { + "@types/node": "*" + } }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", + "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "dependencies": { + "@types/jest": "*" + } }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + "node_modules/@types/trusted-types": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" }, - "autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", - "requires": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dependencies": { + "@types/node": "*" } }, - "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==" + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==" + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, - "axios": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.6.tgz", - "integrity": "sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg==", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", + "integrity": "sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/type-utils": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "axobject-query": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", - "requires": { - "deep-equal": "^2.0.5" + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.1.tgz", + "integrity": "sha512-KVtKcHEizCIRx//LC9tBi6xp94ULKbU5StVHBVWURJQOVa2qw6HP28Hu7LmHrQM3p9I3q5Y2VR4wKllCJ3IWrw==", + "dependencies": { + "@typescript-eslint/utils": "5.59.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, + "node_modules/@typescript-eslint/parser": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", + "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", + "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", + "integrity": "sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==", "dependencies": { - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } + "@typescript-eslint/typescript-estree": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "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==", - "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" + "node_modules/@typescript-eslint/types": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", + "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", + "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.1.tgz", + "integrity": "sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", + "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/@zeit/schemas": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", + "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, + "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/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "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/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/aggregate-error/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/animate.css": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz", + "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/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.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "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==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", + "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "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.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "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/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.6.tgz", + "integrity": "sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-jest/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", "@types/babel__core": "^7.0.0", "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "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==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "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==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/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/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/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/boxen": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.9", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.9.tgz", + "integrity": "sha512-CaAMr53AS1Tb9evO1BIWFnZjSr8A4pbXofpsNVWPMDZZj3ZQKHwsQG9BrTqQ4x5ZYJXz1T2b8LLtTZODxSpzbg==", + "dependencies": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001481", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", + "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", + "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/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/chalk-template/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==", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz", + "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==" + }, + "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/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, + "node_modules/clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "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/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", + "dev": true, + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "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/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "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/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "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": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "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/core-js": { + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", + "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", + "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.1.tgz", + "integrity": "sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "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/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", + "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.19", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "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", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "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": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "node_modules/cssdb": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.5.4.tgz", + "integrity": "sha512-fGD+J6Jlq+aurfE1VDXlLS4Pt0VtNlu2+YgfGOdMxRyl/HQ9bDiHTwSck1Yz8A97Dt/82izSK6Bp/4nVqacOsg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "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", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "node_modules/deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/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/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "node_modules/dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dns-socket": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-4.2.2.tgz", + "integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==", + "dependencies": { + "dns-packet": "^5.2.4" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domhandler/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "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/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.371", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.371.tgz", + "integrity": "sha512-jlBzY4tFcJaiUjzhRTCWAqRvTO/fWzjA3Bls0mykzGZ7zvcMP7h05W6UcgzfT9Ca1SW2xyKDOFRyI0pQeRNZGw==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "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/enhanced-resolve": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "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-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "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": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "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/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, - "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==", - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" } }, - "babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==" + "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==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true } } }, - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" } }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + "node_modules/eslint-plugin-react": { + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "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", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } }, - "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==", - "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" + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.10.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.10.3.tgz", + "integrity": "sha512-0yhsKFsjHLud5PM+f2dWr9K3rqYzMy4cSHs3lcmFYMa1CdSzRvHGgXvsFarBjZ41gU8jhTdMIkg8jHLxGJqLqw==", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, - "bfj": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", - "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", - "requires": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "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" + "node_modules/eslint/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==", + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", - "requires": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "node_modules/espree": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, - "boxen": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", - "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", - "dev": true, - "requires": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.0", - "chalk": "^5.0.1", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "dev": true - }, - "chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "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" + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" } }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" } }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" + "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" } }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, - "builtin-modules": { + "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==" + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } }, - "cacheable-request": { - "version": "10.2.9", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.9.tgz", - "integrity": "sha512-CaAMr53AS1Tb9evO1BIWFnZjSr8A4pbXofpsNVWPMDZZj3ZQKHwsQG9BrTqQ4x5ZYJXz1T2b8LLtTZODxSpzbg==", - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "node_modules/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "dependencies": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" } }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" } }, - "caniuse-lite": { - "version": "1.0.30001481", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", - "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==" + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" + "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==" }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, - "chalk-template": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", - "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", "dev": true, - "requires": { - "chalk": "^4.1.2" - }, "dependencies": { - "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" - } - } + "punycode": "^1.3.2" } }, - "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==" + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true }, - "check-types": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz", - "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==" + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } + "bser": "2.1.1" } }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } }, - "ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==" + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } }, - "classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "requires": { - "source-map": "~0.6.0" + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.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==", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "requires": { - "escape-string-regexp": "5.0.0" + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "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/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" - } + "ms": "2.0.0" } }, - "cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "dev": true + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "clipboardy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", - "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", - "dev": true, - "requires": { - "arch": "^2.2.0", - "execa": "^5.1.1", - "is-wsl": "^2.2.0" + "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==", + "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" } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "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" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "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==", - "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==", - "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==", - "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==" - }, - "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==" + "is-callable": "^1.1.3" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } + "vue-template-compiler": { + "optional": true } } }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - }, - "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==", - "requires": { - "color-name": "~1.1.4" + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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==" - }, - "colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" - }, - "colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" } }, - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, + "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", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", "dependencies": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } }, - "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" + "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" } }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "engines": { + "node": ">= 14.17" + } }, - "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==" + "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" + } }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "node_modules/framer-motion": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz", + "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==", + "dependencies": { + "@motionone/dom": "10.12.0", + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "popmotion": "11.0.3", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": ">=16.8 || ^17.0.0 || ^18.0.0", + "react-dom": ">=16.8 || ^17.0.0 || ^18.0.0" + } }, - "core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==" + "node_modules/framesync": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz", + "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==", + "dependencies": { + "tslib": "^2.1.0" + } }, - "core-js-compat": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", - "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", - "requires": { - "browserslist": "^4.21.5" + "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" } }, - "core-js-pure": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.1.tgz", - "integrity": "sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg==" + "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" + } }, - "core-util-is": { + "node_modules/fs-monkey": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" }, - "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "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" - } + "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==" }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "requires": { - "postcss-selector-parser": "^6.0.9" + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "css-declaration-sorter": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", - "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==" + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "requires": { - "postcss-selector-parser": "^6.0.9" + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" } }, - "css-loader": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", - "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.19", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "requires": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==" + "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", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" } }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" + "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==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "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" } }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, - "cssdb": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.5.4.tgz", - "integrity": "sha512-fGD+J6Jlq+aurfE1VDXlLS4Pt0VtNlu2+YgfGOdMxRyl/HQ9bDiHTwSck1Yz8A97Dt/82izSK6Bp/4nVqacOsg==" + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "cssesc": { + "node_modules/global-prefix": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "requires": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" } }, - "cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "requires": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==" + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" - }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "requires": { - "cssom": "~0.3.6" - }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - } + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "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" } }, - "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" + "node_modules/got": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", + "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, - "decompress-response": { + "node_modules/gzip-size": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - }, + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "deep-equal": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", - "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", - "requires": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } }, - "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==" + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "requires": { - "execa": "^5.0.0" + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + "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" + } }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + "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==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "define-properties": { + "node_modules/he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + "node_modules/hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } }, - "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==" + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dependencies": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" } }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" }, - "diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==" + "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==" }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" } }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "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" + } }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + "node_modules/html-webpack-plugin": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", + "integrity": "sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } }, - "dns-packet": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", - "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", - "requires": { - "@leichtgewicht/ip-codec": "^2.0.1" + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "dns-socket": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-4.2.2.tgz", - "integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==", - "requires": { - "dns-packet": "^5.2.4" + "node_modules/htmlparser2/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" + "node_modules/htmlparser2/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/htmlparser2/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "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" } }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dependencies": { - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true } } }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "requires": { - "webidl-conversions": "^5.0.0" + "node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - } + "engines": { + "node": ">=10.19.0" } }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { - "domelementtype": "^2.2.0" - }, + "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": { - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - } + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" } }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "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" } }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "dotenv-expand": { + "node_modules/icss-utils": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "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/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" }, - "ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", - "requires": { - "jake": "^10.8.5" + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" } }, - "electron-to-chromium": { - "version": "1.4.371", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.371.tgz", - "integrity": "sha512-jlBzY4tFcJaiUjzhRTCWAqRvTO/fWzjA3Bls0mykzGZ7zvcMP7h05W6UcgzfT9Ca1SW2xyKDOFRyI0pQeRNZGw==" - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "enhanced-resolve": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", - "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } }, - "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==", - "requires": { - "is-arrayish": "^0.2.1" + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" } }, - "error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "requires": { - "stackframe": "^1.3.4" + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", + "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/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dependencies": { "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "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==" - }, - "es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "engines": { + "node": ">=8" } }, - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" - }, - "es-set-tostringtag": { + "node_modules/ipaddr.js": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "engines": { + "node": ">= 10" } }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "requires": { - "has": "^1.0.3" + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "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==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" - }, - "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 - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "requires": { - "prelude-ls": "~1.1.2" - } - } + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==" - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "node_modules/is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dependencies": { + "has": "^1.0.3" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "requires": { - "debug": "^3.2.7" + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "requires": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" } }, - "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" } }, - "eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" + "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==", + "engines": { + "node": ">=6" } }, - "eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", - "requires": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "ip-regex": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "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", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "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==", + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==" + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } }, - "eslint-plugin-testing-library": { - "version": "5.10.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.10.3.tgz", - "integrity": "sha512-0yhsKFsjHLud5PM+f2dWr9K3rqYzMy4cSHs3lcmFYMa1CdSzRvHGgXvsFarBjZ41gU8jhTdMIkg8jHLxGJqLqw==", - "requires": { - "@typescript-eslint/utils": "^5.58.0" + "node_modules/is-online": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/is-online/-/is-online-10.0.0.tgz", + "integrity": "sha512-WCPdKwNDjXJJmUubf2VHLMDBkUZEtuOvpXUfUnUFbEnM6In9ByiScL4f4jKACz/fsb2qDkesFerW3snf/AYz3A==", + "dependencies": { + "got": "^12.1.0", + "p-any": "^4.0.0", + "p-timeout": "^5.1.0", + "public-ip": "^5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" } }, - "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==" - }, - "eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "requires": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "node_modules/is-port-reachable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "requires": { - "estraverse": "^5.1.0" + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" } }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "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==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "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" + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, - "expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", - "requires": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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" - }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dev": true, - "requires": { - "punycode": "^1.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - } + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "engines": { + "node": ">=8" } }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "requires": { - "reusify": "^1.0.4" + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "requires": { - "websocket-driver": ">=0.5.1" + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" } }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "requires": { - "bser": "2.1.1" + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" } }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "requires": { - "flat-cache": "^3.0.4" + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" } }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" + "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" } }, - "filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "requires": { - "minimatch": "^5.0.1" - }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - } + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" - }, - "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==", - "requires": { - "to-regex-range": "^5.0.1" + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" } }, - "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" + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "dependencies": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "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==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "node_modules/jest-changed-files/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "node_modules/jest-changed-files/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" + "node_modules/jest-changed-files/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - } + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "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==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "node_modules/jest-circus/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==" - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + "node_modules/jest-circus/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "framer-motion": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz", - "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==", - "requires": { - "@emotion/is-prop-valid": "^0.8.2", - "@motionone/dom": "10.12.0", - "framesync": "6.0.1", - "hey-listen": "^1.0.8", - "popmotion": "11.0.3", - "style-value-types": "5.0.0", - "tslib": "^2.1.0" + "node_modules/jest-circus/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "framesync": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz", - "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==", - "requires": { - "tslib": "^2.1.0" + "node_modules/jest-circus/node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "node_modules/jest-circus/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "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==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "node_modules/jest-circus/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true + "node_modules/jest-circus/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "node_modules/jest-circus/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "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==" + "node_modules/jest-circus/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "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==" + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "node_modules/jest-config/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "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", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + "node_modules/jest-config/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "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==" + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "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==" + "node_modules/jest-config/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "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==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "node_modules/jest-config/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.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" + "node_modules/jest-config/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "requires": { - "is-glob": "^4.0.3" + "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "node_modules/jest-config/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" + "node_modules/jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "requires": { - "define-properties": "^1.1.3" + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "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" + "node_modules/jest-each/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "got": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", - "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" + "node_modules/jest-each/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "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==" - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "requires": { - "duplexer": "^0.1.2" + "node_modules/jest-each/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + "node_modules/jest-each/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + "node_modules/jest-each/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" + "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + "node_modules/jest-each/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "requires": { - "get-intrinsic": "^1.1.1" + "node_modules/jest-environment-jsdom/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "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==" + "node_modules/jest-environment-jsdom/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "node_modules/jest-environment-jsdom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" + "node_modules/jest-environment-jsdom/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "hey-listen": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", - "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" + "node_modules/jest-environment-node/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" + "node_modules/jest-environment-node/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, + "node_modules/jest-environment-node/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "requires": { - "whatwg-encoding": "^1.0.5" + "node_modules/jest-environment-node/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } }, - "html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "requires": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" + "node_modules/jest-haste-map/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - } + "@types/yargs-parser": "*" } }, - "html-webpack-plugin": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", - "integrity": "sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==", - "requires": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" + "node_modules/jest-haste-map/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "node_modules/jest-haste-map/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" }, - "dependencies": { - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" - }, - "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" + "node_modules/jest-jasmine2/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "node_modules/jest-jasmine2/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" + "node_modules/jest-jasmine2/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" + "node_modules/jest-jasmine2/node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "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" + "node_modules/jest-jasmine2/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "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==" - }, - "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" + "node_modules/jest-jasmine2/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==" - }, - "idb": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", - "requires": { - "harmony-reflect": "^1.4.6" + "node_modules/jest-jasmine2/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "node_modules/jest-jasmine2/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" + "node_modules/jest-jasmine2/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "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" + "node_modules/jest-jasmine2/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "node_modules/jest-jasmine2/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "node_modules/jest-jasmine2/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "node_modules/jest-leak-detector/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "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==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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==" + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" + "node_modules/jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "node_modules/jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" - }, - "is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", - "requires": { - "has": "^1.0.3" + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + "node_modules/jest-mock/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "node_modules/jest-mock/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "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==" + "node_modules/jest-mock/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "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==" + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "requires": { - "ip-regex": "^4.0.0" + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + "node_modules/jest-resolve-dependencies/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "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==" + "node_modules/jest-resolve-dependencies/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "node_modules/jest-resolve-dependencies/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "requires": { - "has-tostringtag": "^1.0.0" + "node_modules/jest-resolve/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" + "node_modules/jest-resolve/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "is-online": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/is-online/-/is-online-10.0.0.tgz", - "integrity": "sha512-WCPdKwNDjXJJmUubf2VHLMDBkUZEtuOvpXUfUnUFbEnM6In9ByiScL4f4jKACz/fsb2qDkesFerW3snf/AYz3A==", - "requires": { - "got": "^12.1.0", - "p-any": "^4.0.0", - "p-timeout": "^5.1.0", - "public-ip": "^5.0.0" + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "node_modules/jest-resolve/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "is-port-reachable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", - "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", - "dev": true + "node_modules/jest-runner/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + "node_modules/jest-runner/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" + "node_modules/jest-runner/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + "node_modules/jest-runner/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + "node_modules/jest-runner/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "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==", - "requires": { - "call-bind": "^1.0.2" + "node_modules/jest-runner/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "node_modules/jest-runner/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" + "node_modules/jest-runtime/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "node_modules/jest-runtime/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" + "node_modules/jest-runtime/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "node_modules/jest-runtime/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" + "node_modules/jest-runtime/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "node_modules/jest-runtime/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "node_modules/jest-runtime/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } }, - "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==", - "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" - }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.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==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, + "node_modules/jest-snapshot/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "node_modules/jest-snapshot/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "jest": { + "node_modules/jest-snapshot/node_modules/diff-sequences": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "requires": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - } + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "jest-changed-files": { + "node_modules/jest-snapshot/node_modules/expect": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "requires": { + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "jest-circus": { + "node_modules/jest-snapshot/node_modules/jest-get-type": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "jest-config": { + "node_modules/jest-snapshot/node_modules/jest-message-util": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", + "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", "micromatch": "^4.0.4", - "parse-json": "^5.2.0", "pretty-format": "^27.5.1", "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "stack-utils": "^2.0.3" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "jest-diff": { + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/jest-util": { "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", - "requires": { + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "requires": { - "detect-newline": "^3.0.0" + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "jest-each": { + "node_modules/jest-validate": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "requires": { + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", + "leven": "^3.1.0", "pretty-format": "^27.5.1" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "jest-environment-jsdom": { + "node_modules/jest-validate/node_modules/@jest/types": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - } + "@types/yargs-parser": "*" } }, - "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==" + "node_modules/jest-validate/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "jest-haste-map": { + "node_modules/jest-validate/node_modules/pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - } + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" } }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", "@types/node": "*", "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", "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==" - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "@jest/schemas": "^28.1.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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", - "requires": { + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", + "@jest/types": "^28.1.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^28.1.3", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "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==" + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/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" + } }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" + "node_modules/jest-watch-typeahead/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/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "jest-runner": { + "node_modules/jest-watcher": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" + "string-length": "^4.0.1" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "jest-runtime": { + "node_modules/jest-watcher/node_modules/@jest/types": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "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==" - } + "@types/yargs-parser": "*" } }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "jest-snapshot": { + "node_modules/jest-watcher/node_modules/jest-util": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", + "@types/node": "*", "chalk": "^4.0.0", - "expect": "^27.5.1", + "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" + "picomatch": "^2.2.3" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", - "requires": { - "@jest/types": "^29.5.0", + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, + "engines": { + "node": ">= 10.13.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==", "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "jest-validate": { + "node_modules/jest/node_modules/@jest/types": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "@types/yargs-parser": "*" } }, - "jest-watch-typeahead": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", - "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^28.0.0", - "jest-watcher": "^28.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, + "node_modules/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - } - } - }, - "@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "requires": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "requires": { - "@jest/schemas": "^28.1.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" - } - }, - "@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==" - }, - "jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - } - } - }, - "jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==" - }, - "jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "requires": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "dependencies": { - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "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" - } - } - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "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==" - } - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" - }, - "string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "requires": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" - } - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - } - } - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "jest-watcher": { + "node_modules/jest/node_modules/jest-cli": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "requires": { + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", "jest-util": "^27.5.1", - "string-length": "^4.0.1" + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } } }, - "jest-worker": { + "node_modules/jest/node_modules/jest-util": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "requires": { + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "jiti": { + "node_modules/jiti": { "version": "1.18.2", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==" + "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "bin": { + "jiti": "bin/jiti.js" + } }, - "js-cookie": { + "node_modules/js-cookie": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==" + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "engines": { + "node": ">=14" + } }, - "js-sdsl": { + "node_modules/js-sdsl": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==" + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } }, - "js-tokens": { + "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==" }, - "js-yaml": { + "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==", - "requires": { + "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "jsdom": { + "node_modules/jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "requires": { + "dependencies": { "abab": "^2.0.5", "acorn": "^8.2.4", "acorn-globals": "^6.0.0", @@ -9241,1451 +12734,2281 @@ "ws": "^7.4.6", "xml-name-validator": "^3.0.0" }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true } } }, - "jsesc": { + "node_modules/jsdom/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "json-buffer": { + "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "json-parse-even-better-errors": { + "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==" }, - "json-schema": { + "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "json-stable-stringify-without-jsonify": { + "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, - "json-to-csv-export": { + "node_modules/json-to-csv-export": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/json-to-csv-export/-/json-to-csv-export-2.1.0.tgz", "integrity": "sha512-xAkBf6f0uLqG7gtCuulqp6BtbIswYMiSTCJ2ctuh2w1W5XvQKywX4Ppkr5Tgm3JUHLgeOspli8zA9Hy494X5WA==" }, - "json5": { + "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "jsonfile": { + "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", + "dependencies": { "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "jsonpointer": { + "node_modules/jsonpointer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } }, - "jsx-ast-utils": { + "node_modules/jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", - "requires": { + "dependencies": { "array-includes": "^3.1.5", "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" } }, - "keyv": { + "node_modules/keyv": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "requires": { + "dependencies": { "json-buffer": "3.0.1" } }, - "kind-of": { + "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } }, - "kleur": { + "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } }, - "klona": { + "node_modules/klona": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==" + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "engines": { + "node": ">= 8" + } }, - "language-subtag-registry": { + "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" }, - "language-tags": { + "node_modules/language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "requires": { + "dependencies": { "language-subtag-registry": "~0.3.2" } }, - "launch-editor": { + "node_modules/launch-editor": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", - "requires": { + "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.7.3" } }, - "leven": { + "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==" + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } }, - "levn": { + "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "requires": { + "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "lie": { + "node_modules/lie": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", - "requires": { + "dependencies": { "immediate": "~3.0.5" } }, - "lilconfig": { + "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } }, - "lines-and-columns": { + "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==" }, - "loader-runner": { + "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } }, - "loader-utils": { + "node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "requires": { + "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "localforage": { + "node_modules/localforage": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", - "requires": { + "dependencies": { "lie": "3.1.1" } }, - "locate-path": { + "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==", - "requires": { + "dependencies": { "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.debounce": { + "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "lodash.memoize": { + "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" }, - "lodash.merge": { + "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, - "lodash.sortby": { + "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" }, - "lodash.uniq": { + "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "loose-envify": { + "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==", - "requires": { + "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "lower-case": { + "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { + "dependencies": { "tslib": "^2.0.3" } }, - "lowercase-keys": { + "node_modules/lowercase-keys": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "lru-cache": { + "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==", - "requires": { + "dependencies": { "yallist": "^3.0.2" } }, - "lz-string": { + "node_modules/lz-string": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==" + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } }, - "magic-string": { + "node_modules/magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "requires": { + "dependencies": { "sourcemap-codec": "^1.4.8" } }, - "make-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==", - "requires": { + "dependencies": { "semver": "^6.0.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "makeerror": { + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "requires": { + "dependencies": { "tmpl": "1.0.5" } }, - "material-ripple-effects": { + "node_modules/material-ripple-effects": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/material-ripple-effects/-/material-ripple-effects-2.0.1.tgz", "integrity": "sha512-hHlUkZAuXbP94lu02VgrPidbZ3hBtgXBtjlwR8APNqOIgDZMV8MCIcsclL8FmGJQHvnORyvoQgC965vPsiyXLQ==" }, - "mdn-data": { + "node_modules/mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" }, - "media-typer": { + "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==" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } }, - "memfs": { + "node_modules/memfs": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", - "requires": { + "dependencies": { "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" } }, - "merge-descriptors": { + "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==" }, - "merge-stream": { + "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==" }, - "merge2": { + "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } }, - "micromatch": { + "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "requires": { + "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "mime": { + "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } }, - "mime-db": { + "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==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "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==", - "requires": { + "dependencies": { "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mimic-fn": { + "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==" + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } }, - "mimic-response": { + "node_modules/mimic-response": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "min-indent": { + "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } }, - "mini-css-extract-plugin": { + "node_modules/mini-css-extract-plugin": { "version": "2.7.5", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", - "requires": { + "dependencies": { "schema-utils": "^4.0.0" }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } - } + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "minimalistic-assert": { + "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "mkdirp": { + "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { + "dependencies": { "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "ms": { + "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==" }, - "multicast-dns": { + "node_modules/multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "requires": { + "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" } }, - "mz": { + "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { + "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, - "nanoid": { + "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "natural-compare": { + "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, - "natural-compare-lite": { + "node_modules/natural-compare-lite": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" }, - "negotiator": { + "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==" + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } }, - "neo-async": { + "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "no-case": { + "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { + "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, - "node-forge": { + "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } }, - "node-int64": { + "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, - "node-releases": { + "node_modules/node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" }, - "normalize-path": { + "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==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } }, - "normalize-range": { + "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } }, - "normalize-url": { + "node_modules/normalize-url": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==" + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "npm-run-path": { + "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==", - "requires": { + "dependencies": { "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "nth-check": { + "node_modules/nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { + "dependencies": { "boolbase": "~1.0.0" } }, - "nwsapi": { + "node_modules/nwsapi": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz", "integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==" }, - "object-assign": { + "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==" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } }, - "object-hash": { + "node_modules/object-hash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-is": { + "node_modules/object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } }, - "object.assign": { + "node_modules/object.assign": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.entries": { + "node_modules/object.entries": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" } }, - "object.fromentries": { + "node_modules/object.fromentries": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.getownpropertydescriptors": { + "node_modules/object.getownpropertydescriptors": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", - "requires": { + "dependencies": { "array.prototype.reduce": "^1.0.5", "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.21.2", "safe-array-concat": "^1.0.0" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.hasown": { + "node_modules/object.hasown": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", - "requires": { + "dependencies": { "define-properties": "^1.1.4", "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.values": { + "node_modules/object.values": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "obuf": { + "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, - "on-finished": { + "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==", - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "on-headers": { + "node_modules/on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } }, - "once": { + "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==", - "requires": { + "dependencies": { "wrappy": "1" } }, - "onetime": { + "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { + "dependencies": { "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "open": { + "node_modules/open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "requires": { + "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "optionator": { + "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "requires": { + "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "p-any": { + "node_modules/p-any": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-any/-/p-any-4.0.0.tgz", "integrity": "sha512-S/B50s+pAVe0wmEZHmBs/9yJXeZ5KhHzOsgKzt0hRdgkoR3DxW9ts46fcsWi/r3VnzsnkKS7q4uimze+zjdryw==", - "requires": { + "dependencies": { "p-cancelable": "^3.0.0", "p-some": "^6.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-cancelable": { + "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "engines": { + "node": ">=12.20" + } }, - "p-limit": { + "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==", - "requires": { + "dependencies": { "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { + "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==", - "requires": { + "dependencies": { "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-retry": { + "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "requires": { + "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" } }, - "p-some": { + "node_modules/p-some": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/p-some/-/p-some-6.0.0.tgz", "integrity": "sha512-CJbQCKdfSX3fIh8/QKgS+9rjm7OBNUTmwWswAFQAhc8j1NR1dsEDETUEuVUtQHZpV+J03LqWBEwvu0g1Yn+TYg==", - "requires": { + "dependencies": { "aggregate-error": "^4.0.0", "p-cancelable": "^3.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-timeout": { + "node_modules/p-timeout": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==" + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "p-try": { + "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==" + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } }, - "param-case": { + "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { + "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, - "parent-module": { + "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==", - "requires": { + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse-json": { + "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==", - "requires": { + "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" } }, - "parse5": { + "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } }, - "pascal-case": { + "node_modules/pascal-case": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { + "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, - "path-exists": { + "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==" + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "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==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } }, - "path-is-inside": { + "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, - "path-key": { + "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==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } }, - "path-parse": { + "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==" }, - "path-to-regexp": { + "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==" }, - "path-type": { + "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==" + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } }, - "performance-now": { + "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, - "picocolors": { + "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, - "picomatch": { + "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "pify": { + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } }, - "pirates": { + "node_modules/pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "engines": { + "node": ">= 6" + } }, - "pkg-dir": { + "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==", - "requires": { + "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": { - "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" - } - }, - "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" - } - }, - "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-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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/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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "pkg-up": { + "node_modules/pkg-up": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { + "dependencies": { "find-up": "^3.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" - } + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" } }, - "popmotion": { + "node_modules/popmotion": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz", "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==", - "requires": { + "dependencies": { "framesync": "6.0.1", "hey-listen": "^1.0.8", "style-value-types": "5.0.0", "tslib": "^2.1.0" } }, - "postcss": { + "node_modules/postcss": { "version": "8.4.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "postcss-attribute-case-insensitive": { + "node_modules/postcss-attribute-case-insensitive": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-browser-comments": { + "node_modules/postcss-browser-comments": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==" + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } }, - "postcss-calc": { + "node_modules/postcss-calc": { "version": "8.2.4", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.9", "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" } }, - "postcss-clamp": { + "node_modules/postcss-clamp": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" } }, - "postcss-color-functional-notation": { + "node_modules/postcss-color-functional-notation": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-color-hex-alpha": { + "node_modules/postcss-color-hex-alpha": { "version": "8.0.4", "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "postcss-color-rebeccapurple": { + "node_modules/postcss-color-rebeccapurple": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-colormin": { + "node_modules/postcss-colormin": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "requires": { + "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-convert-values": { + "node_modules/postcss-convert-values": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "requires": { + "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-custom-media": { + "node_modules/postcss-custom-media": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "postcss-custom-properties": { + "node_modules/postcss-custom-properties": { "version": "12.1.11", "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-custom-selectors": { + "node_modules/postcss-custom-selectors": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "postcss-dir-pseudo-class": { + "node_modules/postcss-dir-pseudo-class": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-discard-comments": { + "node_modules/postcss-discard-comments": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==" + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-discard-duplicates": { + "node_modules/postcss-discard-duplicates": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==" + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-discard-empty": { + "node_modules/postcss-discard-empty": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==" + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-discard-overridden": { + "node_modules/postcss-discard-overridden": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==" + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-double-position-gradients": { + "node_modules/postcss-double-position-gradients": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", - "requires": { + "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-env-function": { + "node_modules/postcss-env-function": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "postcss-flexbugs-fixes": { + "node_modules/postcss-flexbugs-fixes": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==" + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } }, - "postcss-focus-visible": { + "node_modules/postcss-focus-visible": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "postcss-focus-within": { + "node_modules/postcss-focus-within": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "postcss-font-variant": { + "node_modules/postcss-font-variant": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==" + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "postcss-gap-properties": { + "node_modules/postcss-gap-properties": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", - "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==" + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } }, - "postcss-image-set-function": { + "node_modules/postcss-image-set-function": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-import": { + "node_modules/postcss-import": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" } }, - "postcss-initial": { + "node_modules/postcss-initial": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==" + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } }, - "postcss-js": { + "node_modules/postcss-js": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "requires": { + "dependencies": { "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" } }, - "postcss-lab-function": { + "node_modules/postcss-lab-function": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", - "requires": { + "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-load-config": { + "node_modules/postcss-load-config": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "requires": { + "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "postcss-loader": { + "node_modules/postcss-loader": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "requires": { + "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" } }, - "postcss-logical": { + "node_modules/postcss-logical": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==" + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } }, - "postcss-media-minmax": { + "node_modules/postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==" + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "postcss-merge-longhand": { + "node_modules/postcss-merge-longhand": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-merge-rules": { + "node_modules/postcss-merge-rules": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "requires": { + "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-font-values": { + "node_modules/postcss-minify-font-values": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-gradients": { + "node_modules/postcss-minify-gradients": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "requires": { + "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-params": { + "node_modules/postcss-minify-params": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "requires": { + "dependencies": { "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-selectors": { + "node_modules/postcss-minify-selectors": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-modules-extract-imports": { + "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==" + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "postcss-modules-local-by-default": { + "node_modules/postcss-modules-local-by-default": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "requires": { + "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-scope": { + "node_modules/postcss-modules-scope": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-values": { + "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "requires": { + "dependencies": { "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-nested": { + "node_modules/postcss-nested": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" } }, - "postcss-nesting": { + "node_modules/postcss-nesting": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", - "requires": { + "dependencies": { "@csstools/selector-specificity": "^2.0.0", "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-normalize": { + "node_modules/postcss-normalize": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "requires": { + "dependencies": { "@csstools/normalize.css": "*", "postcss-browser-comments": "^4", "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" } }, - "postcss-normalize-charset": { + "node_modules/postcss-normalize-charset": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==" + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-normalize-display-values": { + "node_modules/postcss-normalize-display-values": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-positions": { + "node_modules/postcss-normalize-positions": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-repeat-style": { + "node_modules/postcss-normalize-repeat-style": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-string": { + "node_modules/postcss-normalize-string": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-timing-functions": { + "node_modules/postcss-normalize-timing-functions": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-unicode": { + "node_modules/postcss-normalize-unicode": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "requires": { + "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-url": { + "node_modules/postcss-normalize-url": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "requires": { + "dependencies": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, - "dependencies": { - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - } + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "postcss-normalize-whitespace": { + "node_modules/postcss-normalize-whitespace": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-opacity-percentage": { + "node_modules/postcss-opacity-percentage": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", - "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==" + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } }, - "postcss-ordered-values": { + "node_modules/postcss-ordered-values": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "requires": { + "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-overflow-shorthand": { + "node_modules/postcss-overflow-shorthand": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-page-break": { + "node_modules/postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==" + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } }, - "postcss-place": { + "node_modules/postcss-place": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-preset-env": { + "node_modules/postcss-preset-env": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", - "requires": { + "dependencies": { "@csstools/postcss-cascade-layers": "^1.1.1", "@csstools/postcss-color-function": "^1.1.1", "@csstools/postcss-font-format-keywords": "^1.0.1", @@ -10735,389 +15058,562 @@ "postcss-replace-overflow-wrap": "^4.0.0", "postcss-selector-not": "^6.0.1", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-pseudo-class-any-link": { + "node_modules/postcss-pseudo-class-any-link": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-reduce-initial": { + "node_modules/postcss-reduce-initial": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "requires": { + "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-reduce-transforms": { + "node_modules/postcss-reduce-transforms": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-replace-overflow-wrap": { + "node_modules/postcss-replace-overflow-wrap": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==" + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } }, - "postcss-selector-not": { + "node_modules/postcss-selector-not": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "postcss-selector-parser": { + "node_modules/postcss-selector-parser": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "requires": { + "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "postcss-svgo": { + "node_modules/postcss-svgo": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dependencies": { - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { - "boolbase": "^1.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - } + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/postcss-svgo/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/postcss-svgo/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } + ] + }, + "node_modules/postcss-svgo/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "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/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "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", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" } }, - "postcss-unique-selectors": { + "node_modules/postcss-unique-selectors": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-value-parser": { + "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, - "prelude-ls": { + "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } }, - "pretty-bytes": { + "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "pretty-error": { + "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "requires": { + "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" } }, - "pretty-format": { + "node_modules/pretty-format": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", - "requires": { + "dependencies": { "@jest/schemas": "^29.4.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==" - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "process-nextick-args": { + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "promise": { + "node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "requires": { + "dependencies": { "asap": "~2.0.6" } }, - "prompts": { + "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==", - "requires": { + "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" } }, - "prop-types": { + "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==", - "requires": { + "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, - "proxy-addr": { + "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==", - "requires": { + "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - } + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" } }, - "proxy-from-env": { + "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==" }, - "psl": { + "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, - "public-ip": { + "node_modules/public-ip": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-5.0.0.tgz", "integrity": "sha512-xaH3pZMni/R2BG7ZXXaWS9Wc9wFlhyDVJF47IJ+3ali0TGv+2PsckKxbmo+rnx3ZxiV2wblVhtdS3bohAP6GGw==", - "requires": { + "dependencies": { "dns-socket": "^4.2.2", "got": "^12.0.0", "is-ip": "^3.1.0" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "punycode": { + "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } }, - "q": { + "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } }, - "qs": { + "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { + "dependencies": { "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "querystringify": { + "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, - "queue-microtask": { + "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "quick-lru": { + "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "raf": { + "node_modules/raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { + "dependencies": { "performance-now": "^2.1.0" } }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "range-parser": { + "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==" + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { + "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==", - "requires": { + "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, - "dependencies": { - "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/raw-body/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" } }, - "rc": { + "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, - "requires": { + "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - } + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "react": { + "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "requires": { + "dependencies": { "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "react-app-polyfill": { + "node_modules/react-app-polyfill": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "requires": { + "dependencies": { "core-js": "^3.19.2", "object-assign": "^4.1.1", "promise": "^8.1.0", "raf": "^3.4.1", "regenerator-runtime": "^0.13.9", "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" } }, - "react-dev-utils": { + "node_modules/react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "requires": { + "dependencies": { "@babel/code-frame": "^7.16.0", "address": "^1.1.2", "browserslist": "^4.18.1", @@ -11143,87 +15639,126 @@ "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==" - }, - "loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==" - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" } }, - "react-dom": { + "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==", - "requires": { + "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" } }, - "react-error-overlay": { + "node_modules/react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, - "react-is": { + "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==" }, - "react-json-to-csv": { + "node_modules/react-json-to-csv": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/react-json-to-csv/-/react-json-to-csv-1.2.0.tgz", "integrity": "sha512-4yBorgPrkRQDRpbTKDq5vXIb4+CYBorwFxbYyKddmTnFlUGQb/2EOyIrSq6Elp/ygYCVKJK2IwfhEYUaDVyCpw==", - "requires": { + "dependencies": { "json-to-csv-export": "2.1.0" } }, - "react-otp-input": { + "node_modules/react-otp-input": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/react-otp-input/-/react-otp-input-2.4.0.tgz", - "integrity": "sha512-AIgl7u4sS9BTNCxX1xlaS5fPWay/Zml8Ho5LszXZKXrH1C/TiFsTQGmtl13UecQYO3mSF3HUzG2rrDf0sjEFmg==" + "integrity": "sha512-AIgl7u4sS9BTNCxX1xlaS5fPWay/Zml8Ho5LszXZKXrH1C/TiFsTQGmtl13UecQYO3mSF3HUzG2rrDf0sjEFmg==", + "peerDependencies": { + "react": "^16.2.0", + "react-dom": "^16.2.0" + } }, - "react-refresh": { + "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } }, - "react-router": { + "node_modules/react-router": { "version": "6.10.0", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.10.0.tgz", "integrity": "sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==", - "requires": { + "dependencies": { "@remix-run/router": "1.5.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" } }, - "react-router-dom": { + "node_modules/react-router-dom": { "version": "6.10.0", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz", "integrity": "sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==", - "requires": { + "dependencies": { "@remix-run/router": "1.5.0", "react-router": "6.10.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" } }, - "react-scripts": { + "node_modules/react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", - "requires": { + "dependencies": { "@babel/core": "^7.16.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", "@svgr/webpack": "^5.5.0", @@ -11244,7 +15779,6 @@ "eslint-webpack-plugin": "^3.1.1", "file-loader": "^6.2.0", "fs-extra": "^10.0.0", - "fsevents": "^2.3.2", "html-webpack-plugin": "^5.5.0", "identity-obj-proxy": "^3.0.0", "jest": "^27.4.3", @@ -11272,496 +15806,734 @@ "webpack-dev-server": "^4.6.0", "webpack-manifest-plugin": "^4.0.2", "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "react-webcam": { + "node_modules/react-webcam": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/react-webcam/-/react-webcam-7.0.1.tgz", - "integrity": "sha512-8E/Eb/7ksKwn5QdLn67tOR7+TdP9BZdu6E5/DSt20v8yfW/s0VGBigE6VA7R4278mBuBUowovAB3DkCfVmSPvA==" + "integrity": "sha512-8E/Eb/7ksKwn5QdLn67tOR7+TdP9BZdu6E5/DSt20v8yfW/s0VGBigE6VA7R4278mBuBUowovAB3DkCfVmSPvA==", + "peerDependencies": { + "react": ">=16.2.0", + "react-dom": ">=16.2.0" + } }, - "react-xml-parser": { + "node_modules/react-xml-parser": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/react-xml-parser/-/react-xml-parser-1.1.8.tgz", "integrity": "sha512-yX9k9LNCRzzNnFWoyo9cWEjtor6n6VD0Uh7z1ww5rIP6h5vdhJKEmowsm9RumEJMRdr7akcT4mMBScpsz573qQ==" }, - "read-cache": { + "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "requires": { + "dependencies": { "pify": "^2.3.0" } }, - "readable-stream": { + "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==", - "requires": { + "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "readdirp": { + "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { + "dependencies": { "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "recursive-readdir": { + "node_modules/recursive-readdir": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "requires": { + "dependencies": { "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" } }, - "redent": { + "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { + "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "regenerate": { + "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, - "regenerate-unicode-properties": { + "node_modules/regenerate-unicode-properties": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "requires": { + "dependencies": { "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "regenerator-runtime": { + "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, - "regenerator-transform": { + "node_modules/regenerator-transform": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "requires": { + "dependencies": { "@babel/runtime": "^7.8.4" } }, - "regex-parser": { + "node_modules/regex-parser": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" }, - "regexp.prototype.flags": { + "node_modules/regexp.prototype.flags": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "regexpu-core": { + "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "requires": { + "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" } }, - "registry-auth-token": { + "node_modules/registry-auth-token": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, - "requires": { + "dependencies": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" } }, - "registry-url": { + "node_modules/registry-url": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", "dev": true, - "requires": { + "dependencies": { "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "regjsparser": { + "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "requires": { + "dependencies": { "jsesc": "~0.5.0" }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" - } + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" } }, - "relateurl": { + "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } }, - "renderkid": { + "node_modules/renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "requires": { + "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", "lodash": "^4.17.21", "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dependencies": { - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { - "boolbase": "^1.0.0" - } + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } + ] + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "require-directory": { + "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==" + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } }, - "require-from-string": { + "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } }, - "requires-port": { + "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, - "resolve": { + "node_modules/resolve": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "requires": { + "dependencies": { "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-alpn": { + "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, - "resolve-cwd": { + "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==", - "requires": { + "dependencies": { "resolve-from": "^5.0.0" }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - } + "engines": { + "node": ">=8" } }, - "resolve-from": { + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } }, - "resolve-url-loader": { + "node_modules/resolve-url-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "requires": { + "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", "loader-utils": "^2.0.0", "postcss": "^7.0.35", "source-map": "0.6.1" }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "rework-visit": { + "optional": true } } }, - "resolve.exports": { + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "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", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==" + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "engines": { + "node": ">=10" + } }, - "responselike": { + "node_modules/responselike": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "requires": { + "dependencies": { "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "retry": { + "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } }, - "reusify": { + "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "rimraf": { + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "rollup": { + "node_modules/rollup": { "version": "2.79.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", - "requires": { + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { "fsevents": "~2.3.2" } }, - "rollup-plugin-terser": { + "node_modules/rollup-plugin-terser": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "requires": { + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", "serialize-javascript": "^4.0.0", "terser": "^5.0.0" }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dependencies": { - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.0" - } - } + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" } }, - "run-parallel": { + "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "queue-microtask": "^1.2.2" } }, - "safe-array-concat": { + "node_modules/safe-array-concat": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", "has-symbols": "^1.0.3", "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safe-buffer": { + "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==" + "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" + } + ] }, - "safe-regex-test": { + "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==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sanitize.css": { + "node_modules/sanitize.css": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" }, - "sass-loader": { + "node_modules/sass-loader": { "version": "12.6.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "requires": { + "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } } }, - "sax": { + "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, - "saxes": { + "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { + "dependencies": { "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" } }, - "scheduler": { + "node_modules/scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "requires": { + "dependencies": { "loose-envify": "^1.1.0" } }, - "schema-utils": { + "node_modules/schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", - "requires": { + "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "select-hose": { + "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" }, - "selfsigned": { + "node_modules/selfsigned": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "requires": { + "dependencies": { "node-forge": "^1" + }, + "engines": { + "node": ">=10" } }, - "semver": { + "node_modules/semver": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "requires": { + "dependencies": { "lru-cache": "^6.0.0" }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "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" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "send": { + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { + "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -11776,43 +16548,42 @@ "range-parser": "~1.2.1", "statuses": "2.0.1" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "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" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } + "ms": "2.0.0" } }, - "serialize-javascript": { + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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/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==", - "requires": { + "dependencies": { "randombytes": "^2.1.0" } }, - "serve": { + "node_modules/serve": { "version": "14.2.0", "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.0.tgz", "integrity": "sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg==", "dev": true, - "requires": { + "dependencies": { "@zeit/schemas": "2.29.0", "ajv": "8.11.0", "arg": "5.0.2", @@ -11825,39 +16596,19 @@ "serve-handler": "6.1.5", "update-check": "1.5.4" }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "chalk": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", - "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" } }, - "serve-handler": { + "node_modules/serve-handler": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", "dev": true, - "requires": { + "dependencies": { "bytes": "3.0.0", "content-disposition": "0.5.2", "fast-url-parser": "1.1.3", @@ -11866,48 +16617,58 @@ "path-is-inside": "1.0.2", "path-to-regexp": "2.2.1", "range-parser": "1.2.0" - }, + } + }, + "node_modules/serve-handler/node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, "dependencies": { - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", - "dev": true - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "requires": { - "mime-db": "~1.33.0" - } - }, - "path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", - "dev": true - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", - "dev": true - } + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", + "dev": true + }, + "node_modules/serve-handler/node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "serve-index": { + "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "requires": { + "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", @@ -11916,195 +16677,279 @@ "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "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" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" - } + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" } }, - "serve-static": { + "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==", - "requires": { + "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/serve/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "setprototypeof": { + "node_modules/serve/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "shebang-command": { + "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==", - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "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==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } }, - "shell-quote": { + "node_modules/shell-quote": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==" + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "side-channel": { + "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==", - "requires": { + "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "signal-exit": { + "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==" }, - "sisteransi": { + "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, - "slash": { + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } }, - "sockjs": { + "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "requires": { + "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, - "source-list-map": { + "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, - "source-map": { + "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } }, - "source-map-js": { + "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } }, - "source-map-loader": { + "node_modules/source-map-loader": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", - "requires": { + "dependencies": { "abab": "^2.0.5", "iconv-lite": "^0.6.3", "source-map-js": "^1.0.1" }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "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": { - "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==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "source-map-support": { + "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, - "sourcemap-codec": { + "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/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" }, - "spdy": { + "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { + "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" } }, - "spdy-transport": { + "node_modules/spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { + "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", @@ -12113,85 +16958,113 @@ "wbuf": "^1.7.3" } }, - "sprintf-js": { + "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, - "stable": { + "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" }, - "stack-utils": { + "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==", - "requires": { + "dependencies": { "escape-string-regexp": "^2.0.0" }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } + "engines": { + "node": ">=10" } }, - "stackframe": { + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, - "statuses": { + "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } }, - "stop-iteration-iterator": { + "node_modules/stop-iteration-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "requires": { + "dependencies": { "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "string-length": { + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "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==", - "requires": { + "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "string-natural-compare": { + "node_modules/string-natural-compare": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" }, - "string-width": { + "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==", - "requires": { + "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, - "dependencies": { - "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==" - } + "engines": { + "node": ">=8" } }, - "string.prototype.matchall": { + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", "es-abstract": "^1.20.4", @@ -12200,127 +17073,167 @@ "internal-slot": "^1.0.3", "regexp.prototype.flags": "^1.4.3", "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trim": { + "node_modules/string.prototype.trim": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimend": { + "node_modules/string.prototype.trimend": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { + "node_modules/string.prototype.trimstart": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", "es-abstract": "^1.20.4" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "stringify-object": { + "node_modules/stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { + "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "strip-ansi": { + "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==", - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-bom": { + "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } }, - "strip-comments": { + "node_modules/strip-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } }, - "strip-final-newline": { + "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==" + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } }, - "strip-indent": { + "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { + "dependencies": { "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "strip-json-comments": { + "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==" + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "style-loader": { + "node_modules/style-loader": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.2.tgz", - "integrity": "sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw==" + "integrity": "sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } }, - "style-value-types": { + "node_modules/style-value-types": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz", "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==", - "requires": { + "dependencies": { "hey-listen": "^1.0.8", "tslib": "^2.1.0" } }, - "stylehacks": { + "node_modules/stylehacks": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "requires": { + "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "sucrase": { + "node_modules/sucrase": { "version": "3.32.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", - "requires": { + "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "glob": "7.1.6", @@ -12329,59 +17242,86 @@ "pirates": "^4.0.1", "ts-interface-checker": "^0.1.9" }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "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": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "supports-color": { + "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==", - "requires": { + "dependencies": { "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "supports-hyperlinks": { + "node_modules/supports-hyperlinks": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "requires": { + "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" } }, - "supports-preserve-symlinks-flag": { + "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==" + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "svg-parser": { + "node_modules/svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" }, - "svgo": { + "node_modules/svgo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { "chalk": "^2.4.1", "coa": "^2.0.2", "css-select": "^2.0.0", @@ -12396,73 +17336,93 @@ "unquote": "~1.1.1", "util.promisify": "~1.0.0" }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { - "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==", - "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==", - "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==", - "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==" - }, - "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==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "symbol-tree": { + "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, - "tabbable": { + "node_modules/tabbable": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.1.1.tgz", "integrity": "sha512-4kl5w+nCB44EVRdO0g/UGoOp3vlwgycUVtkk/7DPyeLZUCuNFFKCFG6/t/DgHLrUPHjrZg6s5tNm+56Q2B0xyg==" }, - "tailwind-merge": { + "node_modules/tailwind-merge": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.12.0.tgz", - "integrity": "sha512-Y17eDp7FtN1+JJ4OY0Bqv9OA41O+MS8c1Iyr3T6JFLnOgLg3EvcyMKZAnQ8AGyvB5Nxm3t9Xb5Mhe139m8QT/g==" + "integrity": "sha512-Y17eDp7FtN1+JJ4OY0Bqv9OA41O+MS8c1Iyr3T6JFLnOgLg3EvcyMKZAnQ8AGyvB5Nxm3t9Xb5Mhe139m8QT/g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } }, - "tailwindcss": { + "node_modules/tailwindcss": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.1.tgz", "integrity": "sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==", - "requires": { + "dependencies": { "arg": "^5.0.2", "chokidar": "^3.5.3", "color-name": "^1.1.4", @@ -12487,462 +17447,637 @@ "quick-lru": "^5.1.1", "resolve": "^1.22.1", "sucrase": "^3.29.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" } }, - "tapable": { + "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } }, - "temp-dir": { + "node_modules/temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } }, - "tempy": { + "node_modules/tempy": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "requires": { + "dependencies": { "is-stream": "^2.0.0", "temp-dir": "^2.0.0", "type-fest": "^0.16.0", "unique-string": "^2.0.0" }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "terminal-link": { + "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "requires": { + "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "terser": { + "node_modules/terser": { "version": "5.17.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", - "requires": { + "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, - "dependencies": { - "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==" - } + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "terser-webpack-plugin": { + "node_modules/terser-webpack-plugin": { "version": "5.3.7", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", - "requires": { + "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", "terser": "^5.16.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, - "test-exclude": { + "node_modules/terser/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==" + }, + "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==", - "requires": { + "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "text-table": { + "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, - "thenify": { + "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { + "dependencies": { "any-promise": "^1.0.0" } }, - "thenify-all": { + "node_modules/thenify-all": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "requires": { + "dependencies": { "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" } }, - "throat": { + "node_modules/throat": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" }, - "thunky": { + "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, - "tmpl": { + "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, - "to-fast-properties": { + "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==" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } }, - "to-regex-range": { + "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==", - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { + "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==" + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } }, - "tough-cookie": { + "node_modules/tough-cookie": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "requires": { + "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", "universalify": "^0.2.0", "url-parse": "^1.5.3" }, - "dependencies": { - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" - } + "engines": { + "node": ">=6" } }, - "tr46": { + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "requires": { + "dependencies": { "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" } }, - "tryer": { + "node_modules/tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" }, - "ts-interface-checker": { + "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, - "tsconfig-paths": { + "node_modules/tsconfig-paths": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "requires": { + "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "requires": { - "minimist": "^1.2.0" - } - } + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "tslib": { + "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "tsutils": { + "node_modules/tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "requires": { + "dependencies": { "tslib": "^1.8.1" }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "type-check": { + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "requires": { + "dependencies": { "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "type-detect": { + "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==" + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } }, - "type-fest": { + "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "type-is": { + "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==", - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "typed-array-length": { + "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==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "typedarray-to-buffer": { + "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { + "dependencies": { "is-typedarray": "^1.0.0" } }, - "unbox-primitive": { + "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "unicode-canonical-property-names-ecmascript": { + "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } }, - "unicode-match-property-ecmascript": { + "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "requires": { + "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "unicode-match-property-value-ecmascript": { + "node_modules/unicode-match-property-value-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==" + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } }, - "unicode-property-aliases-ecmascript": { + "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } }, - "unique-string": { + "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { + "dependencies": { "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "universalify": { + "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } }, - "unquote": { + "node_modules/unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" }, - "upath": { + "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } }, - "update-browserslist-db": { + "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "requires": { + "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" } }, - "update-check": { + "node_modules/update-check": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", "dev": true, - "requires": { + "dependencies": { "registry-auth-token": "3.3.2", "registry-url": "3.1.0" } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "url-parse": { + "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { + "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, - "util-deprecate": { + "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==" }, - "util.promisify": { + "node_modules/util.promisify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { + "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.2", "has-symbols": "^1.0.1", "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "utila": { + "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" }, - "utils-merge": { + "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==" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } }, - "uuid": { + "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "v8-to-istanbul": { + "node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "requires": { + "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0", "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" } }, - "vary": { + "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==" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } }, - "w3c-hr-time": { + "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "requires": { + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { "browser-process-hrtime": "^1.0.0" } }, - "w3c-xmlserializer": { + "node_modules/w3c-xmlserializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "requires": { + "dependencies": { "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" } }, - "walker": { + "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "requires": { + "dependencies": { "makeerror": "1.0.12" } }, - "watchpack": { + "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "requires": { + "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "wbuf": { + "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { + "dependencies": { "minimalistic-assert": "^1.0.0" } }, - "web-vitals": { + "node_modules/web-vitals": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" }, - "webidl-conversions": { + "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } }, - "webpack": { + "node_modules/webpack": { "version": "5.80.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", - "requires": { + "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", "@webassemblyjs/ast": "^1.11.5", @@ -12968,77 +18103,98 @@ "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } } }, - "webpack-dev-middleware": { + "node_modules/webpack-dev-middleware": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "requires": { + "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } - } + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "webpack-dev-server": { + "node_modules/webpack-dev-server": { "version": "4.13.3", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.3.tgz", "integrity": "sha512-KqqzrzMRSRy5ePz10VhjyL27K2dxqwXQLP5rAKwRJBPUahe7Z2bBWzHw37jeb8GCPKxZRO79ZdQUAPesMh/Nug==", - "requires": { + "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", @@ -13070,230 +18226,363 @@ "webpack-dev-middleware": "^5.3.1", "ws": "^8.13.0" }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true }, - "schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==" + "utf-8-validate": { + "optional": true } } }, - "webpack-manifest-plugin": { + "node_modules/webpack-manifest-plugin": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "requires": { + "dependencies": { "tapable": "^2.0.0", "webpack-sources": "^2.2.0" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - } + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "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", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" } }, - "webpack-sources": { + "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } }, - "websocket-driver": { + "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "requires": { + "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "websocket-extensions": { + "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } }, - "whatwg-encoding": { + "node_modules/whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { + "dependencies": { "iconv-lite": "0.4.24" } }, - "whatwg-fetch": { + "node_modules/whatwg-fetch": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" }, - "whatwg-mimetype": { + "node_modules/whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "requires": { + "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" } }, - "which": { + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-boxed-primitive": { + "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { + "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-collection": { + "node_modules/which-collection": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "requires": { + "dependencies": { "is-map": "^2.0.1", "is-set": "^2.0.1", "is-weakmap": "^2.0.1", "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-typed-array": { + "node_modules/which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "widest-line": { + "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", "dev": true, - "requires": { + "dependencies": { "string-width": "^5.0.1" }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "word-wrap": { + "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } }, - "workbox-background-sync": { + "node_modules/workbox-background-sync": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", - "requires": { + "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.0" } }, - "workbox-broadcast-update": { + "node_modules/workbox-broadcast-update": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", - "requires": { + "dependencies": { "workbox-core": "6.6.0" } }, - "workbox-build": { + "node_modules/workbox-build": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", - "requires": { + "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", "@babel/preset-env": "^7.11.0", @@ -13332,432 +18621,473 @@ "workbox-sw": "6.5.4", "workbox-window": "6.5.4" }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "requires": { - "whatwg-url": "^7.0.0" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "workbox-background-sync": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", - "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", - "requires": { - "idb": "^7.0.1", - "workbox-core": "6.5.4" - } - }, - "workbox-broadcast-update": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", - "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-cacheable-response": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", - "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-core": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", - "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" - }, - "workbox-expiration": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", - "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", - "requires": { - "idb": "^7.0.1", - "workbox-core": "6.5.4" - } - }, - "workbox-google-analytics": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", - "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", - "requires": { - "workbox-background-sync": "6.5.4", - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" - } - }, - "workbox-navigation-preload": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", - "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-precaching": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", - "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", - "requires": { - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" - } - }, - "workbox-range-requests": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", - "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-routing": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", - "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-strategies": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", - "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-streams": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", - "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", - "requires": { - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4" - } - } + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "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", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.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", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-build/node_modules/workbox-background-sync": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", + "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-broadcast-update": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", + "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-cacheable-response": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", + "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-core": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" + }, + "node_modules/workbox-build/node_modules/workbox-expiration": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", + "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-google-analytics": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", + "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", + "dependencies": { + "workbox-background-sync": "6.5.4", + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-navigation-preload": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", + "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-precaching": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", + "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-range-requests": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", + "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-routing": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", + "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-strategies": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", + "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build/node_modules/workbox-streams": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", + "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4" } }, - "workbox-cacheable-response": { + "node_modules/workbox-cacheable-response": { "version": "6.6.1", "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.1.tgz", "integrity": "sha512-85LY4veT2CnTCDxaVG7ft3NKaFbH6i4urZXgLiU4AiwvKqS2ChL6/eILiGRYXfZ6gAwDnh5RkuDbr/GMS4KSag==", - "requires": { - "workbox-core": "6.6.1" - }, + "deprecated": "workbox-background-sync@6.6.1", "dependencies": { - "workbox-core": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.1.tgz", - "integrity": "sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw==" - } + "workbox-core": "6.6.1" } }, - "workbox-core": { + "node_modules/workbox-cacheable-response/node_modules/workbox-core": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.1.tgz", + "integrity": "sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw==", + "deprecated": "this package has been deprecated" + }, + "node_modules/workbox-core": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" }, - "workbox-expiration": { + "node_modules/workbox-expiration": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", - "requires": { + "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.0" } }, - "workbox-google-analytics": { + "node_modules/workbox-google-analytics": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", - "requires": { + "dependencies": { "workbox-background-sync": "6.6.0", "workbox-core": "6.6.0", "workbox-routing": "6.6.0", "workbox-strategies": "6.6.0" } }, - "workbox-navigation-preload": { + "node_modules/workbox-navigation-preload": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", - "requires": { + "dependencies": { "workbox-core": "6.6.0" } }, - "workbox-precaching": { + "node_modules/workbox-precaching": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", - "requires": { + "dependencies": { "workbox-core": "6.6.0", "workbox-routing": "6.6.0", "workbox-strategies": "6.6.0" } }, - "workbox-range-requests": { + "node_modules/workbox-range-requests": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", - "requires": { + "dependencies": { "workbox-core": "6.6.0" } }, - "workbox-recipes": { + "node_modules/workbox-recipes": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", - "requires": { + "dependencies": { "workbox-cacheable-response": "6.5.4", "workbox-core": "6.5.4", "workbox-expiration": "6.5.4", "workbox-precaching": "6.5.4", "workbox-routing": "6.5.4", "workbox-strategies": "6.5.4" - }, + } + }, + "node_modules/workbox-recipes/node_modules/workbox-cacheable-response": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", + "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", "dependencies": { - "workbox-cacheable-response": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", - "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-core": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", - "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" - }, - "workbox-expiration": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", - "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", - "requires": { - "idb": "^7.0.1", - "workbox-core": "6.5.4" - } - }, - "workbox-precaching": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", - "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", - "requires": { - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" - } - }, - "workbox-routing": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", - "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-strategies": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", - "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", - "requires": { - "workbox-core": "6.5.4" - } - } + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-recipes/node_modules/workbox-core": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" + }, + "node_modules/workbox-recipes/node_modules/workbox-expiration": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", + "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-recipes/node_modules/workbox-precaching": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", + "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-recipes/node_modules/workbox-routing": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", + "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-recipes/node_modules/workbox-strategies": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", + "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "dependencies": { + "workbox-core": "6.5.4" } }, - "workbox-routing": { + "node_modules/workbox-routing": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", - "requires": { + "dependencies": { "workbox-core": "6.6.0" } }, - "workbox-strategies": { + "node_modules/workbox-strategies": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", - "requires": { + "dependencies": { "workbox-core": "6.6.0" } }, - "workbox-streams": { + "node_modules/workbox-streams": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", - "requires": { + "dependencies": { "workbox-core": "6.6.0", "workbox-routing": "6.6.0" } }, - "workbox-sw": { + "node_modules/workbox-sw": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==" }, - "workbox-webpack-plugin": { + "node_modules/workbox-webpack-plugin": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz", "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==", - "requires": { + "dependencies": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", "upath": "^1.2.0", "webpack-sources": "^1.4.3", "workbox-build": "6.5.4" }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "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", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" } }, - "workbox-window": { + "node_modules/workbox-window": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", - "requires": { + "dependencies": { "@types/trusted-types": "^2.0.2", "workbox-core": "6.5.4" - }, - "dependencies": { - "workbox-core": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", - "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" - } } }, - "wrap-ansi": { + "node_modules/workbox-window/node_modules/workbox-core": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" + }, + "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==", - "requires": { + "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" } }, - "wrappy": { + "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==" }, - "write-file-atomic": { + "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { + "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, - "ws": { + "node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "xml-name-validator": { + "node_modules/xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, - "xmlchars": { + "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, - "y18n": { + "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } }, - "yallist": { + "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, - "yaml": { + "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } }, - "yargs": { + "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { + "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -13765,17 +19095,29 @@ "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, - "yargs-parser": { + "node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } }, - "yocto-queue": { + "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==" + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/apps/wrapper/assessor-app/src.zip b/apps/wrapper/assessor-app/src.zip new file mode 100644 index 0000000000000000000000000000000000000000..8b1954ad9a70ba62df72f874e3762a504f58d968 GIT binary patch literal 576420 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%0DhtJtfxrm?d%$jXQ&f4G}B~rQv3=4MjA^nP#xn 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 z%0D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\#osLeDodgTQT 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 S7z`2oa|vuDo##O|VEzwlJ-F=v literal 0 HcmV?d00001 diff --git a/apps/wrapper/assessor-app/src/App.js b/apps/wrapper/assessor-app/src/App.js index 045b8f7b..37982b34 100644 --- a/apps/wrapper/assessor-app/src/App.js +++ b/apps/wrapper/assessor-app/src/App.js @@ -49,6 +49,8 @@ function App() { const [state, setState] = useState(); useEffect(() => { const user = getCookie("userData"); + console.log("REACT_APP_WEB_PORTAL_USER_SERVICE_URL-->", process.env.REACT_APP_WEB_PORTAL_USER_SERVICE_URL ) + }, []); return ( <div className="App"> diff --git a/apps/wrapper/assessor-app/src/api/index.js b/apps/wrapper/assessor-app/src/api/index.js index 46444c8b..0f933245 100644 --- a/apps/wrapper/assessor-app/src/api/index.js +++ b/apps/wrapper/assessor-app/src/api/index.js @@ -2,6 +2,7 @@ import axios from "axios"; import { getCookie, makeHasuraCalls } from "../utils"; import customPost from "./customPost"; import customPostPdf from "./customPostPdf"; +import {APIS} from "../constants/index"; //nconst BASE_URL = process.env.REACT_APP_USER_SERVICE_URL; const KEYCLOAK_BASE_URL = @@ -172,6 +173,11 @@ export const updateFormStatus = async (postData) => { return res; }; +export const assessorUpdateForm = async (postData) => { + const res = await customPost.put("rest/assessorUpdateForm", postData); + return res; +}; + export const UploadImage = async (postData) => { const res = await axios.post( `${ENKETO_MANAGER_URL}/form/uploadFile`, @@ -452,6 +458,31 @@ export const getFormSubmissions = () => { return makeHasuraCalls(query); }; +export const isUserActive = async (email) => { + try { + return await keyCloakAxiosService.post( + KEYCLOAK_BASE_URL + "emaildetails", + { + request:{ + fieldName: "email", + fieldValue: email + } + }, + { + headers: { + "Content-Type": "application/json", + Authorization: process.env.REACT_APP_AUTH_TOKEN, + }, + } + ); + + + } catch (err) { + console.log(err); + return err; + } +}; + export const generateOTP = async (email) => { try { const res = await keyCloakAxiosService.post( @@ -500,3 +531,35 @@ export const editUserKeycloak = async (postData) => { ); return res; }; + +export const getEnketoFormData = async (postData) => { + const res = await customPost.post( + APIS.groundAnalysis.viewForm, + postData + ); + return res; +}; + +// export const updateFormSubmissions = async (data) => { +// const res = await customPost.post( +// APIS.FORM.UPDATE_FORM, data +// ) +// return res; +// } + +export const updateFormSubmissions = (data) => { + const query = { + query: ` + mutation ($form_id: Int, $form_data: jsonb, $form_name: String, $submission_status: Boolean, $form_status: String, $assessor_id: String, $applicant_id:Int, $applicant_form_id:Int, $course_id:Int, $submitted_on: date, $schedule_id: Int) { + update_form_submissions(where: {form_id: {_eq: $form_id}}, _set: {form_data: $form_data, form_name: $form_name, submission_status: $submission_status, form_status: $form_status, assessor_id: $assessor_id, applicant_id:$applicant_id, applicant_form_id:$applicant_form_id, course_id:$course_id, submitted_on:$submitted_on, schedule_id: $schedule_id}) { + returning { + form_id + form_data + } + } + } + `, + variables: { ...data }, + }; + return makeHasuraCalls(query); +} diff --git a/apps/wrapper/assessor-app/src/components/CommonLayout/index.jsx b/apps/wrapper/assessor-app/src/components/CommonLayout/index.jsx index b2690abc..6741dc72 100644 --- a/apps/wrapper/assessor-app/src/components/CommonLayout/index.jsx +++ b/apps/wrapper/assessor-app/src/components/CommonLayout/index.jsx @@ -12,9 +12,11 @@ import CommonModal from "../Modal"; // import isOnline from "is-online"; import { logout } from "../../utils/index.js"; import { useEffect } from "react"; -import { base64ToPdf } from "../../api"; import { Tooltip } from "@material-tailwind/react"; import ButtonLoader from "../ButtonLoader"; +import { + base64ToPdf, +} from "../../api"; const CommonLayout = (props) => { const navigate = useNavigate(); @@ -23,13 +25,21 @@ const CommonLayout = (props) => { const [isLoading, setIsLoading] = useState(false); const [online, setOnline] = useState(true); const onlineInterval = useRef(); + const [error, setError] = useState(""); const handleFormDownload = async () => { try { - // setIsLoading(true); + setIsLoading(true); console.log("props.formUrl - ", props.formUrl); - - // var strWindowFeatures = "fullscreen=1,channelmode=1,status=1,resizable=1"; + const res = await base64ToPdf(props.formUrl); + const linkSource = `data:application/pdf;base64,${res.data}`; + const downloadLink = document.createElement("a"); + downloadLink.href = linkSource; + downloadLink.download = `inspection_form_assessor_version_${new Date().toISOString().split('T')[0].split("-").reverse().join("-")}.pdf`; + downloadLink.target = window.safari ? "" : "_blank"; + downloadLink.click(); + + /* // var strWindowFeatures = "fullscreen=1,channelmode=1,status=1,resizable=1"; var win = window.open(props.formUrl, "_blank"); // const MutationObserver = window.MutationObserver || window.WebKitMutationObserver; @@ -37,9 +47,13 @@ const CommonLayout = (props) => { setTimeout(() => { win.print(); win.close(); - }, 2000); + }, 2000); */ + } catch (error) { console.log(error); + setError("Failed to download pdf version of the form."); + } finally { + setIsLoading(false); } }; @@ -79,7 +93,7 @@ const CommonLayout = (props) => { alt="illustration" /> </div> - <div className="bg-white min-h-[calc(100vh-120px)] w-full rounded-t-[60px] overflow-none"> + <div className="bg-white min-h-[calc(100vh-80px)] w-full rounded-t-[60px] overflow-none"> <div className="flex flex-col px-8 py-7 gap-1"> <div className="flex flex-row w-full items-center cursor-pointer gap-4"> <div className="flex grow-0"> diff --git a/apps/wrapper/assessor-app/src/components/GenericForm/index.js b/apps/wrapper/assessor-app/src/components/GenericForm/index.js index 6807acc1..457dbcda 100644 --- a/apps/wrapper/assessor-app/src/components/GenericForm/index.js +++ b/apps/wrapper/assessor-app/src/components/GenericForm/index.js @@ -156,11 +156,11 @@ const GenericForm = (props) => { </p> )} <div className={styles.formContainer}> - <iframe + {encodedFormURI !== "" && (<iframe title="current-form" className={styles.odkForm} src={`${ENKETO_URL}/preview?formSpec=${encodedFormSpec}&xform=${encodedFormURI}`} - /> + />)} <div className={styles.jsonResponse}> <div className={styles.toggleBtn}> <label className={styles.switch}> diff --git a/apps/wrapper/assessor-app/src/constants/apiConstants.js b/apps/wrapper/assessor-app/src/constants/apiConstants.js new file mode 100644 index 00000000..81eb0c7f --- /dev/null +++ b/apps/wrapper/assessor-app/src/constants/apiConstants.js @@ -0,0 +1,9 @@ +export const APIS = { + groundAnalysis: { + viewForm: `/rest/getFormData`, + }, + FORM: { + UPDATE_FORM: "/rest/updateFormSubmission" + } +}; + \ No newline at end of file diff --git a/apps/wrapper/assessor-app/src/constants/index.js b/apps/wrapper/assessor-app/src/constants/index.js new file mode 100644 index 00000000..2a97774c --- /dev/null +++ b/apps/wrapper/assessor-app/src/constants/index.js @@ -0,0 +1 @@ +export { APIS } from './apiConstants'; \ No newline at end of file diff --git a/apps/wrapper/assessor-app/src/pages/AssessmentType.jsx b/apps/wrapper/assessor-app/src/pages/AssessmentType.jsx index b03a9eb8..597ac5f0 100644 --- a/apps/wrapper/assessor-app/src/pages/AssessmentType.jsx +++ b/apps/wrapper/assessor-app/src/pages/AssessmentType.jsx @@ -50,7 +50,7 @@ const AssessmentType = () => { const getFormStatus = async () => { const user = getCookie("userData"); - const id = user?.userRepresentation?.id; + const id = user?.id; const postData = { date: new Date().toJSON().slice(0, 10), assessor_id: id, @@ -203,6 +203,8 @@ const AssessmentType = () => { }; const handleNavigateToForms = (formObj) => { + console.log("formObj =>", formObj); + const component = 'assessment'; if (formObj?.status !== "completed" || !formObj?.status) { let form_name = ""; if (formObj.name.includes(".xml")) { @@ -240,8 +242,8 @@ const AssessmentType = () => { pageDesc="Select the appropriate application type that you'd want to proceed inspection with." logoutDisabled > - <div className="w-full flex flex-col px-6"> - <div className="flex flex-col gap-4"> + <div className="w-full flex flex-col px-6"> + {/* <div className="flex flex-col gap-4"> <div className="font-medium"> Begin by filling the basic information first: </div> @@ -250,14 +252,14 @@ const AssessmentType = () => { onClick={handleNavigateToBasicFrom} > <div className="text-white grow">Basic information</div> - <div className="grow-0 flex justify-center items-center"> + <div className="grow-0 flex justify-center items-center"> <FontAwesomeIcon icon={faChevronRight} className="text-1xl text-white" /> - </div> + </div> </div> - </div> + </div>*/} <div className="my-6"> <hr className="border-slate-300" /> diff --git a/apps/wrapper/assessor-app/src/pages/CaptureLocation.jsx b/apps/wrapper/assessor-app/src/pages/CaptureLocation.jsx index 09fa7ee2..0701f389 100644 --- a/apps/wrapper/assessor-app/src/pages/CaptureLocation.jsx +++ b/apps/wrapper/assessor-app/src/pages/CaptureLocation.jsx @@ -220,7 +220,7 @@ const CaptureLocation = () => { : ROUTE_MAP.assessment_type } logoutDisabled - iconType="close" + // iconType="close" pageTitle="1. Capture Location" pageDesc="Enable location in your mobile settings and capture Institute's location" > diff --git a/apps/wrapper/assessor-app/src/pages/CaptureSelfie.jsx b/apps/wrapper/assessor-app/src/pages/CaptureSelfie.jsx index 11f82e28..823144e0 100644 --- a/apps/wrapper/assessor-app/src/pages/CaptureSelfie.jsx +++ b/apps/wrapper/assessor-app/src/pages/CaptureSelfie.jsx @@ -79,17 +79,17 @@ const CaptureSelfie = () => { return ( <CommonLayout - back={ - role == "Medical" - ? ROUTE_MAP.assessment_type - : ROUTE_MAP.medical_assessments - } + back={ + role == "Medical" + ? ROUTE_MAP.medical_assessments + : ROUTE_MAP.assessment_type + } logoutDisabled - iconType="close" + // iconType="close" pageTitle="2. Capture Selfie" pageDesc="Please ensure that all the assessors are getting captured in the selfie." > - <div className="flex flex-col px-6 gap-5 pb-5 overflow-y-auto"> + <div className="flex flex-col px-6 h-3/4 gap-5 pb-5 overflow-y-auto"> {img === null && ( <div className="flex flex-col w-full gap-5"> <Webcam diff --git a/apps/wrapper/assessor-app/src/pages/ForgotPassword.jsx b/apps/wrapper/assessor-app/src/pages/ForgotPassword.jsx index 72065b64..337fbe42 100644 --- a/apps/wrapper/assessor-app/src/pages/ForgotPassword.jsx +++ b/apps/wrapper/assessor-app/src/pages/ForgotPassword.jsx @@ -6,9 +6,8 @@ import CommonLayout from "../components/CommonLayout"; import Button from "../components/Button"; import OtpInput from "react-otp-input"; -import { sendOtpToMobile, verifyOtpSavePassword } from "../api"; import { logout } from "./../utils/index"; -import { generateOTP, getLoginDetails, editUserKeycloak } from "../api"; +import { generateOTP, getLoginDetails, editUserKeycloak, isUserActive } from "../api"; const ForgotPassword = () => { const navigate = useNavigate(); @@ -60,12 +59,12 @@ const ForgotPassword = () => { } const postData = { - userName: details.userRepresentation.id, + userName: details?.id, request: { - firstName: details.userRepresentation.firstName, - lastName: details.userRepresentation.lastName, + firstName: details?.firstName, + lastName: details?.lastName, enabled: true, - email: details.userRepresentation?.email, + email: details?.email, emailVerified: false, credentials: [ { @@ -92,8 +91,16 @@ const ForgotPassword = () => { return; } else { setEmail(mobile); - let res = await generateOTP(mobile); - if (res === "Sending OTP to user mail") setOtpPage(true); + + const uesrResp = await isUserActive(mobile) + if(uesrResp?.data[0] && uesrResp?.data[0].enabled && uesrResp?.data[0].attributes?.Role[0] === "Assessor"){ + let res = await generateOTP(mobile); + if (res === "Sending OTP to user mail") setOtpPage(true); + } else { + setError("User Not Found. Please contact system admin."); + setTimeout(() => setError(false), 3000); + } + } }; @@ -113,6 +120,11 @@ const ForgotPassword = () => { setDetails(loginRes.data); // const res = await verifyOtpSavePassword(mobile, newPass, otp); if (loginRes.status === 200) { + if(loginRes.data.error === "OTP mismatch"){ + setError("Wrong OTP entered"); + setTimeout(() => setError(false), 3000); + return; + } setChangePasswordPage(true); setOtpPage(false); } else if (loginRes?.params?.err == "INVALID_OTP_USERNAME_PAIR") { @@ -165,7 +177,7 @@ const ForgotPassword = () => { > {/* Entering email id for password change */} {!otpPage && !changePasswordPage && !passChanged && ( - <div className="flex flex-col px-3 py-8 h-100 justify-between h-[90%]"> + <div className="flex flex-col px-3 py-8 h-5/6 justify-between h-[90%]"> <div className="w-full"> <p className="text-secondary text-2xl font-bold"> Enter a valid email id @@ -182,21 +194,24 @@ const ForgotPassword = () => { {error.length ? error : "Please enter a valid email id"} </p> )} - </div> - <Button text="Next" onClick={handleVerifyEmail} /> - </div> + </div> + + <button className="w-full p-2 flex justify-center border" + onClick={handleVerifyEmail} >Next</button> + </div> )} {/* Entering OTP to change the password */} {otpPage && !passChanged && ( - <div className="flex flex-col px-3 py-8 h-100 justify-between h-[90%]"> + <div className="flex flex-col px-3 py-8 h-5/6 justify-between h-[90%]"> <div className="w-full"> <p className="text-secondary text-xl lg:text-2xl font-bold"> - Enter OTP sent on - </p> - <p className="text-primary text-2xl lg:text-3xl font-bold py-4"> - {email} + Enter OTP sent on : + <span className="text-primary text-xl lg:text-3xl py-4"> + {mobile} + </span> </p> + <style> {` .error-otp { @@ -223,6 +238,27 @@ const ForgotPassword = () => { errorStyle={"animate__animated animate__headShake error-otp"} shouldAutoFocus={true} /> + {/* <OtpInput + value={otp} + onChange={setOtp} + numInputs={6} + renderSeparator={<span>-</span>} + renderInput={(props) => <input {...props} />} + shouldAutoFocus={true} + containerStyle={"w-full py-6"} + inputStyle={{ + border: "1px solid #9b9b9b", + borderRadius: "0.25rem", + marginRight: "8px", + height: "3rem", + width: "3rem", + fontSize: "1.5rem", + color: "rgba(0,0,0,0.5)", + }} + isInputNum + hasErrored={error} + errorStyle={"animate__animated animate__headShake error-otp"} + /> */} {error && ( <p className="text-red-500 text-sm font-bold py-1">{error} </p> )} @@ -233,7 +269,7 @@ const ForgotPassword = () => { {/* Change password page */} {!otpPage && changePasswordPage && !passChanged && ( - <div className="flex flex-col px-3 py-8 h-100 justify-between h-[90%]"> + <div className="flex flex-col px-3 py-8 h-5/6 justify-between h-[90%]"> <div className="w-full"> <p className="text-secondary text-xl font-bold"> Change Password Here diff --git a/apps/wrapper/assessor-app/src/pages/LoginMedical.jsx b/apps/wrapper/assessor-app/src/pages/LoginMedical.jsx index 12818526..9b6480a3 100644 --- a/apps/wrapper/assessor-app/src/pages/LoginMedical.jsx +++ b/apps/wrapper/assessor-app/src/pages/LoginMedical.jsx @@ -1,13 +1,15 @@ -import React, { useState } from "react"; +import React, { useState, useEffect } from "react"; import { useNavigate, Link } from "react-router-dom"; import ROUTE_MAP from "../routing/routeMap"; import CommonLayout from "../components/CommonLayout"; import Button from "../components/Button"; -import { login } from "../api"; +import { login, isUserActive } from "../api"; import { setCookie } from "../utils"; + + const LoginMedical = ({ handleStepChangeForLogin }) => { const navigate = useNavigate(); const [error, setError] = useState(""); @@ -31,47 +33,72 @@ const LoginMedical = ({ handleStepChangeForLogin }) => { return; } - const loginRes = await login(username, password); - console.log("login-", loginRes.accessToken); - const role = loginRes?.userRepresentation?.attributes?.Role?.[0]; - console.log(role); - if (loginRes?.accessToken) { - setCookie("userData", loginRes); - navigate(ROUTE_MAP.root_star); + if(!isEmail(username)){ + setError("Please enter valid email address"); + setTimeout(() => { + setError(""); + }, 3000); + return; } - if (loginRes?.errors?.length > 0) { - if (loginRes?.errors?.[0] === "Credentials have authorization issue") { - setError("Invalid Username/ Password"); - } else { - setError(loginRes?.errors?.[0]); + + try { + const userIsValidRes = await isUserActive(username) + if (!userIsValidRes.data?.length || userIsValidRes.data[0].attributes.Role[0] !== "Assessor" ) { + setError("User not found. Please contact system administrator."); + setTimeout(() => { + setError(""); + }, 3000); + return + } + + const loginRes = await login(username, password); + console.log(loginRes) + if (loginRes?.accessToken) { + setCookie("userData", loginRes?.userRepresentation); + navigate(ROUTE_MAP.root_star); + } + if (loginRes?.errors?.length > 0) { + if (loginRes?.errors?.[0] === "Credentials have authorization issue") { + setError("Invalid Username/ Password"); + } else { + setError(loginRes?.errors?.[0]); + } + setTimeout(() => { + setError(""); + }, 3000); + return; + } + + if (loginRes?.error) { + // console.log(loginRes?.error) + loginRes?.error === "Unable to get user details" ? setError("User not found. Please contact administrator") : + setError("Invalid Username/ Password"); + setTimeout(() => { + setError(""); + }, 3000); + return } + + setError("An internal server error occurred"); + setTimeout(() => { + setError(""); + }, 3000); + + } catch (error) { + setError("Something went wrong"); setTimeout(() => { setError(""); }, 3000); - return; } - // if (role == "Assessor") { - // setCookie("userData", loginRes?.userRepresentation); - // navigate(ROUTE_MAP.root); - // } - // if (loginRes.responseCode == "OK" && loginRes.result) { - // let loggedInUser = loginRes.result.data.user; - // setCookie("userData", loggedInUser); - // if (userIsAdminForPortal(loggedInUser.user.registrations)) { - // navigate(ROUTE_MAP.admin); - // } else { - // navigate(ROUTE_MAP.root); - // } - // return; - // } - - setError("An internal server error occurred"); - setTimeout(() => { - setError(""); - }, 3000); + }; + + const isEmail = (value) => { + return /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value) + } + return ( <CommonLayout backFunction={handleStepChangeForLogin} diff --git a/apps/wrapper/assessor-app/src/pages/MedicalAssessments.jsx b/apps/wrapper/assessor-app/src/pages/MedicalAssessments.jsx index 94cc21d8..155f32c7 100644 --- a/apps/wrapper/assessor-app/src/pages/MedicalAssessments.jsx +++ b/apps/wrapper/assessor-app/src/pages/MedicalAssessments.jsx @@ -68,6 +68,7 @@ const MedicalAssessments = () => { const postData = { date: new Date().toJSON().slice(0, 10), assessor_id: assessor_user_id, + applicant_form_status: "Inspection Scheduled" }; const res = await getTodaysAssessment(postData); @@ -129,7 +130,7 @@ const MedicalAssessments = () => { pageTitle="Today's Inspection" > <div - className={`flex flex-col px-6 min-h-[calc(100vh-214px)] overflow-y-scroll pb-6 ${ + className={`flex flex-col px-6 h-3/4 overflow-y-scroll pb-6 ${ !data?.id ? "justify-center" : "" }`} > diff --git a/apps/wrapper/assessor-app/src/pages/MedicalAssessor.jsx b/apps/wrapper/assessor-app/src/pages/MedicalAssessor.jsx index 01fd0367..91be96b5 100644 --- a/apps/wrapper/assessor-app/src/pages/MedicalAssessor.jsx +++ b/apps/wrapper/assessor-app/src/pages/MedicalAssessor.jsx @@ -21,6 +21,7 @@ const MedicalAssessor = () => { const handleClick = (route) => { navigate(route); }; + const [isOnline, setIsOnline] = useState(navigator.onLine); const getAssessorDetails = async (email) => { const postData = { @@ -41,21 +42,22 @@ const MedicalAssessor = () => { }; setToLocalForage("required_data", requiredData); } catch (error) { - console.log("here"); - alert(error); + console.log("here", error); + // alert(error); } }; useEffect(() => { + console.log("MMMMMMMMMMMMMMMMMMMMM") const user = getCookie("userData"); - const email = user?.userRepresentation?.email; + const email = user?.email; getAssessorDetails(email); - const roles = user?.userRepresentation?.attributes?.Role?.[0]; + const roles = user?.attributes?.Role?.[0]; setRole(roles); }, []); return ( - <CommonLayout back="/login" backDisabled logoutDisabled> + <CommonLayout back="/login" backDisabled logoutDisabled={isOnline ? false : true}> <div className="flex flex-col px-5 h-[calc(100vh-176px)] overflow-y-auto justify-between"> <div className="flex flex-col gap-12"> <div className="flex flex-col gap-2 text-center"> diff --git a/apps/wrapper/assessor-app/src/pages/forms/GenericOdkForm.jsx b/apps/wrapper/assessor-app/src/pages/forms/GenericOdkForm.jsx index c20b38d6..059f607d 100644 --- a/apps/wrapper/assessor-app/src/pages/forms/GenericOdkForm.jsx +++ b/apps/wrapper/assessor-app/src/pages/forms/GenericOdkForm.jsx @@ -5,18 +5,20 @@ import { faXmark } from "@fortawesome/free-solid-svg-icons"; import ROUTE_MAP from "../../routing/routeMap"; import { StateContext } from "../../App"; +import XMLParser from "react-xml-parser"; import { getStatusOfForms, registerEvent, - saveFormSubmission, updateFormStatus, getPrefillXML, + getEnketoFormData, + assessorUpdateForm, + updateFormSubmissions } from "../../api"; import { getCookie, getFormData, - handleFormEvents, updateFormData, removeItemFromLocalForage, getSpecificDataFromForage, @@ -41,6 +43,10 @@ const GenericOdkForm = (props) => { const scheduleId = useRef(); const [isPreview, setIsPreview] = useState(false); const [surveyUrl, setSurveyUrl] = useState(""); + const userId = user?.id; + const [formDataFromApi, setFormDataFromApi] = useState(); + const [formStatus, setFormStatus] = useState(""); + const onlineInterval = useRef(); let formSpec = { forms: { [formName]: { @@ -90,6 +96,8 @@ const GenericOdkForm = (props) => { const [errorModal, setErrorModal] = useState(false); const [previewModal, setPreviewModal] = useState(false); const { state } = useContext(StateContext); + const [formLoaded, setFormLoaded] = useState(false); + const [dbInstantitated, setDBInstantiated] = useState(false); let courseObj = undefined; const loading = useRef(false); @@ -103,8 +111,9 @@ const GenericOdkForm = (props) => { longitude: null, }); + const getDataFromLocal = async () => { - const id = user?.userRepresentation?.id; + const id = user?.id; let formData = await getFromLocalForage( `${formName}_${new Date().toISOString().split("T")[0]}` ); @@ -121,6 +130,61 @@ const GenericOdkForm = (props) => { setEncodedFormURI(formURI); }; + useEffect(() => { + setTimeout(async () => { + if(surveyUrl !== "") { + await updateFormDataInEnketoIndexedDB();} + }, 6000); + // onlineInterval.current = setInterval(async () => { + // if(surveyUrl !== "") { + // updateFormDataInEnketoIndexedDB(); + // } + // }, 1000); + // return () => clearInterval(onlineInterval.current); + },[surveyUrl]) + + + /* fetch form data from API */ + const fetchFormData = async () => { + let formData = {}; + let filePath = + process.env.REACT_APP_GCP_AFFILIATION_LINK + formName + ".xml"; + const storedData = await getSpecificDataFromForage("required_data"); + let data = await getFromLocalForage( + `${userId}_${formName}_${new Date().toISOString().split("T")[0]}` + ); + const postData = { form_id: storedData?.applicant_form_id }; + try { + const res = await getEnketoFormData(postData); + formData = res.data.form_submissions[0]; + // setPaymentStatus(formData?.payment_status); + const postDataEvents = { id: storedData?.applicant_form_id }; + // const events = await (postDataEvents); + // setFormStatus(events?.events); + setFormDataFromApi(res.data.form_submissions[0]); + await setToLocalForage( + `${userId}_${startingForm}_${new Date().toISOString().split("T")[0]}`, + { + formData: formData?.form_data, + imageUrls: { ...formData?.imageUrls }, + } + ); + + let formURI = await getPrefillXML( + `${filePath}`, + formSpec.onSuccess, + formData?.form_data, + formData?.imageUrls + ); + setEncodedFormURI(formURI); + return formData.form_data; + } catch (error) { + console.log(error); + } finally { + // setSpinner(false); + } + }; + const updateSubmissionForms = async (course_id) => { let submission_forms_arr = await getSpecificDataFromForage( "submission_forms_arr" @@ -143,22 +207,34 @@ const GenericOdkForm = (props) => { } }; - const updateApplicantForm = (forms_arr, counter) => { - if (forms_arr.length === counter) { - // call the event update function... - registerEvent({ - created_date: getLocalTimeInISOFormat(), - entity_id: courseObj?.applicant_form_id.toString(), - entity_type: "form", - event_name: "OGA Completed", - remarks: `${user?.userRepresentation?.firstName} ${user?.userRepresentation?.lasttName} has completed the On Ground Inspection Analysis`, - }); + const updateApplicantForm = async (forms_arr, counter) => { - updateFormStatus({ - form_id: courseObj.applicant_form_id, - form_status: "OGA Completed", - }); + try { + if (forms_arr.length === counter) { + // call the event update function... + await registerEvent({ + created_date: getLocalTimeInISOFormat(), + entity_id: courseObj?.applicant_form_id.toString(), + entity_type: "form", + event_name: "OGA Completed", + remarks: `${user?.firstName} ${user?.lasttName} has completed the On Ground Inspection Analysis`, + }); + + await updateFormStatus({ + form_id: courseObj.applicant_form_id, + form_status: "OGA Completed", + }); + + await assessorUpdateForm({ + form_id: courseObj.applicant_form_id, + form_status: "OGA Completed", + }); + + } + } catch (error) { + console.log("Something went wrong while updating form_status to OGA Completed ",error) } + }; const getSurveyUrl = async () => { @@ -173,39 +249,33 @@ const GenericOdkForm = (props) => { async function afterFormSubmit(e, saveFlag) { const data = typeof e.data === "string" ? JSON.parse(e.data) : e.data; - try { - const { nextForm, formData, onSuccessData, onFailureData } = data; - if (data?.state === "ON_FORM_SUCCESS_COMPLETED") { - if (!previewFlag) { - await getDataFromLocal(); - handleRenderPreview(); - } else { + const { nextForm, formDataXml, onSuccessData, onFailureData } = data; + // if (data?.state === "ON_FORM_SUCCESS_COMPLETED") { // For read-only forms, it will disable the Submit... if (date) { setErrorModal(true); return; } - const updatedFormData = await updateFormData(formSpec.start); + console.log("formDataXML =>", data); + const updatedFormData = await updateFormData(formSpec.start, data?.formData.xml, data?.formData.files.fileURLs); const storedData = await getSpecificDataFromForage("required_data"); - const res = await saveFormSubmission({ - schedule_id: scheduleId.current, + const requestData = { + form_id: storedData?.applicant_form_id, form_data: updatedFormData, - assessment_type: "assessor", form_name: formSpec.start, submission_status: saveFlag === "draft" ? false : true, + form_status: saveFlag === "draft" ? "" : "In Progress", assessor_id: storedData?.assessor_user_id, applicant_id: storedData?.institute_id, - submitted_on: new Date().toJSON().slice(0, 10), applicant_form_id: courseObj["applicant_form_id"], - round: courseObj["round"], - form_status: saveFlag === "draft" ? "" : "In Progress", course_id: courseObj["course_id"], - }); - - console.log("res - ", res); - if (res?.data?.insert_form_submissions) { + submitted_on: new Date().toJSON().slice(0, 10), + schedule_id: storedData?.schedule_id, + } + const res = await updateFormSubmissions(requestData); + if (res?.data?.update_form_submissions) { updateSubmissionForms(courseObj["course_id"]); // Delete the data from the Local Forage @@ -220,10 +290,8 @@ const GenericOdkForm = (props) => { () => navigate(`${ROUTE_MAP.thank_you}${formName}`), 1000 ); - } } - } - + // } if (nextForm?.type === "form") { setFormId(nextForm.id); setOnFormSuccessData(onSuccessData); @@ -249,14 +317,80 @@ const GenericOdkForm = (props) => { } } + const handleFormLoadEvents = (e) => { + if(typeof e.data === 'string' && e.data.includes('formLoad')) { + setFormLoaded(true); + return; + } + } + + const handleSubmissionEvents = (e) => { + const data = typeof e.data === "string" ? JSON.parse(e.data) : e.data; + console.log("data ==>",data.message); + if(data !== undefined && data.message === 'assessor-form-submitted') { + handleFormEvents(startingForm, afterFormSubmit, e); + return; + } + else { + console.log("form not submitted"); + } + } + const handleEventTrigger = async (e) => { - handleFormEvents(startingForm, afterFormSubmit, e); + handleFormLoadEvents(e); + handleSubmissionEvents(e); }; const bindEventListener = () => { window.addEventListener("message", handleEventTrigger); }; + + const handleFormEvents = async (startingForm, afterFormSubmit, e) => { + const user = getCookie("userData"); + const eventFormData = + typeof e.data === "string" ? JSON.parse(e.data) : e.data; + const event = e; + if ( + ((ENKETO_URL === `${event.origin}/enketo`) || (ENKETO_URL === `${event.origin}/enketo/`)) && + // e.origin === ENKETO_URL && + typeof event.data === "string" && + JSON.parse(event.data).state !== "ON_FORM_SUCCESS_COMPLETED" + ) { + var formDataObject = JSON.parse(event.data); + if (formDataObject.formData) { + let images = formDataObject.formData.files; + let prevData = await getFromLocalForage( + `${startingForm}_${new Date().toISOString().split("T")[0]}` + ); + await setToLocalForage( + `${user?.id}_${startingForm}_${ + new Date().toISOString().split("T")[0] + }`, + { + formData: formDataObject.formData.xml, + imageUrls: { ...prevData?.imageUrls, ...images }, + } + ); + } + } + if(eventFormData?.formData?.draft !== "" && + eventFormData?.formData?.draft === true) { + let db; + const DBOpenRequest = window.indexedDB.open("enketo", 3); + DBOpenRequest.onsuccess = (event) => { + db = DBOpenRequest.result; + + // Clear all the data from the object store + clearData(db); + }; + + //alert("Hello world!"); + + } + afterFormSubmit(event); + }; + const detachEventBinding = () => { window.removeEventListener("message", handleEventTrigger); }; @@ -269,25 +403,54 @@ const GenericOdkForm = (props) => { const iframeElem = document.getElementById("enketo-form"); var iframeContent = iframeElem?.contentDocument || iframeElem?.contentWindow.document; - if (date) { var section = iframeContent?.getElementsByClassName("or-group"); if (!section) return; for (var i = 0; i < section?.length; i++) { var inputElements = section[i].querySelectorAll("input"); + var buttonElements = section[i].querySelectorAll("button"); + buttonElements.forEach((button) => { + if(date !== undefined) { + button.disabled = true; + iframeContent.getElementById("submit-form").style.display = "none"; + iframeContent.getElementById("save-draft").style.display = "none"; + } + }); inputElements.forEach((input) => { + if(date !== undefined) { input.disabled = true; + iframeContent.getElementById("submit-form").style.display = "none"; + iframeContent.getElementById("save-draft").style.display = "none"; + } + // hide admin remarks + if(input.name.toLowerCase().includes('admin') ) { + input.previousSibling.style.display = 'none'; + input.style.display = 'none'; + } }); - } - iframeContent.getElementById("submit-form").style.display = "none"; - iframeContent.getElementById("save-draft").style.display = "none"; + // iframeContent.getElementById("submit-form").style.display = "none"; + // iframeContent.getElementById("save-draft").style.display = "none"; + } + } + // var draftButton = iframeContent.getElementById("save-draft"); + + + const clearData = (db) => { + // open a read/write db transaction, ready for clearing the data + const transaction = db?.transaction(["records"], "readwrite"); + + // report on the success of the transaction completing, when everything is done + // create an object store on the transaction + const objectStore = transaction?.objectStore("records"); + + // Make a request to clear all the data out of the object store + const objectStoreRequest = objectStore?.clear(); + + objectStoreRequest.onsuccess = (event) => { + // report the success of our request + console.log("cleared entry"); + }; } - - var draftButton = iframeContent.getElementById("save-draft"); - draftButton?.addEventListener("click", function () { - alert("Hello world!"); - }); - }; const handleRenderPreview = () => { setPreviewModal(true); @@ -305,6 +468,10 @@ const GenericOdkForm = (props) => { if (!section) return; for (var i = 0; i < section?.length; i++) { var inputElements = section[i].querySelectorAll("input"); + var buttonElements = section[i].querySelectorAll("button"); + buttonElements.forEach((button) => { + button.disabled = true; + }) inputElements.forEach((input) => { input.disabled = true; }); @@ -325,10 +492,103 @@ const GenericOdkForm = (props) => { } }; + const updateFormDataInEnketoIndexedDB = async () => { + // fetch form data only if there is no drafted entry in DB + let formDataresp = await fetchFormData(); + + let db; + const splitURL = surveyUrl.split("/"); + const surveyInstance = splitURL[splitURL.length - 1]; + console.log("surveyInstance", surveyInstance); + const req = window.indexedDB.open('enketo', 3); + + req.onsuccess = (e) => { + // Create the DB connection + db = req.result; +// trial error method + const objectStore = db?.transaction(["records"], "readwrite") + .objectStore("records"); + const enketodataStore = db?.transaction(["data"], "readwrite").objectStore("data"); + + const enketoDataStoreDataRequest = enketodataStore.getAll(); + const objectStoreTitleRequest = objectStore.getAll(); + + enketoDataStoreDataRequest.onSuccess = (e) => { + const data = enketoDataStoreDataRequest.result; + + if(data.length > 0) { + console.log("Hieeeee"); + } + else { + console.log("no enketo result found"); + } + } + + objectStoreTitleRequest.onsuccess = (e) => { + // Grab the data object returned as the result + const data = objectStoreTitleRequest.result; + let valueToBeUpdated = data[data.length - 1]; + if (valueToBeUpdated) { + console.log("value =>", valueToBeUpdated); + // console.log(valueToBeUpdated.xml) + // valueToBeUpdated.xml = formDataresp; + // console.log(valueToBeUpdated.xml) + // Create another request that inserts the item back into the database + const updateTitleRequest = objectStore.put(valueToBeUpdated); + + // Log the transaction that originated this request + console.log( + `The transaction that originated this request is ${updateTitleRequest.transaction}`, + ); + } else { + console.log( + `Adding new entry to indexed DB`, + ); + + var request = indexedDB.open("enketo", 3); // first step is opening the database + request.onsuccess = function (e) { + var db = e.target.result; + var trans = db.transaction(["records"], 'readwrite'); //second step is opening the object store + var store = trans.objectStore("records"); + + const autoSaveObj = { + "instanceId": `__autoSave_${surveyInstance}`, + "enketoId": `${surveyInstance}`, + "name": `__autoSave_${Date.now()}`, + "xml": formDataresp, + "files": [], + "created": Date.now(), + "updated": Date.now(), + "draft": true + } + + var saveReq = store.put(autoSaveObj); + + saveReq.onsuccess = function (e) { + setDBInstantiated(true); + console.log("Success", e) + }; + saveReq.onerror = function (e) { + console.log('Error adding: ' + e); + }; + }; + } + + } + }; + // let formDataresp = '<data xmlns:jr="http://openrosa.org/javarosa" xmlns:orx="http://openrosa.org/xforms" id="Nursing Institutions_Technical_GNM_2" version="1"><username>username not found</username><start>2024-01-04T14:50:17.460+05:30</start><end>2024-01-04T14:50:23.929+05:30</end><today>2024-01-04</today><deviceid>affiliation.upsmfac.org:VrKFBg4TRAOGdDPR</deviceid><subscriberid>subscriberid not found</subscriberid><D><applicant_D1.1/><desktop_DA1.1/><assessor_R2.1>HHHHHHHHHH</assessor_R2.1><assessor_D2.2/><assessor_url1/><applicant_D1.4/><desktop_DA1.2/><assessor_D2.4/><assessor_url4/><assessor_R2.5/><applicant_D1.5/><desktop_DA1.3/><assessor_R5.5/><assessor_D5.5/><assessor_url5/><D1.6/><desktop_DA1.4/><assessor_R6.6/><assessor_D6.6/><assessor_url6/><applicant_D1.8/><applicant_url1/><desktop_DA1.5/><assessor_R6.7/><assessor_D7.7/><assessor_url7/><admin_YN1.1/><assessor_R10.10/></D><meta><instanceID>uuid:f275ac45-6d5b-4bcc-a0ea-7d6df2674466</instanceID></meta></data>' + + + } + + + useEffect(() => { bindEventListener(); getSurveyUrl(); getCourseFormDetails(); + fetchFormData(); + getDataFromLocal(); getFormData({ loading, scheduleId, @@ -339,11 +599,6 @@ const GenericOdkForm = (props) => { setEncodedFormSpec, setEncodedFormURI, }); - - setTimeout(() => { - checkIframeLoaded(); - }, 2500); - return () => { detachEventBinding(); setData(null); @@ -351,6 +606,18 @@ const GenericOdkForm = (props) => { }; }, []); + useEffect(() => { + if(formLoaded === true || dbInstantitated === true) { + checkIframeLoaded(); + } + }, [formLoaded, dbInstantitated]) + + // useEffect(() => { + // if(surveyUrl !== "") { + + // } + // }, [surveyUrl]) + /* async function fetchIframeResources(iframeUrl) { try { @@ -371,98 +638,99 @@ const GenericOdkForm = (props) => { return ( <> - <CommonLayout - {...props.commonLayoutProps} - formUrl={`${ENKETO_URL}/preview?formSpec=${encodedFormSpec}&xform=${encodedFormURI}&userId=${user?.userRepresentation?.id}`} - formPreview={true} - setIsPreview={setIsPreview} + <CommonLayout + {...props.commonLayoutProps} + // formUrl={`${ENKETO_URL}/preview?formSpec=${encodedFormSpec}&xform=${encodedFormURI}&userId=${user?.id}`} + formUrl = {surveyUrl} + formPreview={true} + setIsPreview={setIsPreview} + > + {!isPreview && ( + <div className="flex flex-col items-center"> + {encodedFormURI && date!== undefined && ( + <> + <iframe + title="form" + id="enketo-form" + src={`${ENKETO_URL}/preview?formSpec=${encodedFormSpec}&xform=${encodedFormURI}&userId=${user?.id}`} + style={{ height: "80vh", width: "100%" }} + /> + </> + )} + </div> + )} + + {(surveyUrl !=="" && date === undefined) && ( + <> + <iframe + id="offline-enketo-form" + title="form" + src={surveyUrl} + style={{ height: "80vh", width: "100%", marginTop: "20px" }} + /> + </> + )} + </CommonLayout> + + {errorModal && ( + <CommonModal> + <div> + <p className="text-secondary text-2xl lg:text-3xl text-semibold font-medium text-center"> + Error! + </p> + <div className="flex flex-row justify-center w-full py-4 text-center"> + You can't submit a Preview form. + </div> + <div className="flex flex-row justify-center w-full py-4"> + <div + className="border border-primary bg-primary text-white py-1 px-7 cursor-pointer lg:px-16 lg:py-3 lg:text-xl" + onClick={() => setErrorModal(false)} + > + Close + </div> + </div> + </div> + </CommonModal> + )} + + {previewModal && ( + <CommonModal + moreStyles={{ + padding: "1rem", + maxWidth: "95%", + minWidth: "90%", + maxHeight: "90%", + }} > - {!isPreview && ( - <div className="flex flex-col items-center"> - {encodedFormURI && assData && date && ( - <> - <iframe - title="form" - id="enketo-form" - src={`${ENKETO_URL}/preview?formSpec=${encodedFormSpec}&xform=${encodedFormURI}&userId=${user?.userRepresentation?.id}`} - style={{ height: "80vh", width: "100%" }} - /> - </> - )} + <div className="flex flex-row w-full items-center cursor-pointer gap-4"> + <div className="flex flex-grow font-bold text-xl"> + Preview and Submit form </div> - )} - - {surveyUrl && !date && ( - <> + <div className="flex flex-grow justify-end"> + <FontAwesomeIcon + icon={faXmark} + className="text-2xl lg:text-4xl" + onClick={() => { + setPreviewModal(false); + previewFlag = false; + }} + /> + </div> + </div> + <div className="flex flex-col justify-center w-full py-4"> + {surveyUrl && ( <iframe - id="offline-enketo-form" title="form" - src={surveyUrl} + id="preview-enketo-form" + src={`${ENKETO_URL}/preview?formSpec=${encodedFormSpec}&xform=${encodedFormURI}&userId=${user?.id}`} style={{ height: "80vh", width: "100%", marginTop: "20px" }} /> - </> - )} - </CommonLayout> - - {errorModal && ( - <CommonModal> - <div> - <p className="text-secondary text-2xl lg:text-3xl text-semibold font-medium text-center"> - Error! - </p> - <div className="flex flex-row justify-center w-full py-4 text-center"> - You can't submit a Preview form. - </div> - <div className="flex flex-row justify-center w-full py-4"> - <div - className="border border-primary bg-primary text-white py-1 px-7 cursor-pointer lg:px-16 lg:py-3 lg:text-xl" - onClick={() => setErrorModal(false)} - > - Close - </div> - </div> - </div> - </CommonModal> - )} - - {previewModal && ( - <CommonModal - moreStyles={{ - padding: "1rem", - maxWidth: "95%", - minWidth: "90%", - maxHeight: "90%", - }} - > - <div className="flex flex-row w-full items-center cursor-pointer gap-4"> - <div className="flex flex-grow font-bold text-xl"> - Preview and Submit form - </div> - <div className="flex flex-grow justify-end"> - <FontAwesomeIcon - icon={faXmark} - className="text-2xl lg:text-4xl" - onClick={() => { - setPreviewModal(false); - previewFlag = false; - }} - /> - </div> - </div> - <div className="flex flex-col justify-center w-full py-4"> - {surveyUrl && ( - <iframe - title="form" - id="preview-enketo-form" - src={`${ENKETO_URL}/preview?formSpec=${encodedFormSpec}&xform=${encodedFormURI}&userId=${user?.userRepresentation?.id}`} - style={{ height: "80vh", width: "100%", marginTop: "20px" }} - /> - )} - </div> - </CommonModal> - )} - </> + )} + </div> + </CommonModal> + )} + </> ); }; -export default GenericOdkForm; +export default GenericOdkForm; \ No newline at end of file diff --git a/apps/wrapper/assessor-app/src/utils/enketo/module/store.js b/apps/wrapper/assessor-app/src/utils/enketo/module/store.js new file mode 100644 index 00000000..e4c3e50d --- /dev/null +++ b/apps/wrapper/assessor-app/src/utils/enketo/module/store.js @@ -0,0 +1,971 @@ +/** + * Deals with browser storage + */ + +//import db from 'db.js'; +import utils from './utils'; +//import sniffer from './sniffer'; +//import { t } from './translator'; +//import encryptor from './encryptor'; + +const parser = new DOMParser(); + +/** + * @typedef {import('db.js')} + */ + +/** + * @typedef {import('../../../../app/models/record-model').EnketoRecord} EnketoRecord + */ + +/** + * @typedef {import('../../../../app/models/survey-model').SurveyObject} Survey + */ + +/** + * @typedef {'readonly' | 'readwrite' | 'versionchange'} IDBTransactionMode_ + */ + +let server; +let blobEncoding; +let available = false; + +const databaseName = 'enketo'; + +function init() { + return _checkSupport() + .then( () => indexedDB.open( { + server: databaseName, + version: 3, + schema: { + // the surveys + surveys: { + key: { + keyPath: 'enketoId', + autoIncrement: false + }, + indexes: { + enketoId: { + unique: true + } + } + }, + // the resources that belong to a survey + resources: { + key: { + autoIncrement: false + }, + indexes: { + key: { + unique: true + } + } + }, + // Records in separate table because it makes more sense for getting, updating and removing records + // if they are not stored in one (giant) array or object value. + // Need to watch out for bad iOS bug: http://www.raymondcamden.com/2014/9/25/IndexedDB-on-iOS-8--Broken-Bad + // but with the current keys there is no risk of using the same key in multiple tables. + // InstanceId is the key because instanceName may change when editing a draft. + records: { + key: { + keyPath: 'instanceId', + }, + indexes: { + // useful to check if name exists + name: { + unique: true + }, + // the actual key + instanceId: { + unique: true + }, + // to get all records belonging to a form + enketoId: { + unique: false + } + } + }, + lastSavedRecords: { + /** + * @see Note on `records` about unique keys across IndexedDB object stores + */ + key: { + keyPath: '_enketoId', + autoIncrement: false, + }, + }, + // the files that belong to a record + files: { + key: { + autoIncrement: false + }, + indexes: { + key: { + unique: true + } + } + }, + // settings or other global app properties + properties: { + key: { + keyPath: 'name', + autoIncrement: false + }, + indexes: { + key: { + unique: true + } + } + }, + // Dynamic data, passed by via querystring is stored in a separate table, + // because its update mechanism is separate from the survey + resources. + // Otherwise the all-or-nothing form+resources update would remove this data. + data: { + key: { + keyPath: 'enketoId', + autoIncrement: false + }, + indexes: { + enketoId: { + unique: true + } + } + } + } + } ) ) + .then( s => { + server = s; + } ) + .then( _isWriteable ) + .then( _setBlobStorageEncoding ) + .then( () => { + available = true; + } ) + .catch( error => { + console.error( 'store initialization error', error ); + // make error more useful and throw it further down the line + if ( typeof error === 'string' ) { + error = new Error( error ); + } else if ( !( error instanceof Error ) ) { + /* error = new Error( t( 'store.error.notavailable', { + error: JSON.stringify( error ) + } ) ); */ + } + error.status = 500; + throw error; + } ); +} + +function _checkSupport() { + let error; + + // best to perform this specific check ourselves and not rely on specific error message in db.js. + return new Promise( ( resolve, reject ) => { + if ( typeof indexedDB === 'object' ) { + resolve(); + } else { + /* if ( sniffer.os.ios ) { + error = new Error( t( 'store.error.iosusesafari' ) ); + } else { + error = new Error( t( 'store.error.notsupported' ) ); + } */ + error.status = 500; + reject( error ); + } + } ); +} + +function _isWriteable() { + return propertyStore.update( { + name: 'testWrite', + value: new Date().getTime() + } ); +} + +// detect older indexedDb implementations that do not support storing blobs properly (e.g. Safari 7 and 8) +function _canStoreBlobs() { + const aBlob = new Blob( [ '<a id="a"><b id="b">hey!</b></a>' ], { + type: 'text/xml' + } ); + + return propertyStore.update( { + name: 'testBlobWrite', + value: aBlob + } ); +} + +function _setBlobStorageEncoding() { + + return _canStoreBlobs() + .then( () => { + blobEncoding = false; + } ) + .catch( () => { + console.log( 'This browser is not able to store blobs directly, so blobs will be Base64 encoded' ); + blobEncoding = true; + } ); +} + +const propertyStore = { + get( name ) { + return server.properties.get( name ) + .then( _firstItemOnly ); + }, + update( property ) { + return server.properties.update( property ) + .then( _firstItemOnly ); + }, + removeAll() { + return _flushTable( 'properties' ); + }, + getSurveyStats( id ) { + return server.properties.get( `${id}:stats` ); + }, + incrementRecordCount( record ) { + return propertyStore.getSurveyStats( record.enketoId ) + .then( stats => { + if ( !stats ) { + stats = { + name: `${record.enketoId}:stats` + }; + } + if ( !stats.recordCount ) { + stats.recordCount = 0; + } + ++stats.recordCount; + + return propertyStore.update( stats ); + } ); + }, + addSubmittedInstanceId( record ) { + return propertyStore.getSurveyStats( record.enketoId ) + .then( stats => { + if ( !stats ) { + stats = { + name: `${record.enketoId}:stats` + }; + } + if ( !stats.submitted ) { + stats.submitted = []; + } + stats.submitted.push( record.instanceId ); + + return propertyStore.update( stats ); + } ); + } +}; + +const surveyStore = { + /** + * Obtains a single survey's form HTML and XML model, theme, external instances from storage + * + * @param { string } id - [description] + * @return { Promise<Survey> } [description] + */ + get( id ) { + return server.surveys.get( id ) + .then( _firstItemOnly ) + .then( _deserializeSurvey ); + }, + /** + * Stores a single survey's form HTML and XML model, theme, external instances + * + * @param { Survey } survey - [description] + * @return { Promise<Survey> } [description] + */ + set( survey ) { + if ( !survey.form || !survey.model || !survey.enketoId || !survey.hash ) { + throw new Error( 'Survey not complete' ); + } + + return server.surveys.add( _serializeSurvey( survey ) ) + .then( _firstItemOnly ) + .then( storedSurvey => { + const tasks = []; + if ( survey.binaryDefaults ) { + survey.binaryDefaults.forEach( file => { + tasks.push( surveyStore.resource.update( survey.enketoId, file ) ); + } ); + } + + return Promise.all( tasks ) + // return original survey with orginal survey.binaryDefaults + .then( () => storedSurvey ); + } ) + .then( _deserializeSurvey ); + }, + /** + * Updates a single survey's form HTML and XML model as well any external resources belonging to the form + * + * @param { Survey } survey - [description] + * @return { Promise<Survey> } [description] + */ + update( survey ) { + let obsoleteResources = []; + let obsoleteBinaryDefaults = []; + + if ( !survey.form || !survey.model || !survey.enketoId ) { + throw new Error( 'Survey not complete' ); + } + + const resourceKeys = [].concat( survey.resources || [] ).map( resource => resource.url ); + const binaryDefaultKeys = [].concat( survey.binaryDefaults || [] ).map( resource => resource.url ); + + return server.surveys.get( survey.enketoId ) + .then( result => { + // Determine obsolete resources to be removed + // But if undefined, do not determine this! + if ( survey.resources ) { + obsoleteResources = ( result.resources || [] ) + .filter( existing => resourceKeys.indexOf( existing ) < 0 ); + } + if ( survey.binaryDefaults ) { + obsoleteBinaryDefaults = ( result.binaryDefaults || [] ) + .filter( existing => binaryDefaultKeys.indexOf( existing ) < 0 ); + } + + let update = Object.assign( {}, _serializeSurvey( survey ) ); + + // Note: if survey.resources = undefined/null, do not store empty array + // as it means there are no resources to store (and load) - they may be added later by form-cache.js + if ( survey.resources ) { + update.resources = resourceKeys; + } + + if ( survey.binaryDefaults ) { + update.binaryDefaults = binaryDefaultKeys; + } + + // Update the existing survey + return server.surveys.update( update ); + } ) + .then( _firstItemOnly ) + .then( result => { + const tasks = []; + // Add new or update existing resources, combining binaryDefaults and form resources + ( survey.resources || [] ).concat( survey.binaryDefaults || [] ).forEach( file => { + tasks.push( surveyStore.resource.update( survey.enketoId, file ) ); + } ); + // Remove obsolete resources + obsoleteResources.concat( obsoleteBinaryDefaults ).forEach( key => { + tasks.push( surveyStore.resource.remove( survey.enketoId, key ).then( () => null ) ); + } ); + + // Execution + return Promise.all( tasks ) + .then( resources => { + if ( survey.resources ) { + result.resources = resources.filter( resource => resource != null ); + } + + return _deserializeSurvey( result ); + } ); + } ); + }, + /** + * Removes survey form and all its resources + * + * @param { string } id - Enketo form ID + * @return { Promise<void> } [description] + */ + remove( id ) { + let resources; + const tasks = []; + + return surveyStore.get( id ) + .then( survey => { + resources = survey.resources || []; + resources.forEach( resource => { + tasks.push( surveyStore.resource.remove( id, resource ) ); + } ); + tasks.push( server.surveys.remove( id ) ); + + return Promise.all( tasks ); + } ) + .then( () => {} ); + }, + /** + * removes all surveys and survey resources + * + * @return { Promise } [description] + */ + removeAll() { + return _flushTable( 'surveys' ) + .then( () => _flushTable( 'resources' ) ); + }, + resource: { + /** + * Obtains a form resource + * + * @param { string } id - Enketo survey ID + * @param { string } url - URL of resource + * @return { Promise<Blob> } A promise resolving with the file. + */ + get( id, url ) { + return _getFile( 'resources', id, url ); + }, + /** + * Updates a form resource in storage or creates it if it does not yet exist. + * + * @param { string } id - Enketo survey ID + * @param {{item:Blob, url:string}} resource - Form resource to update. + * @return {Promise<Blob>} A promise resolving with the file that was updated. + */ + update( id, resource ) { + return _updateFile( 'resources', id, resource ); + }, + /** + * Removes form resource + * + * @param { string } id - Enketo survey ID + * @param { string } url - URL of resource + * @return { Promise } [description] + */ + remove( id, url ) { + return server.resources.remove( `${id}:${url}` ); + } + } +}; + +const dataStore = { + /** + * Obtains the stored dynamic data belonging to a form. + * + * @param { string } id - [description] + * @return { Promise } A Promise that resolves with data object + */ + get( id ) { + return server.data.get( id ) + .then( _firstItemOnly ); + }, + /** + * Updates the dynamic data belonging to a form + * + * @param {{enketoId: string, submissionParameter: {name: string, value: string}}} data - object with dynamic data + * @return { Promise } A Promise that resolves with data object + */ + update( data ) { + if ( !data.enketoId ) { + throw new Error( 'Dynamic data object not complete' ); + } + + return server.data.update( data ) + .then( _firstItemOnly ); + }, + /** + * Removes the dynamic data belonging to a form + * + * @param { string } id - [description] + * @return { Promise } [description] + */ + remove( id ) { + return dataStore.remove( id ); + } +}; + + +const recordStore = { + /** + * Obtains a single record (XML + files) + * + * @param { string } instanceId - the instance ID of the record to be retrieved + * @return { Promise } A record from the database. + */ + get( instanceId ) { + const tasks = []; + console.log(instanceId) + console.log(server.records) + return server.records.get( instanceId ) + .then( _firstItemOnly ) + .then( record => { + if ( !record ) { + return record; + } + + record.files.forEach( fileKey => { + tasks.push( recordStore.file.get( record.instanceId, fileKey ) ); + } ); + + return Promise.all( tasks ) + .then( files => { + // filter out the failed files (= undefined) + files = files.filter( file => file ); + record.files = files || []; + + return record; + } ); + } ); + }, + /** + * Obtains all stored records for a particular survey without record files + * + * @param { string } enketoId - EnketoId of the survey the record belongs to + * @param { boolean } finalOnly - Only included records that are 'final' (i.e. not 'draft') + * @return { Promise } [description] + */ + getAll( enketoId, finalOnly ) { + + if ( !enketoId ) { + return Promise.reject( new Error( 'No Enketo ID provided' ) ); + } + + return server.records.query( 'enketoId' ) + .only( enketoId ) + .execute() + .then( records => { + // exclude drafts if required + if ( finalOnly ) { + records = records.filter( record => !record.draft ); + } + + // order by updated property, ascending + return records.sort( ( a, b ) => a.updated - b.updated ); + } ); + }, + /** + * Sets a new single record (XML + files) + * + * @param { object } record - [description] + * @return { Promise } [description] + */ + set( record ) { + let fileKeys; + + if ( !record.instanceId || !record.enketoId || !record.name || !record.xml ) { + return Promise.reject( new Error( 'Record not complete' ) ); + } + + record.files = record.files || []; + + // build array of file keys + fileKeys = record.files.map( file => file.name ); + + return server.records.add( { + instanceId: record.instanceId, + enketoId: record.enketoId, + name: record.name, + xml: record.xml, + files: fileKeys, + created: new Date().getTime(), + updated: new Date().getTime(), + draft: record.draft + } ) + .then( _firstItemOnly ) + .then( propertyStore.incrementRecordCount ) + .then( () => // execution, sequentially + record.files.reduce( ( prevPromise, file ) => prevPromise.then( () => { + if ( file && file.item && file.item instanceof Blob ) { + // file can be a string if it was loaded from storage and remained unchanged + return recordStore.file.update( record.instanceId, file ); + } + + return Promise.resolve(); + } ), Promise.resolve() ) ) + .then( () => record ); + }, + /** + * Updates (or creates) a single record (XML + files) + * + * @param { object } record - [description] + * @return { Promise } [description] + */ + update( record ) { + let fileKeys; + let obsoleteFiles = []; + + if ( !record.instanceId || !record.enketoId || !record.name || !record.xml ) { + throw new Error( 'Record not complete' ); + } + + record.files = record.files || []; + + // build array of file keys + fileKeys = record.files.map( file => file.name ); + + return server.records.get( record.instanceId ) + .then( result => { + // determine obsolete files to be removed + if ( result && result.files ) { + obsoleteFiles = result.files.filter( existing => fileKeys.indexOf( existing ) < 0 ); + } + + // update the existing record + return server.records.update( { + instanceId: record.instanceId, + enketoId: record.enketoId, + name: record.name, + xml: record.xml, + files: fileKeys, + created: ( result && result.created ? result.created : new Date().getTime() ), + updated: new Date().getTime(), + draft: record.draft + } ); + } ) + .then( () => // execution, sequentially + record.files.reduce( ( prevPromise, file ) => prevPromise.then( () => { + // file can be a string if it was loaded from storage and remained unchanged + if ( file && file.item && file.item instanceof Blob ) { + return recordStore.file.update( record.instanceId, file ); + } + + return Promise.resolve(); + } ), Promise.resolve() ) + .then( () => obsoleteFiles.reduce( ( prevPromise, key ) => prevPromise.then( () => recordStore.file.remove( record.instanceId, key ) ), Promise.resolve() ) ) + .then( + () => // resolving with original record (not the array returned by server.records.update) + record + ) ); + }, + /** + * Removes a single record (XML + files) + * + * @param { string } instanceId - the instance ID of the record to remove + * @return { Promise } [description] + */ + remove( instanceId ) { + return server.records.get( instanceId ) + .then( _firstItemOnly ) + .then( record => { + const tasks = []; + const files = record && record.files ? record.files : []; + files.forEach( fileKey => { + tasks.push( recordStore.file.remove( instanceId, fileKey ) ); + } ); + tasks.push( server.records.remove( instanceId ) ); + + return Promise.all( tasks ); + } ); + }, + /** + * removes all records and record files + * + * @return { Promise } [description] + */ + removeAll() { + return _flushTable( 'records' ) + .then( () => _flushTable( 'files' ) ); + }, + file: { + /** + * Obtains a file belonging to a record + * + * @param { string } instanceId - The instanceId that is part of the record (meta>instancID) + * @param { string } fileKey - unique key that identifies the file in the record (meant to be fileName) + * @return { Promise } A promise resolving with a File. + */ + get( instanceId, fileKey ) { + return _getFile( 'files', instanceId, fileKey ); + }, + /** + * Updates an file belonging to a record in storage or creates it if it does not yet exist. This function is exported + * for testing purposes, but not actually used as a public function in Enketo. + * + * @param { string } instanceId - instanceId that is part of the record (meta>instancID) + * @param {{item:Blob, name:string }} file - file object + * @return { Promise } A promise resolving with the File. + */ + update( instanceId, file ) { + return _updateFile( 'files', instanceId, file ); + }, + /** + * Removes a record file + * + * @param { string } instanceId - instanceId that is part of the record (meta>instancID) + * @param { string } fileKey - unique key that identifies the file in the record (meant to be fileName) + * @return { Promise } A promise + */ + remove( instanceId, fileKey ) { + return server.files.remove( `${instanceId}:${fileKey}` ); + } + } +}; + + +/** + * Db.js get and update functions return arrays. This function extracts the first item of the array + * and passes it along. + * + * @param {object[]} results - Array of retrieved database items. + * @return { Promise } [description] + */ +function _firstItemOnly( results ) { + + if ( Array.isArray( results ) ) { + // if an array + return Promise.resolve( results[ 0 ] ); + } else { + // if not an array + return Promise.resolve( results ); + } +} + +/** + * Serializes a survey for storage in IndexedDB: + * + * - externalData XMLDocuments are serialized to strings + * - surveys with encryption enabled are converted to a state which can be deserialized on retrieval + * + * @see {encryptor.serializeEncryptedSurvey} + * @param {Survey} survey + * @return {Promise<Survey>} + */ +function _serializeSurvey( survey ) { + if ( survey ) { + if ( survey.externalData ) { + survey.externalData = survey.externalData.map( instance => { + if ( instance.xml instanceof XMLDocument ) { + instance.xml = new XMLSerializer().serializeToString( instance.xml.documentElement, 'text/xml' ); + } + + return instance; + } ); + } + + // return encryptor.serializeEncryptedSurvey( survey ); + return "" + } +} + +/** + * Deserializes a survey retrieved from IndexedDB: + * + * - externalData strings are deserialized to XMLDocuments + * - surveys which should have encryption enabled are restored to that state + * + * @see {encryptor.deserializeEncryptedSurvey} + * @param {Survey} survey + * @return {Promise<Survey>} + */ +function _deserializeSurvey( survey ) { + if ( survey ) { + if ( survey.externalData ) { + survey.externalData = survey.externalData.map( instance => { + if ( typeof instance.xml === 'string' ) { + instance.xml = parser.parseFromString( instance.xml, 'text/xml' ); + } + + return instance; + } ); + } + + //return encryptor.deserializeEncryptedSurvey( survey ); + return "" + } +} + +/** + * Obtains a file from a specified table + * + * @param { string } table - database table name + * @param { string } id - Enketo id of the survey + * @param { string } key - unique key of the file (url or fileName) + * @return {Promise<Blob>} A promise that resolves with a File. + */ +function _getFile( table, id, key ) { + let prop; + const file = {}; + + return new Promise( ( resolve, reject ) => { + if ( table === 'resources' || table === 'files' ) { + prop = ( table === 'resources' ) ? 'url' : 'name'; + + return server[ table ].get( `${id}:${key}` ) + .then( item => { + file[ prop ] = key; + if ( item instanceof Blob ) { + file.item = item; + resolve( file ); + } else if ( typeof item === 'string' ) { + utils.dataUriToBlob( item ) + .then( item => { + file.item = item; + resolve( file ); + } ); + } else { + // if item is falsy or unexpected + resolve( undefined ); + } + } ) + .catch( reject ); + } else { + reject( new Error( 'Unknown table or missing id or key.' ) ); + } + } ); +} + +/** + * Updates a file in a specified table or creates a new db entry if it doesn't exist. + * + * @param { string } table - database table name + * @param { string } id - Enketo id of the survey + * @param { object } file - new file object (url or name property) + * @param { string } [file.url] - url of the file + * @param { string } [file.name] - name of the file (required if url not provided) + * @param {Blob} file.item - the new file + * @return { Promise } [description] + */ +function _updateFile( table, id, file ) { + let error; + let prop; + let propValue; + + if ( table === 'resources' || table === 'files' ) { + prop = ( table === 'resources' ) ? 'url' : 'name'; + if ( id && file && file.item instanceof Blob && file[ prop ] ) { + propValue = file[ prop ]; + file.key = `${id}:${file[ prop ]}`; + delete file[ prop ]; + /* + * IE doesn't like complex objects with Blob properties so we store + * the blob as the value. + * The files table does not have a keyPath for this reason. + * The format of file (item: Blob, key: string) is db.js way of directing + * it to store the blob instance as the value. + */ + if ( blobEncoding ) { + return utils.blobToDataUri( file.item ) + .then( convertedBlob => { + file.item = convertedBlob; + + return server[ table ].update( file ) + .then( () => { + file[ prop ] = propValue; + delete file.key; + + return file; + } ); + } ); + } else { + return server[ table ].update( file ) + .then( () => { + file[ prop ] = propValue; + delete file.key; + + return file; + } ); + } + } else { + error = new Error( 'DataError. File not complete or ID not provided.' ); + error.name = 'DataError'; + + return Promise.reject( error ); + } + } else { + return Promise.reject( new Error( 'Unknown table or missing ID or key.' ) ); + } +} + +/** + * Completely remove the database (no db.js function for this yet) + * + * @return { object } [description] + */ +function flush() { + let request; + + return new Promise( ( resolve, reject ) => { + try { + server.close( databaseName ); + } catch ( e ) { + console.log( 'Database has probably been removed already. Doing nothing.', e ); + resolve(); + } + + request = indexedDB.deleteDatabase( databaseName ); + + request.onsuccess = () => { + console.log( 'Deleted database successfully' ); + resolve(); + }; + request.onerror = error => { + reject( error ); + }; + request.onblocked = error => { + reject( error ); + }; + } ); +} + +/** + * Removes a table from the store + * + * @param { string } table - The database table to flush + * @return { Promise } [description] + */ +function _flushTable( table ) { + return server[ table ].clear(); +} + +// debugging utilities: TODO: should move elsewhere or be turned into useful functions that return promises +const dump = { + resources() { + server.resources + .query() + .all() + .execute() + .done( results => { + console.log( `${results.length} resources found` ); + results.forEach( item => { + if ( item instanceof Blob ) { + console.log( item.type, item.size, URL.createObjectURL( item ) ); + } else { + console.log( 'resource string with length ', item.length, 'found' ); + } + } ); + } ); + }, + surveys() { + server.surveys + .query() + .all() + .execute() + .done( results => { + console.log( `${results.length} surveys found` ); + results.forEach( item => { + console.log( 'survey', item ); + } ); + } ); + }, + records() { + server.records + .query() + .all() + .execute() + .done( results => { + console.log( `${results.length} records found` ); + results.forEach( item => { + console.log( 'survey', item ); + } ); + } ); + }, + files() { + server.files + .query() + .all() + .execute() + .done( results => { + console.log( `${results.length} resources found` ); + results.forEach( item => { + if ( item instanceof Blob ) { + console.log( item.type, item.size, URL.createObjectURL( item ) ); + } else { + console.log( 'resource string with length ', item.length, 'found' ); + } + } ); + } ); + }, +}; + +export default { + init, + get available() { + return available; + }, + property: propertyStore, + survey: surveyStore, + dynamicData: dataStore, + record: recordStore, + flush, + dump, + get lastSavedRecords() { return server.lastSavedRecords; }, +}; diff --git a/apps/wrapper/assessor-app/src/utils/enketo/module/utils.js b/apps/wrapper/assessor-app/src/utils/enketo/module/utils.js new file mode 100644 index 00000000..7cd5e134 --- /dev/null +++ b/apps/wrapper/assessor-app/src/utils/enketo/module/utils.js @@ -0,0 +1,265 @@ +//import Papa from 'papaparse'; +const dataUriCache = {}; +//import { dataUriToBlobSync } from 'enketo-core/src/js/utils'; + +//var hasArrayBufferView = new Blob( [ new Uint8Array( 100 ) ] ).size == 100; + +/** + * Converts a Blob to a (Base64-coded) dataURL + * + * @param {Blob} blob - The blob + * @param { string } filename - The filename + * @return {Promise<string>} Base64-encoded-converted content of the provided Blob. + */ +function blobToDataUri( blob, filename ) { + let reader; + const cacheKey = ( filename ) ? filename : ( blob && blob.name ? blob.name : null ); + const cacheResult = ( cacheKey ) ? dataUriCache[ cacheKey ] : null; + + return new Promise( ( resolve, reject ) => { + if ( cacheResult ) { + // Using a cache resolves two issues: + // 1. A mysterious and occasional iOS fileReader NOT_FOUND exception when a File is converted a second time. + // 2. Reduce rate of linear performance degradation with each image that is added to a record. + resolve( cacheResult ); + } else if ( !( blob instanceof Blob ) ) { + // There is some quirky Chrome and Safari behaviour if blob is undefined or a string + // so we peform an additional check + reject( new Error( 'TypeError: Require Blob' ) ); + } else { + reader = new FileReader(); + reader.onloadend = () => { + const base64data = reader.result; + if ( cacheKey ) { + dataUriCache[ cacheKey ] = base64data; + } + resolve( base64data ); + }; + reader.onerror = e => { + reject( e ); + }; + reader.readAsDataURL( blob ); + } + } ); +} + +/** + * Converts a Blob to a an ArrayBuffer + * + * @param {Blob} blob - The blob + * @return {Promise<ArrayBuffer>} ArrayBuffer-converted content of the provided Blob. + */ +function blobToArrayBuffer( blob ) { + const reader = new FileReader(); + + return new Promise( ( resolve, reject ) => { + reader.onloadend = () => { + resolve( reader.result ); + }; + reader.onerror = e => { + reject( e ); + }; + + // There is some quirky Chrome and Safari behaviour if blob is undefined or a string + // so we peform an additional check + if ( !( blob instanceof Blob ) ) { + reject( new Error( 'TypeError: Require Blob' ) ); + } else { + reader.readAsArrayBuffer( blob ); + } + } ); +} + +/** + * The inverse of blobToDataUri, that converts a dataURL back to a Blob + * + * @param { string } dataURI - dataURI + * @return {Promise<Blob>} Blob-converted content of provided Data URI. + */ +function dataUriToBlob( dataURI ) { + let blob; + +/* return new Promise( ( resolve, reject ) => { + try { + blob = dataUriToBlobSync( dataURI ); + + resolve( blob ); + } catch ( e ) { + reject( e ); + } + } ); */ +} + + +function getThemeFromFormStr( formStr ) { + const matches = formStr.match( /<\s?form .*theme-([A-z-]+)/ ); + + return ( matches && matches.length > 1 ) ? matches[ 1 ] : null; +} + +function getTitleFromFormStr( formStr ) { + if ( typeof formStr !== 'string' ) { + console.error( 'Cannot extract form title. Not a string.' ); + + return; + } + const matches = formStr.match( /<\s?h3 [^>]*id="form-title">([^<]+)</ ); + + return ( matches && matches.length > 1 ) ? matches[ 1 ] : null; +} + +function csvToArray( csv ) { + const options = { + skipEmptyLines: true + }; + const result ="" + // const result = Papa.parse( csv.trim(), options ); + if ( result?.errors?.length ) { + throw result.errors[ 0 ]; + } + + return result?.data; +} + +function arrayToXml( rows, langMap ) { + //var xmlStr; + let headers = rows.shift(); + //var langAttrs = []; + const langs = []; + + langMap = ( typeof langMap !== 'object' ) ? {} : langMap; + + // Trim the headings + headers = headers.map( header => header.trim() ); + + // Extract and strip languages from headers + headers = headers.map( ( header, index ) => { + const parts = header.split( '::' ); + let lang; + if ( parts && parts.length === 2 ) { + lang = langMap[ parts[ 1 ] ] || parts[ 1 ]; + //langAttrs[ index ] = ' lang="' + lang + '"'; + langs[ index ] = lang; + + return parts[ 0 ]; + } else { + langs[ index ] = ''; + + return header; + } + } ); + + // Check if headers are valid XML node names + headers.every( _throwInvalidXmlNodeName ); + + // create an XML Document + const parser = new DOMParser(); + const xmlDoc = parser.parseFromString( '<root></root>', 'text/xml' ); + rows.forEach( row => { + const item = xmlDoc.createElement( 'item' ); + xmlDoc.firstChild.appendChild( item ); + row.forEach( ( value, index ) => { + const node = xmlDoc.createElement( headers[ index ] ); + if ( langs[ index ] ) { + node.setAttribute( 'lang', langs[ index ] ); + } + // encoding of XML entities is done automatically + node.textContent = value.trim(); + item.appendChild( node ); + } ); + } ); + + return xmlDoc; +} + +function csvToXml( csv, langMap ) { + const result = csvToArray( csv ); + + return arrayToXml( result, langMap ); +} + +/** + * Generates a querystring from an object or an array of objects with `name` and `value` properties. + * + * @param {{name: string, value: string}|Array.<{name: string, value: string}>} obj - Object or array of objects to turn into a querystring. + * @return { string } querystring + */ +function getQueryString( obj ) { + let arr; + let serialized; + + if ( !Array.isArray( obj ) ) { + arr = [ obj ]; + } else { + arr = obj; + } + + serialized = arr.reduce( ( previousValue, item ) => { + let addition = ''; + if ( item && typeof item.name !== 'undefined' && typeof item.value !== 'undefined' && item.value !== '' && item.value !== null ) { + addition = ( previousValue ) ? '&' : ''; + addition += _serializeQueryComponent( item.name, item.value ); + } + + return previousValue + addition; + }, '' ); + + return ( serialized.length > 0 ) ? `?${serialized}` : ''; +} + +function _serializeQueryComponent( name, value ) { + let n; + let serialized = ''; + + // for both arrays of single-level objects and regular single-level objects + if ( typeof value === 'object' ) { + for ( n in value ) { + if ( Object.prototype.hasOwnProperty.call( value, n ) ) { + if ( serialized ) { + serialized += '&'; + } + serialized += `${encodeURIComponent( name )}[${encodeURIComponent( n )}]=${encodeURIComponent( value[ n ] )}`; + } + } + + return serialized; + } + + return `${encodeURIComponent( name )}=${encodeURIComponent( value )}`; +} + +function _throwInvalidXmlNodeName( name ) { + // Note: this is more restrictive than XML spec. + // We cannot accept namespaces prefixes because there is no way of knowing the namespace uri in CSV. + if ( /^(?!xml)[A-Za-z._][A-Za-z0-9._]*$/.test( name ) ) { + return true; + } else { + throw new Error( `CSV column heading "${name}" cannot be turned into a valid XML element` ); + } +} + +/** + * + * @param { string } path - location.pathname in a browser + */ +function getEnketoId( path ) { + path = path.endsWith( '/' ) ? path.substring( 0, path.length - 1 ) : path; + const id = path.substring( path.lastIndexOf( '/' ) + 1 ); + + // previews /preview, and /preview/i can be loaded (unofficially) without an ID. + return id === 'preview' || id === 'i' ? null : id; +} + +export default { + blobToDataUri, + blobToArrayBuffer, + dataUriToBlob, + //dataUriToBlobSync, // why export this? + getThemeFromFormStr, + getTitleFromFormStr, + csvToXml, + arrayToXml, + csvToArray, + getQueryString, + getEnketoId +}; diff --git a/apps/wrapper/assessor-app/src/utils/index.js b/apps/wrapper/assessor-app/src/utils/index.js index 4f5ff25e..de1178ba 100644 --- a/apps/wrapper/assessor-app/src/utils/index.js +++ b/apps/wrapper/assessor-app/src/utils/index.js @@ -59,17 +59,16 @@ export const makeDataForPrefill = (prev, xmlDoc, key, finalObj, formName) => { } }; -export const updateFormData = async (startingForm) => { +export const updateFormData = async (startingForm, formData, fileURLs) => { try { let data = await getFromLocalForage( `${startingForm}_${new Date().toISOString().split("T")[0]}` ); - const GCP_form_url = `${GCP_URL}${startingForm}.xml`; let prefilledForm = await getSubmissionXML( GCP_form_url, - data.formData, - data.imageUrls + formData, + fileURLs ); return prefilledForm; } catch (err) {} @@ -99,7 +98,39 @@ export const logout = () => { window.location = "/web/login"; removeCookie("userData"); serviceWorkerRegistration.unregister(); + let db; + const DBOpenRequest = window.indexedDB.open("enketo", 3); + DBOpenRequest.onsuccess = (event) => { + db = DBOpenRequest.result; + + // Clear all the data from the object store + clearData(db); }; +} + +const clearData = (db) => { + // open a read/write db transaction, ready for clearing the data + const transaction = db?.transaction(["records"], "readwrite"); + const enketodata = db?.transaction(["data"], "readwrite"); + + // report on the success of the transaction completing, when everything is done + // create an object store on the transaction + const objectStore = transaction.objectStore("records"); + const objectStore2 = enketodata.objectStore("data"); + + // Make a request to clear all the data out of the object store + const objectStoreRequest = objectStore.clear(); + const objectStoreRequest2 = objectStore2.clear(); + + objectStoreRequest.onsuccess = (event) => { + // report the success of our request + console.log("cleared entry - store (records)"); + }; + objectStoreRequest2.onsuccess = (event) => { + // report the success of our request + console.log("cleared entry - store 2 (data)"); + }; +} export const removeCookie = (cname) => { try { @@ -165,16 +196,15 @@ export const removeItemFromLocalForage = (key) => { export const handleFormEvents = async (startingForm, afterFormSubmit, e) => { const user = getCookie("userData"); - if ( - ((ENKETO_URL === `${e.origin}/enketo`) || (ENKETO_URL === `${e.origin}/enketo/`)) && + ((ENKETO_URL === `${e?.origin}/enketo`) || (ENKETO_URL === `${e?.origin}/enketo/`)) && // e.origin === ENKETO_URL && typeof e?.data === "string" && JSON.parse(e?.data)?.state !== "ON_FORM_SUCCESS_COMPLETED" ) { - var formData = new XMLParser().parseFromString(JSON.parse(e.data).formData); + var formData = new XMLParser().parseFromString(JSON.parse(e?.data)?.formData); if (formData) { - let images = JSON.parse(e.data).fileURLs; + let images = JSON.parse(e?.data)?.fileURLs; let prevData = await getFromLocalForage( `${startingForm}_${new Date().toISOString().split("T")[0]}` ); @@ -183,7 +213,7 @@ export const handleFormEvents = async (startingForm, afterFormSubmit, e) => { new Date().toISOString().split("T")[0] }`, { - formData: JSON.parse(e.data).formData, + formData: JSON.parse(e?.data)?.formData, imageUrls: { ...prevData?.imageUrls, ...images }, } ); @@ -266,7 +296,9 @@ export const getFormData = async ({ // let prefilledForm = await getPrefillXML(...prefillXMLArgs); // setEncodedFormURI(prefilledForm); - } else setData(null); + } else { + setData(null); + } loading.current = false; }; diff --git a/apps/wrapper/web-portal/package.json b/apps/wrapper/web-portal/package.json index 0d5c9a3d..be369af1 100644 --- a/apps/wrapper/web-portal/package.json +++ b/apps/wrapper/web-portal/package.json @@ -25,7 +25,8 @@ "react-table": "^7.8.0", "react-xml-parser": "^1.1.8", "rxjs": "^7.8.1", - "web-vitals": "^2.1.4" + "web-vitals": "^2.1.4", + "xlsx": "^0.18.5" }, "scripts": { "start": "react-scripts start", diff --git a/apps/wrapper/web-portal/public/files/Template_bulk_user_create.csv b/apps/wrapper/web-portal/public/files/Template_bulk_user_create.csv index a846abd3..674d8c00 100644 --- a/apps/wrapper/web-portal/public/files/Template_bulk_user_create.csv +++ b/apps/wrapper/web-portal/public/files/Template_bulk_user_create.csv @@ -1 +1 @@ -email,mobile_number,fname,lname,role +email,phoneNumber,firstName,lastName,roleName,code diff --git a/apps/wrapper/web-portal/public/index.html b/apps/wrapper/web-portal/public/index.html index 745dd821..aad96486 100644 --- a/apps/wrapper/web-portal/public/index.html +++ b/apps/wrapper/web-portal/public/index.html @@ -30,6 +30,13 @@ <script type="module" src="https://unpkg.com/@material-tailwind/html@latest/scripts/popover.js"></script> <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/fingerprintjs2/1.5.0/fingerprint2.min.js"></script> --> <noscript>You need to enable JavaScript to run this app.</noscript> + <script type="text/javascript"> + if (location.hostname !== 'localhost') { + // To deactivate // console.logs... + console = console || {}; + console.log = function () { }; + } + </script> <div id="root"></div> <!-- <script type="module" src="node_modules/@material-tailwind/html@latest/scripts/popover.js"></script> --> diff --git a/apps/wrapper/web-portal/src/App.css b/apps/wrapper/web-portal/src/App.css index d5f1568c..629628b2 100644 --- a/apps/wrapper/web-portal/src/App.css +++ b/apps/wrapper/web-portal/src/App.css @@ -45,4 +45,48 @@ body, .react-calendar { .active { color: #2563eb; +} + +.counter{ + border-radius: 50px; + border-width:1px; + border-style: solid; + padding: 8px; +} + +.count-indicator-completed{ + border-color: black; + color:black; +} + +.count-indicator-approved{ + border-color: green; + color:green; +} + +.count-indicator-rejected{ + border-color: red; + color:red; +} + +.count-indicator-returned{ + border-color: orange; + color:orange; +} + +.flex-parent-element { + display: flex; +} + +.flex-child-element { + flex: 1; + margin: 10px; +} + +.flex-child-element:first-child { + margin-right: 20px; +} + +.overflow{ + overflow: scroll; } \ No newline at end of file diff --git a/apps/wrapper/web-portal/src/App.js b/apps/wrapper/web-portal/src/App.js index dd4f770a..5e75ebb1 100644 --- a/apps/wrapper/web-portal/src/App.js +++ b/apps/wrapper/web-portal/src/App.js @@ -36,6 +36,10 @@ import FormsOverview from "./pages/manage-forms/FormsOverview"; import CreateForm from "./pages/manage-forms/CreateForm"; import UploadForm from "./pages/manage-forms/UploadForm"; +import ManageRolesList from "./pages/role-management/ManageRolesList"; +import ManageRole from "./pages/role-management/ManageRole"; +import CreateUpdateRole from "./pages/role-management/CreateUpdateRole"; + import DesktopAnalysisList from "./pages/desktop-analysis/DesktopAnalysisList"; import DesktopAnalysisView from "./pages/desktop-analysis/DesktopAnalysisView"; import CertificateManagement from "./pages/certificate-management/CertificateManagement"; @@ -53,9 +57,11 @@ import { ContextAPI } from "./utils/ContextAPI"; import { getCookie, getLocalTimeInISOFormat } from "./utils"; import Toast from "./components/Toast"; + function App() { - console.log("Good afternoon Sharath !!!!!!!") + const [isOnline, setIsOnline] = useState(navigator.onLine); const loggedInUser = getCookie("regulator")?.[0]; + const [spinner, setSpinner] = useState(false); const [toast, setToast] = useState({ toastOpen: false, @@ -64,7 +70,7 @@ function App() { }); const messaging = getMessaging(fireBaseApp); - const onMessageListener = (async () => { + const onMessageListener = (async () => { const messagingResolve = await messaging; if (messagingResolve) { onMessage(messagingResolve, (payload) => { @@ -77,22 +83,35 @@ function App() { })); }); } - })(); + })(); useEffect(() => { getPermissionForToken(); + +setInterval(() => { + // console.log("checking conn",navigator.onLine) + if(!navigator.onLine){ + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "You seem to be offline. Please check your internet connection.", + toastType: "error", + })); + } +}, 5000); + }, []); useEffect(() => { - if (toast) { - /* setTimeout(() => { + if (toast?.toastOpen) { + setTimeout(() => { setToast({ toastOpen: false, toastMsg: "", toastType: "", }); - }, 3000); */ - + }, 3000); + } }, [toast]); @@ -106,7 +125,7 @@ function App() { <BrowserRouter> <Routes> {/* Default landing page */} - { <Route path="/" element={<Navigate to="/auth/login" />} /> } + {<Route path="/" element={<Navigate to="/auth/login" />} />} {/* Register and Login Routes */} <Route path={ADMIN_ROUTE_MAP.auth} element={<Authenticate />}> @@ -124,11 +143,41 @@ function App() { ></Route> */} </Route> - {/* Dashboard routing starts here */} + {loggedInUser?.role === "Desktop-Assessor" && + ( + <Route + path={ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home} + element={<DesktopAnalysis />} + > + <Route index element={<DesktopAnalysisList />}></Route> + <Route + path={`${ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.viewForm}/:formName/:formId`} + element={<DesktopAnalysisView />} + ></Route> + </Route> + + )} + <Route > - {loggedInUser?.role === "Super-Admin" && ( - <Route + + <Route + path="*" + element={ + <Navigate + to={`${loggedInUser?.role === "Super-Admin" + ? ADMIN_ROUTE_MAP.adminModule.manageUsers.home + : ADMIN_ROUTE_MAP.adminModule.manageForms.home + }`} + /> + } + /> + </Route> + {(() => { + switch (loggedInUser?.role) { + case 'Super-Admin': + return <Route> + <Route path={ADMIN_ROUTE_MAP.adminModule.manageUsers.home} element={<ManageUser />} > @@ -138,94 +187,194 @@ function App() { element={<AdminCreateUser />} ></Route> </Route> - )} - {/* Notifications routing starts here */} + {/* Notifications routing starts here */} + <Route + path={`${ADMIN_ROUTE_MAP.adminModule.notifications.home}/:notificationId?`} + element={<Notification />} + > + <Route index element={<NotificationsDetailedView />}></Route> + </Route> + {/*Manage forms routing starts here */} + <Route + path={ADMIN_ROUTE_MAP.adminModule.manageForms.home} + element={<ManageForms />} + > + <Route index element={<FormsOverview />}></Route> <Route - path={`${ADMIN_ROUTE_MAP.adminModule.notifications.home}/:notificationId?`} - element={<Notification />} - > - <Route index element={<NotificationsDetailedView />}></Route> - </Route> - {/*Manage forms routing starts here */} + path={ADMIN_ROUTE_MAP.adminModule.manageForms.createForm} + element={<CreateForm />} + ></Route> <Route - path={ADMIN_ROUTE_MAP.adminModule.manageForms.home} - element={<ManageForms />} - > - <Route index element={<FormsOverview />}></Route> - <Route - path={ADMIN_ROUTE_MAP.adminModule.manageForms.createForm} - element={<CreateForm />} - ></Route> - <Route - path={ADMIN_ROUTE_MAP.adminModule.manageForms.upload} - element={<UploadForm />} - ></Route> - <Route - path={`${ADMIN_ROUTE_MAP.adminModule.manageForms.viewForm}/:formName/:formId`} - element={<CreateForm />} - ></Route> - </Route> + path={ADMIN_ROUTE_MAP.adminModule.manageForms.upload} + element={<UploadForm />} + ></Route> <Route - path={ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home} - element={<DesktopAnalysis />} - > - <Route index element={<DesktopAnalysisList />}></Route> - <Route - path={`${ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.viewForm}/:formName/:formId`} - element={<DesktopAnalysisView />} - ></Route> - </Route> - {/*Ground Inspection routing starts here */} + path={`${ADMIN_ROUTE_MAP.adminModule.manageForms.viewForm}/:formName/:formId`} + element={<CreateForm />} + ></Route> + </Route> + <Route + path={ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home} + element={<DesktopAnalysis />} + > + <Route index element={<DesktopAnalysisList />}></Route> <Route - path={ADMIN_ROUTE_MAP.adminModule.onGroundInspection.home} - element={<GroundInspectionAnalysis />} - > - <Route index element={<GroundInspectionListForms />}></Route> - <Route - path={`${ADMIN_ROUTE_MAP.adminModule.onGroundInspection.viewForm}/:formName/:formId/:instituteName/:round/:date`} - element={<GroundInspectionViewForm />} - ></Route> + path={`${ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.viewForm}/:formName/:formId`} + element={<DesktopAnalysisView />} + ></Route> + </Route> + {/*Ground Inspection routing starts here */} + <Route + path={ADMIN_ROUTE_MAP.adminModule.onGroundInspection.home} + element={<GroundInspectionAnalysis />} + > + <Route index element={<GroundInspectionListForms />}></Route> + <Route + path={`${ADMIN_ROUTE_MAP.adminModule.onGroundInspection.viewForm}/:formName/:formId/:instituteName/:round/:date`} + element={<GroundInspectionViewForm />} + ></Route> + <Route + path={`${ADMIN_ROUTE_MAP.adminModule.onGroundInspection.nocIssued}/:round`} + element={<NocIssued />} + ></Route> + </Route> + {/* Certificate management routing starts here */} + <Route + path={ADMIN_ROUTE_MAP.adminModule.certificateManagement.home} + element={<CertificateManagement />} + > + <Route index element={<CertificateManagementList />}></Route> + </Route> + {/* Schedule management routing starts here */} + <Route + path={ADMIN_ROUTE_MAP.adminModule.scheduleManagement.home} + element={<ScheduleManagement />} + > + <Route index element={<ScheduleManagementList />}></Route> + </Route> + <Route path={ADMIN_ROUTE_MAP.adminModule.dashboard.home} + element={ + <PrivateRoute> + <DashboardLandingPage /> + </PrivateRoute> + } + ></Route> + + <Route + path={ADMIN_ROUTE_MAP.adminModule.roleManagement.home} + element={<ManageRole />} + > + <Route index element={<ManageRolesList />}></Route> <Route - path={`${ADMIN_ROUTE_MAP.adminModule.onGroundInspection.nocIssued}/:round`} - element={<NocIssued />} + path={`${ADMIN_ROUTE_MAP.adminModule.roleManagement.updateRole}/:roleId?/:roleName?`} + element={<CreateUpdateRole />} ></Route> </Route> - {/* Certificate management routing starts here */} + + + <Route path={ADMIN_ROUTE_MAP.adminModule.roleManagement.home} + element={ + <PrivateRoute> + <ManageRolesList /> + </PrivateRoute> + } + ></Route> + </Route> + case 'Desktop-Admin': + return <Route> + {/* Notifications routing starts here */} + <Route + path={`${ADMIN_ROUTE_MAP.adminModule.notifications.home}/:notificationId?`} + element={<Notification />} + > + <Route index element={<NotificationsDetailedView />}></Route> + </Route> + {/*Manage forms routing starts here */} + <Route + path={ADMIN_ROUTE_MAP.adminModule.manageForms.home} + element={<ManageForms />} + > + <Route index element={<FormsOverview />}></Route> <Route - path={ADMIN_ROUTE_MAP.adminModule.certificateManagement.home} - element={<CertificateManagement />} - > - <Route index element={<CertificateManagementList />}></Route> - </Route> - {/* Schedule management routing starts here */} + path={ADMIN_ROUTE_MAP.adminModule.manageForms.createForm} + element={<CreateForm />} + ></Route> <Route - path={ADMIN_ROUTE_MAP.adminModule.scheduleManagement.home} - element={<ScheduleManagement />} - > - <Route index element={<ScheduleManagementList />}></Route> - </Route> - <Route path={ADMIN_ROUTE_MAP.adminModule.dashboard.home} + path={ADMIN_ROUTE_MAP.adminModule.manageForms.upload} + element={<UploadForm />} + ></Route> + <Route + path={`${ADMIN_ROUTE_MAP.adminModule.manageForms.viewForm}/:formName/:formId`} + element={<CreateForm />} + ></Route> + </Route> + <Route + path={ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home} + element={<DesktopAnalysis />} + > + <Route index element={<DesktopAnalysisList />}></Route> + <Route + path={`${ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.viewForm}/:formName/:formId`} + element={<DesktopAnalysisView />} + ></Route> + </Route> + {/*Ground Inspection routing starts here */} + <Route + path={ADMIN_ROUTE_MAP.adminModule.onGroundInspection.home} + element={<GroundInspectionAnalysis />} + > + <Route index element={<GroundInspectionListForms />}></Route> + <Route + path={`${ADMIN_ROUTE_MAP.adminModule.onGroundInspection.viewForm}/:formName/:formId/:instituteName/:round/:date`} + element={<GroundInspectionViewForm />} + ></Route> + + <Route + path={`${ADMIN_ROUTE_MAP.adminModule.onGroundInspection.nocIssued}/:round`} + element={<NocIssued />} + ></Route> + </Route> + {/* Certificate management routing starts here */} + <Route + path={ADMIN_ROUTE_MAP.adminModule.certificateManagement.home} + element={<CertificateManagement />} + > + <Route index element={<CertificateManagementList />}></Route> + </Route> + {/* Schedule management routing starts here */} + <Route + path={ADMIN_ROUTE_MAP.adminModule.scheduleManagement.home} + element={<ScheduleManagement />} + > + <Route index element={<ScheduleManagementList />}></Route> + </Route> + <Route path={ADMIN_ROUTE_MAP.adminModule.dashboard.home} element={ <PrivateRoute> <DashboardLandingPage /> </PrivateRoute> } - ></Route> + ></Route> + </Route> + case 'Desktop-Assessor': + return <Route> + <Route + path={ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home} + element={<DesktopAnalysis />} + > + <Route index element={<DesktopAnalysisList />}></Route> <Route - path="*" - element={ - <Navigate - to={`${ - loggedInUser?.role === "Super-Admin" - ? ADMIN_ROUTE_MAP.adminModule.manageUsers.home - : ADMIN_ROUTE_MAP.adminModule.manageForms.home - }`} - /> - } - /> + path={`${ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.viewForm}/:formName/:formId`} + element={<DesktopAnalysisView />} + ></Route> + </Route> </Route> + default: + return null + } + })()} </Routes> </BrowserRouter> </ContextAPI.Provider> diff --git a/apps/wrapper/web-portal/src/api/apiUrl.js b/apps/wrapper/web-portal/src/api/apiUrl.js index 2f32f4f8..6e8bbbd3 100644 --- a/apps/wrapper/web-portal/src/api/apiUrl.js +++ b/apps/wrapper/web-portal/src/api/apiUrl.js @@ -8,6 +8,7 @@ const API_URL = { common: { registerEvent: `${rest}addEvents`, updateForm: `${rest}updateForm`, + updateFormStatusForOGA: `${rest}updateFormStatusForOGA`, updateRegulatorDeviceId: `${rest}updateRegulatorDeviceId`, }, notifications: { @@ -19,6 +20,13 @@ const API_URL = { getApplicantDeviceId: `${rest}getApplicantDeviceId`, emailNotify: `email/notify`, }, + dashboard:{ + search:`${rest}searchDashboardForms`, + filter:`${rest}filterSubmittedFormByRound`, + progresscount:`${rest}getInProgressSubmissionCount`, + approvedcount:`${rest}getApprovedSubmissionCount`, + rejectedcount:`${rest}getRejectedSubmissionsCount` + }, groundAnalysis: { viewForm: `${rest}getFormData`, list: `${rest}getOGIA`, @@ -29,6 +37,7 @@ const API_URL = { rejectApplicant: `${rest}rejectForm`, getGroundInspectionAnalysis: `${rest}getGroundInspectionAnalysis`, filterOGA: `${rest}filterOGA`, + OGAFormsCount:`${rest}getOGAFormsCountByRoundAndFormStatus` }, manageForms: { getForms: `${rest}getForms`, @@ -43,18 +52,30 @@ const API_URL = { filterForms: `${rest}filterForms`, createCourses: `${rest}createCourse`, updateForms: `${rest}updateForms`, + getCourses: `${rest}getCourseMapping`, + findForms: `${rest}findForms`, }, manageUsers: { getAllAssessors: `${rest}getAllAssessors`, getAllRegulators: `${rest}getAllRegulators`, + getRegulatorsByRole: `${rest}filterRegulatorByRole`, specificUser: `${rest}getSpecificUser`, filterUsers: `${rest}filterUsers`, setActivate: `${rest}setValid`, setDeactive: `${rest}setInvalid`, + setRegulatorActive: `${rest}regulator/activate`, + setRegulatorDeactive: `${rest}regulator/deactivate`, addUsers: `${rest}addUsers`, deleteUser: `${rest}deleteUser`, editUser: `${rest}editUser`, viewSchedule: `${rest}viewSchedule`, + getAllInstitutes: `${rest}getAllInstitutes`, + }, + manageRoles: { + getAll: `${rest}getAllRolesWithPermissions`, + editRole: `${rest}updateRoleById`, + addRole: `${rest}addNewRoleWithPermission`, + toggleRoleStatus: `${rest}updateRoleById`, }, desktopAnalysis: { getUsersForSchedulingAssessment: `${rest}getUsersForSchedulingAssessment`, @@ -66,6 +87,7 @@ const API_URL = { addInstituteCourse: `${rest}addInstituteCourse`, updatePaymentStatus: `${rest}updatePaymentStatus`, getTransactionDetail: `v1/user/transaction`, + getOGAFormDetails: `${rest}getOGAFormForInspectionSchedule` }, certificateManagement: { getNOCCertificate: `${rest}getNOCCertificate`, @@ -75,7 +97,8 @@ const API_URL = { filterAssessments: `${rest}filterAssessments`, addAssessmentSchedule: `${rest}addAssessmentSchedule`, deleteSchedule: `${rest}deleteSchedule`, - getAllSchedule: `${rest}getUpcomingSchedules` + getAllSchedule: `${rest}getUpcomingSchedules`, + uploadAssessmentSchedule: `${rest}upload/assessor/schedule`, }, viewStatus: { getViewStatus: `${rest}getEvents`, @@ -83,6 +106,13 @@ const API_URL = { SIGNUP: { CREATE_USER: "create", EDIT_USER: "update", + CHECK_IS_EMAIL_EXIST: `${rest}findUserByEmail`, + }, + USER: { + ACTIVATE: "activate", + DEACTIVATE: "deactivate", + CHECKVALID: "emaildetails", + CREATE_BULK: "keycloak/pushBulkUserBG", }, LOGIN: { GENERATE_OTP: "keycloak/otp", diff --git a/apps/wrapper/web-portal/src/api/fileUploadAdminCustomApi.js b/apps/wrapper/web-portal/src/api/fileUploadAdminCustomApi.js new file mode 100644 index 00000000..3e0ca93d --- /dev/null +++ b/apps/wrapper/web-portal/src/api/fileUploadAdminCustomApi.js @@ -0,0 +1,19 @@ +import axios from "axios"; + +const BASE_URL = process.env.REACT_APP_NODE_URL; +const fileUploadAdminCustomApi = axios.create({ + baseURL: BASE_URL, +}); + +fileUploadAdminCustomApi.interceptors.request.use( + (request) => { + request.headers["Content-Type"] = "multipart/form-data"; + request.headers["Authorization"] = process.env.REACT_APP_AUTH_TOKEN; + return request; + }, + (error) => { + return Promise.reject(error); + } +); + +export default fileUploadAdminCustomApi; diff --git a/apps/wrapper/web-portal/src/api/index.js b/apps/wrapper/web-portal/src/api/index.js index 3435e138..686b1350 100644 --- a/apps/wrapper/web-portal/src/api/index.js +++ b/apps/wrapper/web-portal/src/api/index.js @@ -1,8 +1,10 @@ import API_URL from "./apiUrl"; import adminCustomPost from "./adminCustomApi"; import fileConversionCustomPost from "./fileConversionCustomApi"; +import fileUploadAdminCustomApi from "./fileUploadAdminCustomApi"; import axios from "axios"; import { getCookie } from "../utils/common"; +import { utils, writeFile } from 'xlsx'; const BASE_URL_KEYCLOAK = process.env.REACT_APP_WEB_PORTAL_USER_SERVICE_URL || @@ -41,6 +43,16 @@ export const fetchOGAFormsList = async (postData) => { return res; }; +export const getOGAFormsCount = async (postData) => { + const res = await adminCustomPost.post( + API_URL.groundAnalysis.OGAFormsCount, + postData + ); + return res; +}; + + + export const getAcceptApplicantNoc = async (postData) => { const res = await adminCustomPost.put( API_URL.groundAnalysis.acceptApplicantNoc, @@ -114,6 +126,152 @@ export const createForm = async (postData) => { return res; }; +export const findFormsWithSameName = async (postData) => { + return await adminCustomPost.post( + API_URL.manageForms.findForms, + postData + ); +}; + +export const fetchAllComments = async (postData) => { +/* const res = await adminCustomPost.post( + API_URL.manageForms.getForms, + postData + ); */ + const res = { + "commentTree": { + "commentTreeId": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbnRpdHlJZCI6InNjaGVtZTEiLCJlbnRpdHlUeXBlIjoic2NoZW1lIiwid29ya2Zsb3ciOiJhcHByb3ZhbCJ9.UOm0cKp_ip2aUQLw3ghbo2TYUKPhQn9jq4ESDumFe4M", + "commentTreeData": { + "comments": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "commentId": "2fbb3951-520f-11ee-99d1-818943f8dcc5" + } + ], + "commentId": "a57c0f00-520c-11ee-99d1-3bfe88a8da12" + } + ], + "commentId": "c14e81ae-5138-11ee-99d1-2fc242988c1f" + }, + { + "commentId": "4b2de04f-515d-11ee-99d1-33ae7dd92a08" + }, + { + "commentId": "0a254994-52e8-11ee-99d1-470c82849d58" + } + ], + "commentId": "86a475cb-5073-11ee-99d1-9b5e78640948" + }, + { + "commentId": "acc61f1c-512c-11ee-99d1-d3199133ca7b" + }, + { + "commentId": "6be51e9d-5138-11ee-99d1-19fbc8a13401" + }, + { + "commentId": "62b34c92-52e5-11ee-99d1-63bfaeddbcb5" + }, + { + "commentId": "c4763cb3-52e7-11ee-99d1-5d367925f667" + } + ], + "commentId": "cef4c929-506d-11ee-99d1-1b6e163ce3cf" + }, + { + "commentId": "dff72fba-506d-11ee-99d1-d39327540958" + } + ], + "entityId": "scheme1", + "workflow": "approval", + "childNodes": [ + "cef4c929-506d-11ee-99d1-1b6e163ce3cf", + "dff72fba-506d-11ee-99d1-d39327540958", + "86a475cb-5073-11ee-99d1-9b5e78640948", + "acc61f1c-512c-11ee-99d1-d3199133ca7b", + "6be51e9d-5138-11ee-99d1-19fbc8a13401", + "c14e81ae-5138-11ee-99d1-2fc242988c1f", + "4b2de04f-515d-11ee-99d1-33ae7dd92a08", + "a57c0f00-520c-11ee-99d1-3bfe88a8da12", + "2fbb3951-520f-11ee-99d1-818943f8dcc5", + "62b34c92-52e5-11ee-99d1-63bfaeddbcb5", + "c4763cb3-52e7-11ee-99d1-5d367925f667", + "0a254994-52e8-11ee-99d1-470c82849d58" + ], + "entityType": "scheme", + "firstLevelNodes": [ + "cef4c929-506d-11ee-99d1-1b6e163ce3cf", + "dff72fba-506d-11ee-99d1-d39327540958" + ] + }, + "status": "active", + "createdDate": "2023-09-11T06:38:25.036+00:00", + "lastUpdatedDate": null + }, + "comments": [ + + + { + "commentId": "c14e81ae-5138-11ee-99d1-2fc242988c1f", + "commentData": { + "file": "file123", + "comment": "Please agree both of u...", + "commentSource": { + "userId": "vid666", + "userPic": "vidPic", + "userName": "vidya Patel", + "role":"Admin" + } + }, + "status": "active", + "createdDate": "2023-09-12T06:51:09.823+00:00", + "lastUpdatedDate": null + }, + { + "commentId": "c4763cb3-52e7-11ee-99d1-5d367925f667", + "commentData": { + "file": "file123", + "comment": "Noooooooooooooooooooooooo", + "commentSource": { + "userId": "dev233", + "userPic": "devPic", + "userName": "dev nair", + "role":"Desktop-Admin" + } + }, + "status": "active", + "createdDate": "2023-09-14T10:16:28.207+00:00", + "lastUpdatedDate": null + }, + { + "commentId": "cef4c929-506d-11ee-99d1-1b6e163ce3cf", + "commentData": { + "file": "file123", + "comment": "Ok .. close it then..", + "commentSource": { + "userId": "rahul123", + "userPic": "rahulPic", + "userName": "rahul pawar", + "role":"Assessor" + } + }, + "status": "active", + "createdDate": "2023-09-11T06:38:24.882+00:00", + "lastUpdatedDate": null + } + ], + "commentCount": 10 +} + return res; +}; + + export const getForms = async (postData) => { const res = await adminCustomPost.post( API_URL.manageForms.getForms, @@ -200,6 +358,22 @@ export const getAllRegulators = async (postData) => { return res; }; +export const fetchAllDeskTopAssessors = async (postData) => { + const res = await adminCustomPost.post( + API_URL.manageUsers.getRegulatorsByRole, + postData + ); + return res; +}; + +export const fetchAllInstitutes = async (postData) => { + return await adminCustomPost.post( + API_URL.manageUsers.getAllInstitutes, + postData + ); +}; + + export const getUsersForScheduling = async (postData) => { const res = await adminCustomPost.post( API_URL.desktopAnalysis.getUsersForSchedulingAssessment, @@ -215,6 +389,14 @@ export const handleActiveUser = async (postData) => { return res; }; +export const handleActiveRegulatorUser = async (postData) => { + const res = await adminCustomPost.put( + API_URL.manageUsers.setRegulatorActive, + postData + ); + return res; +}; + export const handleDeleteUser = async (postData) => { return await adminCustomPost.delete(API_URL.manageUsers.deleteUser, { data: postData, @@ -229,6 +411,14 @@ export const handleInctiveUser = async (postData) => { return res; }; +export const handleInctiveRegulatorUser = async (postData) => { + const res = await adminCustomPost.put( + API_URL.manageUsers.setRegulatorDeactive, + postData + ); + return res; +}; + export const getSpecificUser = async (postData) => { const res = await adminCustomPost.post( API_URL.manageUsers.specificUser, @@ -268,6 +458,14 @@ export const addInstituteCourse = async (postData) => { ); return res; }; + +export const getAssessorFormData = async (postData) => { + const res = await adminCustomPost.post( + API_URL.desktopAnalysis.getOGAFormDetails, + postData + ); + return res; +} export const getDesktopAnalysisForms = async (postData) => { const res = await adminCustomPost.post( API_URL.desktopAnalysis.getDesktopAnalysisForms, @@ -284,6 +482,7 @@ export const getAllTheCourses = async (postData) => { return res; }; + export const filterDesktopAnalysis = async (postData) => { const res = await adminCustomPost.post( API_URL.desktopAnalysis.filterDesktopAnalysis, @@ -343,9 +542,17 @@ export const getScheduledList = async (postData) => { return res; }; +export const uploadAssessmentSchedule = async (postData) => { + const res = await fileUploadAdminCustomApi.post( + API_URL.scheduleManagement.uploadAssessmentSchedule, + postData, + ); + return res; +}; + // Bulk create users keycloak export const createBulkUsersKeyCloak = async (postData) => { - const res = await axios.post( + return await axios.post( `${BASE_URL_KEYCLOAK}${API_URL.SIGNUP.CREATE_USER}`, postData, { @@ -356,6 +563,13 @@ export const createBulkUsersKeyCloak = async (postData) => { }, } ); +}; + +export const checkIsEmailExist = async (postData) => { + const res = await adminCustomPost.post( + API_URL.SIGNUP.CHECK_IS_EMAIL_EXIST, + postData + ); return res; }; @@ -375,7 +589,22 @@ export const editUserKeycloak = async (postData) => { return res; }; -// Bulk create users Hasura +// Bulk create users + +export const createBulkUsers = async (postData) => { + return await axios.post( + `${BASE_URL_KEYCLOAK}${API_URL.USER.CREATE_BULK}`, + postData, + { + headers: { + "Content-Type": "application/json", + // "Authorization": getCookie("access_token") + Authorization: process.env.REACT_APP_AUTH_TOKEN, + }, + } + ); +}; + export const createBulkUserHasura = async (postData) => { const res = await adminCustomPost.post( API_URL.manageUsers.addUsers, @@ -537,12 +766,64 @@ export const getApplicantDeviceId = async (postData) => { return res; }; +//Dashboard apis + + +export const searchDashBoard = async (postData) => { + const res = await adminCustomPost.post( + API_URL.dashboard.search, + postData + ); + return res; +}; + +export const filterDashBoardData = async (postData) => { + const res = await adminCustomPost.post( + API_URL.dashboard.filter, + postData + ); + return res; +}; + +export const getInProgressCount = async (postData) => { + const res = await adminCustomPost.post( + API_URL.dashboard.progresscount, + postData + ); + return res; +}; + +export const getApprovedCount = async (postData) => { + console.log(postData) + const res = await adminCustomPost.post( + API_URL.dashboard.approvedcount, + postData + ); + return res; +}; + +export const getRejectedCount = async (postData) => { + const res = await adminCustomPost.post( + API_URL.dashboard.rejectedcount, + postData + ); + return res; +}; + + + + //other common APIs export const updateFormStatus = async (postData) => { const res = await adminCustomPost.put(API_URL.common.updateForm, postData); return res; }; +export const updateFormStatusForOGA = async (postData) => { + const res = await adminCustomPost.put(API_URL.common.updateFormStatusForOGA, postData); + return res; +}; + export const updatePaymentStatus = async (postData) => { const res = await adminCustomPost.put( API_URL.desktopAnalysis.updatePaymentStatus, @@ -565,3 +846,99 @@ export const getTransactionDetail = async (postData) => { ); return res; }; + +/* returns course mapping based on course type and course level */ +export const getCoursesByTypeAndLevel = async (postData) => { + const res = await adminCustomPost.post( + API_URL.manageForms.getCourses, + postData + ) + return res; +} + + +//#region (roles apis) + +export const fetchAllUserRoles = async (postData) => { + return await adminCustomPost.post( + API_URL.manageRoles.getAll, + postData + ) +} + +export const getSpecificRoleByRoleId = async (postData) => { + return await adminCustomPost.post( + API_URL.manageRoles.getRoleById, + postData + ) +} + +export const editRole = async (postData) => { + return await adminCustomPost.post( + API_URL.manageRoles.editRole, + postData + ) +} + +export const createRole = async (postData) => { + return await adminCustomPost.put( + API_URL.manageRoles.addRole, + postData + ) +} + +export const updateRoleById = async (postData) => { + const res = await adminCustomPost.post( + API_URL.manageRoles.toggleRoleStatus, + postData + ); + return res; +}; + + + + + +//#region (roles apis) + + + +//#region (xlsx) + +//#region (json to xlsx) +export const exportToExcel = async (downloadObjects) => { + if (downloadObjects && downloadObjects.objectsList) { + const workbook = utils.book_new(); + let wscols = [ + {wch:10}, + {wch:20}, + {wch:20}, + {wch:20}, + {wch:25}, + {wch:20}, + {wch:10} + ]; + + downloadObjects.objectsList.forEach((element) => { + const sheetName = element.sheetName ? element.sheetName : `Sheet ${workbook.SheetNames.length + 1}` + const worksheet = utils.json_to_sheet([]); + worksheet['!cols'] = wscols; + utils.sheet_add_aoa(worksheet, [element.headers]) + utils.book_append_sheet(workbook, worksheet, sheetName); + utils.sheet_add_json(worksheet, element.downloadObject, { origin: 'A4', skipHeader: true }); + }); + writeFile(workbook, downloadObjects.fileName ? downloadObjects.fileName : 'data.xlsx'); + //writeFile(workbook, 'NoteExport.xls', { bookType: 'xlsx', type: 'buffer' }); + } +} + +//download pdf +export const base64ToPdf = async (postData) => { + const res = await axios.post(`${process.env.REACT_APP_PDF_DOWNLOAD_URL}/convert-via-puppeteer/pdfpuppeteer`, { + url: postData, + }); + return res; +}; +//#endregion + +//#endregion diff --git a/apps/wrapper/web-portal/src/api/userService.js b/apps/wrapper/web-portal/src/api/userService.js index 9bc4b749..0dd1cfba 100644 --- a/apps/wrapper/web-portal/src/api/userService.js +++ b/apps/wrapper/web-portal/src/api/userService.js @@ -82,6 +82,29 @@ const generateOtp = (postData) => { }); }; +//Deactivate user keycloak +export const deActivateUserKeycloak = async (postData) => { + + return axios.post(`${BASE_URL}${API_URL.USER.DEACTIVATE}`, postData, { + headers: { + "Content-Type": "application/json", + Authorization: process.env.REACT_APP_AUTH_TOKEN, + }, + }); +}; + +//Activate user keycloak +export const activateUserKeycloak = async (postData) => { + + return axios.post(`${BASE_URL}${API_URL.USER.ACTIVATE}`, postData, { + headers: { + "Content-Type": "application/json", + Authorization: process.env.REACT_APP_AUTH_TOKEN, + }, + }); + +}; + const signup = (userDetails) => { return axios.post(`${BASE_URL}${API_URL.SIGNUP.CREATE_USER}`, userDetails, { headers: { @@ -100,6 +123,87 @@ const login = (userDetails) => { Authorization: process.env.REACT_APP_AUTH_TOKEN, }, }); + /* return { + accessToken: "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ6eE80ak9FNWNjQjhGeXhuZnlIaGZNY1NYNDd0UXRCSWl4ellIbnBWdzlRIn0.eyJleHAiOjE3MDc0MDc0NjAsImlhdCI6MTcwNzMyMTA2MCwianRpIjoiYjc5ZjFiYjktYjU4MC00MWEzLWE2MjktNDdhNWM5ZmE5NzBlIiwiaXNzIjoiaHR0cHM6Ly9yZWdpc3RyYXRpb24udXBocmguaW4vYXV0aC9yZWFsbXMvc3VuYmlyZC1yYyIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJlYTkyMTFjNS1kNzY5LTQ1NmItODZhMS04MGNiZTkzNWUxMjEiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJyZWdpc3RyeS1mcm9udGVuZCIsInNlc3Npb25fc3RhdGUiOiIzN2RjNmIxZi1mNGFiLTQxMGQtOWNhOS0zNWU2OTlmODA2MzIiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iLCJkZWZhdWx0LXJvbGVzLW5kZWFyIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJuYW1lIjoic2hpc2hpciBzdXBlciBhZG1pbiIsInByZWZlcnJlZF91c2VybmFtZSI6InNoaXNoaXIuc3VtYW4rc3VwZXJhZG1pbkB0YXJlbnRvLmNvbSIsImdpdmVuX25hbWUiOiJzaGlzaGlyIiwiZmFtaWx5X25hbWUiOiJzdXBlciBhZG1pbiIsImVtYWlsIjoic2hpc2hpci5zdW1hbitzdXBlcmFkbWluQHRhcmVudG8uY29tIn0.Q3c_tWTxYwmSLdGeY8pDF6TUlJdsl_miaaY8rquvbuAxW1iu0-n859b5JSYpfrkAYBqbpTrW5s9H0B1CAFhZG6u50zCopz3cCgEFt3jObFhxqBuk-DPzrGUTHUOpRUm-S8KS0dYtd_e_U83oq7LOVOxRPHmQ2qqGkEsMtI-7HSZHbLxGkYFBz7Do6SsG2_A9cFjYMOPJ7Zi8iKqPUUiFnrjKNH5dAVJz23OwL4RLrzJNQ6HwC83_k3VXXWb5-VMatk_BFNtTmQErduOmY8QGhVk65pi75KYWUmweyZ8fP2b8ojbAjM8J0fjkoVfmrn4t5zgZb2pxpcfRbF9IgLdspw", + expiresIn: 86400, + refreshToken: null, + refreshExpiresIn: 0, + tokenType: "Bearer", + scope: "profile email", + userRepresentation: { + self: null, + id: "ea9211c5-d769-456b-86a1-80cbe935e121", + origin: null, + createdTimestamp: 1699507701802, + username: "shishir.suman+superadmin@tarento.com", + enabled: true, + totp: false, + emailVerified: false, + firstName: "shishir", + lastName: "super admin", + email: "shishir.suman+superadmin@tarento.com", + federationLink: null, + serviceAccountClientId: null, + attributes: { + Role: [ + "Super-Admin" + ] + }, + credentials: null, + disableableCredentialTypes: [], + requiredActions: [], + federatedIdentities: null, + realmRoles: null, + clientRoles: null, + clientConsents: null, + notBefore: 0, + applicationRoles: null, + socialLinks: null, + groups: null, + access: { + manageGroupMembership: true, + view: true, + mapRoles: true, + impersonate: false, + manage: true + } + }, + roleRepresentationList: [ + { + id: "a4b21820-1b52-4b6a-851e-0a9955ead1f0", + name: "default-roles-ndear", + description: "${role_default-roles-ndear}", + scopeParamRequired: null, + composite: true, + composites: null, + clientRole: false, + containerId: "sunbird-rc", + attributes: null + }, + { + id: "a5777369-2e60-45ee-bfcd-0cc84a46470d", + name: "uma_authorization", + description: "${role_uma_authorization}", + scopeParamRequired: null, + composite: false, + composites: null, + clientRole: false, + containerId: "sunbird-rc", + attributes: null + }, + { + id: "30d1a784-d1af-43c0-9c86-8a3679503dee", + name: "offline_access", + description: "${role_offline-access}", + scopeParamRequired: null, + composite: false, + composites: null, + clientRole: false, + containerId: "sunbird-rc", + attributes: null + } + ] + } */ }; const getAccessToken = (postData) => { @@ -125,10 +229,31 @@ const deleteUsers = (postData) => { }, }); }; + +const isUserActive = (postData) => { + return keyCloakAxiosService.post(API_URL.USER.CHECKVALID, + { + request:{ + fieldName: "email", + fieldValue: postData.email + } + }, + { + headers: { + "Content-Type": "application/json", + // "Authorization": getCookie("access_token") + Authorization: process.env.REACT_APP_AUTH_TOKEN, + }, + }); + +}; export const userService = { generateOtp, login, deleteUsers, signup, getAccessToken, + deActivateUserKeycloak, + activateUserKeycloak, + isUserActive }; diff --git a/apps/wrapper/web-portal/src/assets/json-files/messages.json b/apps/wrapper/web-portal/src/assets/json-files/messages.json new file mode 100644 index 00000000..60d7f727 --- /dev/null +++ b/apps/wrapper/web-portal/src/assets/json-files/messages.json @@ -0,0 +1,35 @@ +{ + "ACTIVATION_MAIL": { + "SUBJECT": "Your Account is Now Active - Ready to Access", + "BODY": { + "part1": "<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ", + "part2": ",</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We hope this message finds you well. We are pleased to inform you that your account has been reactivated and is now ready for use.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>You can now log in using your credentials to access all the features and services available on our platform. If you experience any issues during the login process or have any concerns about your account, please don't hesitate to contact our support team.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Our dedicated team is here to assist you and ensure a smooth experience. If you encounter any difficulties, kindly provide your username and a detailed description of the problem when reaching out to us. We are committed to resolving any issues promptly and efficiently.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Best regards,</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Please be informed that this email has been generated by the system. If you have any queries or require clarification, kindly contact the administrator.</p></td></tr></table></body></html>" + } + }, + + "INACTIVATION_MAIL": { + "SUBJECT": "Your Account Deactivated - Action Required", + "BODY": { + "part1": "<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ", + "part2": ",</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We hope this email finds you well. We regret to inform you that your account has been deactivated. As a result, you will no longer be able to log in using your credentials. If you believe this deactivation is an error or if you have any concerns, please reach out to our support team. Our team is ready to assist you and address any issues you may be experiencing.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Please be sure to provide your username and any relevant details when contacting our support team to expedite the resolution process. We understand the importance of your account, and we want to ensure that this matter is resolved promptly.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We appreciate your prompt attention to this matter and apologize for any inconvenience this may cause. Thank you for your understanding.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Best regards,</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Please be informed that this email has been generated by the system. If you have any queries or require clarification, kindly contact the administrator.</p></td></tr></table></body></html>" + } + }, + "ACCOUNT_CREATED_OTP_BASED_LOGIN_MAIL": { + "SUBJECT": "Welcome - Your Onboarding is Complete!", + "BODY": { + "part1": "<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ", + "part2": ",</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Welcome aboard! We are thrilled to have you as a new user of our application. Your onboarding process has been successfully completed, and you are now ready to use our application.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>To get started, you will be using OTP (One-Time Password) for secure login. Here are the details you will need:</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Email ID: ", + "part3": "</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Mobile Number: ", + "part4": "</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>When logging in, you can generate your OTP using your registered email ID / Mobile Number. If you encounter any difficulties during the login process or have any questions about the application, please feel free to reach out to our support team.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Best regards,</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Please be informed that this email has been generated by the system. If you have any queries or require clarification, kindly contact the administrator.</p></td></tr></table></body></html>" + } + }, + "ACCOUNT_CREATED_PASSWORD_BASED_LOGIN_MAIL": { + "SUBJECT": "Welcome - Your Onboarding is Complete!", + "BODY": { + "part1": "<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ", + "part2": ",</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Welcome aboard! We are thrilled to have you as a new user of our application. Your onboarding process has been successfully completed, and you are now ready to use our application.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Here are your login details:</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>User ID: ", + "part3": "</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Password: ", + "part4": "</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Please use these credentials to log in to the application. If you have any questions, encounter issues during the login process, or need assistance with anything related to our platform, feel free to contact our support team.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Best regards,</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Please be informed that this email has been generated by the system. If you have any queries or require clarification, kindly contact the administrator.</p></td></tr></table></body></html>" + } + } +} \ No newline at end of file diff --git a/apps/wrapper/web-portal/src/components/CommentsModal.jsx b/apps/wrapper/web-portal/src/components/CommentsModal.jsx new file mode 100644 index 00000000..7c2e4b92 --- /dev/null +++ b/apps/wrapper/web-portal/src/components/CommentsModal.jsx @@ -0,0 +1,490 @@ +import React, { useEffect, useState } from 'react'; +import { Button } from "../components"; +import { FaEye } from "react-icons/fa"; +import { + fetchAllComments, +} from "../api"; + +import { getCookie } from "../utils/common"; +import { readableDate, formatDate, getInitials } from "../utils"; +import { Tooltip } from "@material-tailwind/react"; + + +function CommentsModal({ showAlert, actionFunction, quesContent, actionButtonLabel, alertMsg, actionProps }) { + + const [showCommentsSection, setShowCommentsSection] = useState(false); + const hiddenFileInput = React.useRef(null); + const [fileTypeError, setFileTypeError] = useState(false); + const [fileName, setFileName] = useState(""); + const [file, setFile] = useState({}); + + const [daComments, setDaComments] = useState(''); + const [adminComments, setAdminComments] = useState(''); + const [ogaComments, setOgaComments] = useState(''); + + // isDATextAreaDisabled + const [isDATextAreaDisabled, setIsDATextAreaDisabled] = useState(true); + const [isAdminTextAreaDisabled, setIsAdminTextAreaDisabled] = useState(true); + const [isOGATextAreaDisabled, setIsOGATextAreaDisabled] = useState(true); + + + const [items, setItems] = useState([]); + const [loggedInRole, setLoggedInRole] = useState(''); + + + const setApproveReject = (e) => { + console.log("00000000000", e) + e === "Approved" ? setShowCommentsSection(false) : setShowCommentsSection(true) + }; + + const handleChangeDAComments = (e) => { + setDaComments(e.target.value) + }; + + const handleChangeAdminComments = (e) => { + setAdminComments(e.target.value) + }; + + const handleChangeOGAComments = (e) => { + setOgaComments(e.target.value) + }; + + const handleButtonClick = (e) => { + hiddenFileInput.current.click(); + }; + + const handleChangeFileUpload = (e) => { + const fileUploaded = e.target.files[0]; + if (!fileUploaded.name.includes(".pdf") || fileUploaded.size > 5000000) { + setFileTypeError(true); + } else { + setFileName( + fileUploaded?.name.substring(0, fileUploaded.name.lastIndexOf(".")) + ); + setFileTypeError(false); + setFile(fileUploaded); + } + }; + + const handleFile = (uploadFile) => { + const formData = { + file: uploadFile, + quesNumber: 1, + }; + + // getNocOrCertificatePdf(formData); + }; + + + + const getAllComments = async () => { + try { + const res = await fetchAllComments(); + console.log(res?.comments) + + setItems(res?.comments) + /* let commentsByRole = res?.comments.reduce((acc, el) => { + const key = el?.commentData?.commentSource?.role; + (acc[key] = acc[key] || []).push(el.commentData.comment); + return acc; + }, {}); + + setAdminComments(commentsByRole.Admin.join('\r\n')) + setOgaComments(commentsByRole["Assessor"].join('\r\n')) + setDaComments(commentsByRole["Desktop-Admin"].join('\r\n')) */ + } catch (error) { + console.log("getAllComments failed ...", error) + } + + // getNocOrCertificatePdf(formData); + }; + + useEffect(() => { + getAllComments() + //const loggedInRole = getCookie("userData")?.attributes.Role[0]; + setLoggedInRole(getCookie("userData")?.attributes.Role[0]) + }, []); + + + return ( + <> + <div className='flex justify-center items-center fixed inset-0 bg-opacity-25 z-10 backdrop-blur-sm '> + <div className='overflow container mx-auto flex px-3 justify-between p-4 rounded-xl shadow-xl border border-gray-400 bg-white max-h-[calc(100vh-90px)] max-w-[600px] '> + <div className='flex flex-col gap-4 min-w-[400px]'> + <span>{quesContent}</span> + + <div className='min-w-[550px]'> + + {items.map((item, index) => ( + + <p className='m-3 mb-2 p-2 border border-grey-500 text-black font-medium rounded-[4px]'> + + <div className='flex flex-row gap-4 '> + <Tooltip arrow content={item.commentData.commentSource.role}> + <div className='flex h-[40px] w-[40px] rounded-full bg-pink-500 items-center m-2 justify-center'> + {getInitials( + `${item.commentData.commentSource.role.trim()}` + )} + </div> + </Tooltip> + + <div className='flex flex-col'> + <div className='flex m-1'> + <div>{item.commentData.commentSource.userName}</div> + <div className='ml-4 text-gray-700'>{readableDate(item.createdDate)}</div> + </div> + <div className='flex w-[430px] justify-between'> + <div className=''> + <p >{item.commentData.comment}</p> + </div> + <div > + <span className='flex flex-row gap-1 items-center cursor-pointer'><FaEye />{item.commentData.file}</span> + </div> + </div> + </div> + + </div> + </p> + + ))} + + + {loggedInRole === "Assessor" && + <div> + <input className='justify-center' + type="file" + accept="application/pdf, .pdf" + ref={hiddenFileInput} + onChange={handleChangeFileUpload} + style={{ display: "none" }} + /> + + + <div className=' flex gap-4 justify-center '> + <Button + moreClass="text-white flex justify-center h-fit w-2/3 px-6" + text="Browse file to upload(.pdf)" + onClick={handleButtonClick} + />{" "} + <br /> + + </div> + {fileTypeError && ( + <div className=' flex gap-4 justify-center '> + <div className="text-red-500"> + {"Only pdf files accepted ( max size 5MB )"} + </div> + </div> + + )} + + <div className=' flex gap-4 justify-center '> + <button + onClick={() => { + setFileName(""); setFile({}) + }} + className="border border-blue-900 bg-white text-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + > + Cancel + </button> + <button + onClick={() => handleFile(file)} + disabled={fileName && !fileTypeError ? false : true} + // className="border border-blue-900 text-white bg-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + className={`${fileName && !fileTypeError + ? "border border-blue-900 text-white bg-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 font-medium rounded-[4px] w-[140px]" + }`} + > + {"Upload Proof"} + </button> + </div> + + <div className="mt-2 flex ml-2">{fileName}</div> + </div> + } + + <textarea + onChange={handleChangeDAComments} + placeholder="Write here..." + className="mt-2 ml-2 border w-[530px] h-[100px] p-2 rounded-xl resize-none" + value={daComments} + cols="30" + rows="4" + ></textarea> + + {loggedInRole === "Desktop-Admin" && + <div + onChange={(e) => setApproveReject(e.target.value)} + className="py-2 px-1 ml-2 mt-2" + > + <input type="radio" + value="Approved" name="OGAResponse" /> Approve + <input + type="radio" + value="Rejected" + name="OGAResponse" + className="ml-5" + />{" "} Reject + </div>} + </div> + + <div className='min-w-[550px]'> + + {items.map((item, index) => ( + + <p className='m-3 mb-2 p-2 border border-grey-500 text-white font-medium rounded-[4px]'> + + <div className='flex flex-row gap-4 '> + <Tooltip arrow content={item.commentData.commentSource.role}> + <div className='flex h-[40px] w-[40px] rounded-full bg-pink-500 items-center m-2 justify-center'> + {getInitials( + `${item.commentData.commentSource.role.trim()}` + )} + </div> + </Tooltip> + + <div className='flex flex-col'> + <div className='flex m-1'> + <div>{item.commentData.commentSource.userName}</div> + <div className='ml-4 text-gray-700'>{readableDate(item.createdDate)}</div> + </div> + <div className='flex w-[430px] justify-between'> + <div className=''> + <p >{item.commentData.comment}</p> + </div> + <div > + <span className='flex flex-row gap-1 items-center cursor-pointer'><FaEye />{item.commentData.file}</span> + </div> + </div> + </div> + + </div> + </p> + + ))} + + + + + <textarea + onChange={handleChangeDAComments} + placeholder="Write here..." + className="mt-2 ml-2 border w-[530px] h-[100px] p-2 rounded-xl resize-none" + value={daComments} + cols="30" + rows="4" + ></textarea> + +{ + <div> + <input className='justify-center' + type="file" + accept="application/pdf, .pdf" + ref={hiddenFileInput} + onChange={handleChangeFileUpload} + style={{ display: "none" }} + /> + + + <div className=' flex gap-4 justify-center m-4'> + <Button + moreClass="text-white flex justify-center h-fit w-2/3 px-6" + text="Browse file to upload(.pdf)" + onClick={handleButtonClick} + />{" "} + <br /> + + </div> + {fileTypeError && ( + <div className=' flex gap-4 justify-center '> + <div className="text-red-500"> + {"Only pdf files accepted ( max size 5MB )"} + </div> + </div> + + )} + + <div className=' flex gap-4 justify-center '> + <button + onClick={() => { + setFileName(""); setFile({}) + }} + className="border border-blue-900 bg-white text-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + > + Cancel + </button> + <button + onClick={() => handleFile(file)} + disabled={fileName && !fileTypeError ? false : true} + // className="border border-blue-900 text-white bg-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + className={`${fileName && !fileTypeError + ? "border border-blue-900 text-white bg-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 font-medium rounded-[4px] w-[140px]" + }`} + > + {"Upload Proof"} + </button> + </div> + + <div className="mt-2 flex ml-2">{fileName}</div> + </div> + } + + </div> + + <div className='mt-2 footer flex flex-row justify-between mb-2'> + <button onClick={() => { showAlert(false) }} className="border border-blue-500 bg-white text-blue-500 w-[140px] h-[40px] font-medium rounded-[4px]">Cancel</button> + <button onClick={() => actionFunction(actionProps)} className={`border w-[140px] h-[40px] font-medium rounded-[4px] ${actionButtonLabel === "Delete" ? "border-red-800 text-white bg-red-800" : "border-blue-500 text-white bg-blue-500"}`}>{actionButtonLabel}</button> + </div> + </div> + </div> + </div> + + + + + + + + + + {/* overflow:scroll reqd */} {/* <div className='flex justify-center items-center fixed inset-0 bg-opacity-25 z-10 backdrop-blur-sm '> + <div className='container mx-auto flex px-3 justify-between p-4 rounded-xl shadow-xl border border-gray-400 bg-white min-h-[calc(100vh-90px)] max-w-[600px] '> + <div className='flex flex-col gap-4 min-w-[400px]'> + <span>{quesContent}</span> + <div> + <div className='col-span-2 title flex font-bold'> + <h1>DA Comments </h1> + </div> + <textarea + onChange={handleChangeDAComments} + placeholder="Write here" + className="ml-2 border w-[520px] h-[100px] p-2 rounded-xl resize-none" + disabled={isDATextAreaDisabled} + value={daComments} + cols="30" + rows="4" + ></textarea> + </div> + <hr /> + <div> + <div className='col-span-2 title flex font-bold'> + <h1>Admin Comments</h1> + </div> + <textarea + onChange={handleChangeAdminComments} + placeholder="Write here" + disabled={isAdminTextAreaDisabled} + className="ml-1 border w-[520px] h-[100px] p-2 rounded-xl resize-none" + value={adminComments} + cols="30" + rows="4" + ></textarea> + + </div> + + <hr /> + <div className='col-span-2 title flex font-bold'> + <h1>OGA Observations</h1> + </div> + {<div + onChange={(e) => setApproveReject(e.target.value)} + className="py-2 px-1" + > + <input type="radio" + value="Approved" name="OGAResponse" /> Approve + <input + type="radio" + value="Rejected" + name="OGAResponse" + className="ml-5" + />{" "} Reject + </div>} + + + <input className='justify-center' + type="file" + accept="application/pdf, .pdf" + ref={hiddenFileInput} + onChange={handleChangeFileUpload} + style={{ display: "none" }} + /> + + + <div className=' flex gap-4 justify-center '> + <Button + moreClass="text-white flex justify-center h-fit w-2/3 px-6" + text="Browse file to upload(.pdf)" + onClick={handleButtonClick} + />{" "} + <br /> + + </div> + {fileTypeError && ( + <div className=' flex gap-4 justify-center '> + <div className="text-red-500"> + {"Only pdf files accepted ( max size 5MB )"} + </div> + </div> + + )} + + <div className=' flex gap-4 justify-center '> + <button + onClick={() => { + setFileName("");setFile({}) + }} + className="border border-blue-900 bg-white text-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + > + Cancel + </button> + <button + onClick={() => handleFile(file)} + disabled={fileName && !fileTypeError ? false : true} + // className="border border-blue-900 text-white bg-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + className={`${fileName && !fileTypeError + ? "border border-blue-900 text-white bg-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 font-medium rounded-[4px] w-[140px]" + }`} + > + {"Upload Proof"} + </button> + </div> + + <div className="mt-2 flex ml-2">{fileName}</div> + + {showCommentsSection && + <div> + <div className='title flex font-bold'> + <h1>OGA + Comments</h1> + </div> + <div className='body flex justify-center'> + <div className="body"> + <textarea + disabled={isOGATextAreaDisabled} + onChange={handleChangeOGAComments} + placeholder="Write here" + className="ml-2 border w-[520px] h-[100px] p-2 rounded-xl resize-none" + value={ogaComments} + cols="30" + rows="8" + ></textarea> + </div> + </div> + </div> + } + <hr /> + <div className='footer flex flex-row justify-between'> + <button onClick={() => { showAlert(false) }} className="border border-blue-500 bg-white text-blue-500 w-[140px] h-[40px] font-medium rounded-[4px]">Cancel</button> + <button onClick={() => actionFunction(actionProps)} className={`border w-[140px] h-[40px] font-medium rounded-[4px] ${actionButtonLabel === "Delete" ? "border-red-800 text-white bg-red-800" : "border-blue-500 text-white bg-blue-500"}`}>{actionButtonLabel}</button> + </div> + </div> + </div> + </div> */} + </> + ) +} + +export default CommentsModal diff --git a/apps/wrapper/web-portal/src/components/Header.jsx b/apps/wrapper/web-portal/src/components/Header.jsx index a1b27f64..0a665174 100644 --- a/apps/wrapper/web-portal/src/components/Header.jsx +++ b/apps/wrapper/web-portal/src/components/Header.jsx @@ -13,6 +13,10 @@ import { } from "@material-tailwind/react"; import Overlay from "./../pages/notifications/Overlay"; +import { + removeAllFromLocalForage, +} from "./../forms"; + export default function Header() { const [showButtons, setshowButtons] = useState(false); const navigate = useNavigate(); @@ -20,11 +24,12 @@ export default function Header() { const userData = getCookie("userData"); const instituteData = getCookie("institutes"); - const logout = () => { + const logout = async () => { removeCookie("userData"); removeCookie("institutes"); removeCookie("regulator"); removeCookie("firebase_client_token") + removeAllFromLocalForage(); navigate(ADMIN_ROUTE_MAP.loginModule.login); }; @@ -63,7 +68,7 @@ export default function Header() { aria-haspopup="true" > {getInitials( - `${userData?.userRepresentation?.firstName?.trim()} ${userData?.userRepresentation?.lastName?.trim()}` + `${userData?.firstName?.trim()} ${userData?.lastName?.trim()}` )} </button> </MenuHandler> diff --git a/apps/wrapper/web-portal/src/components/Nav.jsx b/apps/wrapper/web-portal/src/components/Nav.jsx index e99fd6f6..f97ff840 100644 --- a/apps/wrapper/web-portal/src/components/Nav.jsx +++ b/apps/wrapper/web-portal/src/components/Nav.jsx @@ -6,65 +6,140 @@ import { AiFillHome } from "react-icons/ai"; import ADMIN_ROUTE_MAP from "../routes/adminRouteMap"; import { getCookie } from "../utils"; - +import { useState } from "react"; export default function Nav() { + //const userRole = 'Desktop-Assessor'; + const [userRole] = useState(getCookie("regulator")[0]["role"]) return ( <> <div className="h-[48px] bg-white drop-shadow-sm"> <div className="container px-3 mx-auto"> <div className="flex items-center h-[48px] py-2"> - <ul className="flex md nav-items text-gray-500 text-[14px] font-bold uppercase gap-4 justify-center align-center menus"> - <li className="flex bg-primary-800 rounded-md items-center justify-center h-8 w-8 hover:cursor-pointer"> - <NavLink to={ADMIN_ROUTE_MAP.adminModule.manageUsers.home}> - <AiFillHome className="text-white text-xl" /> - </NavLink> - </li> - {getCookie("regulator")[0]["role"] === "Super-Admin" && ( - <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> - <NavLink to={ADMIN_ROUTE_MAP.adminModule.manageUsers.home}> - User Management - </NavLink> - </li> - )} - <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> - <NavLink to={ADMIN_ROUTE_MAP.adminModule.manageForms.home}> - Form Management - </NavLink> - </li> - <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> - <NavLink to={ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home}> - Desktop Analysis - </NavLink> - </li> - <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> - <NavLink - to={ADMIN_ROUTE_MAP.adminModule.onGroundInspection.home} - > - On-Ground Inspection Analysis - </NavLink> - </li> - <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> - <NavLink - to={ADMIN_ROUTE_MAP.adminModule.certificateManagement.home} - > - Certificate Management - </NavLink> - </li> - <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> - <NavLink - to={ADMIN_ROUTE_MAP.adminModule.scheduleManagement.home} - > - Schedule Management - </NavLink> - </li> - { <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> - <NavLink - to={ADMIN_ROUTE_MAP.adminModule.dashboard.home} - > - Dashboard - </NavLink> - </li>} - </ul> + {(() => { + switch (userRole) { + case 'Super-Admin': + return <ul className="flex md nav-items text-gray-500 text-[14px] font-bold uppercase gap-4 justify-center align-center menus"> + <li className="flex bg-primary-800 rounded-md items-center justify-center h-8 w-8 hover:cursor-pointer"> + <NavLink to={ADMIN_ROUTE_MAP.adminModule.manageUsers.home}> + <AiFillHome className="text-white text-xl" /> + </NavLink> + </li> + {<li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.dashboard.home} + > + Dashboard + </NavLink> + </li>} + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink to={ADMIN_ROUTE_MAP.adminModule.manageUsers.home}> + User Management + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink to={ADMIN_ROUTE_MAP.adminModule.manageForms.home}> + Form Management + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink to={ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home}> + Desktop Analysis + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.scheduleManagement.home} + > + Schedule Management + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.onGroundInspection.home} + > + On-Ground Inspection Analysis + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.certificateManagement.home} + > + Certificate Management + </NavLink> + </li> + + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.roleManagement.home} + > + Role Management + </NavLink> + </li> + + {/* {<li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.dashboard.home} + > + Dashboard + </NavLink> + </li>} */} + </ul> + case 'Desktop-Admin': + return <ul className="flex md nav-items text-gray-500 text-[14px] font-bold uppercase gap-4 justify-center align-center menus"> + <li className="flex bg-primary-800 rounded-md items-center justify-center h-8 w-8 hover:cursor-pointer"> + <NavLink to={ADMIN_ROUTE_MAP.adminModule.manageUsers.home}> + <AiFillHome className="text-white text-xl" /> + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.dashboard.home} + > + Dashboard + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink to={ADMIN_ROUTE_MAP.adminModule.manageForms.home}> + Form Management + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink to={ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home}> + Desktop Analysis + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.scheduleManagement.home} + > + Schedule Management + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.onGroundInspection.home} + > + On-Ground Inspection Analysis + </NavLink> + </li> + <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink + to={ADMIN_ROUTE_MAP.adminModule.certificateManagement.home} + > + Certificate Management + </NavLink> + </li> + </ul> + case 'Desktop-Assessor': + return <li className="flex fontsize hover:text-primary-600 hover:cursor-pointer"> + <NavLink to={ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home}> + DESKTOP ANALYSIS + </NavLink> + </li> + default: + return null + } + })()} </div> </div> </div> diff --git a/apps/wrapper/web-portal/src/components/table/Filters.jsx b/apps/wrapper/web-portal/src/components/table/Filters.jsx index 2ead9506..89e4a52a 100644 --- a/apps/wrapper/web-portal/src/components/table/Filters.jsx +++ b/apps/wrapper/web-portal/src/components/table/Filters.jsx @@ -109,6 +109,7 @@ export const ManageFormsFilters = ({ application_type: null, round: null, course_type: null, + course_level: null, }); const handleChange = (name, value) => { setState((prevState) => ({ @@ -191,8 +192,8 @@ export const ManageFormsFilters = ({ className="bg-gray-50" > {/* <Option value="">Course Type</Option> */} - <Option value="nursing">Nursing</Option> - <Option value="paramedical">Paramedical</Option> + <Option value="Nursing">Nursing</Option> + <Option value="Paramedical">Paramedical</Option> </Select> </div> <div> @@ -238,7 +239,7 @@ export const DesktopAnalysisFilters = ({ delete filters?.condition[name]; return; } - if (name === "course_type" || name === "application_type") { + if (name === "course_type" || name === "application_type" || name === "course_level") { setFilters({ condition: { ...filters.condition, @@ -340,6 +341,20 @@ export const DesktopAnalysisFilters = ({ <Option value="Paramedical">Paramedical</Option> </Select> </div> + <div className="flex"> + <Select + name="course_level" + id="course_level" + label="Course Level" + value={state.course_level} + onChange={(value) => handleChange("course_level", value)} + className="bg-gray-50" + > + {/* <Option value="">Course Name</Option> */} + <Option value="Degree">Degree</Option> + <Option value="Diploma">Diploma</Option> + </Select> + </div> <div className="flex"> <button className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500 px-8" @@ -634,9 +649,9 @@ export const ScheduleManagementFilters = ({ className="bg-gray-50" > {/* <Option value="">--Select Status--</Option> */} - <Option value="Completed">Completed</Option> + <Option value="OGA Completed">Completed</Option> <Option value="Upcoming">Upcoming</Option> - <Option value="Closed">Closed</Option> + <Option value="Inspection Delayed">Delayed</Option> </Select> </div> <div> @@ -650,3 +665,198 @@ export const ScheduleManagementFilters = ({ </div> ); }; + + +// Dashboard +export const DashboardFilters = ({ + selectedRound, + filterApiCall, + setIsFilterOpen, + paginationInfo, + setPaginationInfo, +}) => { + const [showCalendar, setShowCalendar] = useState(false); + const [buttonText, setButtonText] = useState("Date"); + const [filters, setFilters] = useState(null); + const [state, setState] = useState({ + selectedRound:0, + district: null, + startDate: null, + endDate:null, + status: null, + }); + const [dateRange, setDateRange] = useState([new Date(), new Date()]); + + + const handleChange = (name, value) => { + console.log(name) + + setState((prevState) => ({ + ...prevState, + [name]: value, + })); + + if (name === "district") { + setFilters((prevState) => ({ + ...prevState, + "district": value + })); + } else{ + setFilters((prevState) => ({ + ...prevState, + "status": value + })); + } + console.log(filters) + setIsFilterOpen(value ? true : false); + setPaginationInfo((prevState) => ({ + ...prevState, + offsetNo: 0, + })); + }; + + const handleClearFilter = () => { + setState({ + district: null, + startDate: null, + endDate:null, + status: null + }); + setButtonText("Date"); + setDateRange([new Date(), new Date()]) + setFilters('cleared'); + setPaginationInfo((prevState) => ({ + ...prevState, + offsetNo: 0, + })); + }; + + const handleDateChange = (date) => { + console.log(date) + // console.log(round) + setDateRange([date, date]); + setButtonText(readableDate(formatDate(date[0])) + " - " + readableDate(formatDate(date[1]))); + setShowCalendar(false); + setState((prevState) => ({ + ...prevState, + startDate:formatDate(date[0]), + endDate:formatDate(date[1]) + })); + + setFilters((prevState) => ({ + ...prevState, + "startDate":formatDate(date[0]), + "endDate":formatDate(date[1]) + })); + + setIsFilterOpen(date ? true : false); + setPaginationInfo((prevState) => ({ + ...prevState, + offsetNo: 0, + })); + }; + + const handleDateRangeSelect = (date) => { + console.log(date) + /* console.log(formatDate(date)) + setButtonText(formatDate(date)); */ + setShowCalendar(false); + /* setFilters({ + condition: { + ...filters.condition, + date: { + _eq: formatDate(date), + }, + }, + }); + setIsFilterOpen(date ? true : false); */ + setPaginationInfo((prevState) => ({ + ...prevState, + offsetNo: 0, + })); + }; + + useEffect(() => { + filterApiCall(filters); + }, [filters, paginationInfo.offsetNo, paginationInfo.limit]); + + return ( + <div className="flex flex-grow text-gray-700 dark:text-gray-400 gap-8"> + <div className="flex"> + <Select + name="district" + id="district" + label="District" + value={state.district} + onChange={(value) => handleChange("district", value)} + className="bg-gray-50" + > + {/* <Option value="">--Select District--</Option> */} + {UP_DISTRICTS.map((item) => ( + <Option value={item}>{item}</Option> + ))} + </Select> + </div> + <div className="flex"> + <button + className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full px-8 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + onClick={() =>{ + setShowCalendar(true); + setDateRange([new Date(), new Date()]); + } } + > + {buttonText.includes("Date") + ? "Date" + : buttonText} + </button> + {showCalendar && ( + <Calendar + onChange={handleDateChange} + selectRange + value={dateRange} + tileContent={({ date, view }) => { + if (view === 'month' && date >= dateRange[0] && date <= dateRange[1]) { + return <div className="selected-range"></div>; + } + return null; + }} + onRangeChange={handleDateRangeSelect} + /> + )} + </div> + + + + <div className="flex"> + <Select + name="status" + id="status" + label="Status" + value={state.value} + onChange={(value) => handleChange("status", value)} + className="bg-gray-50" + > + {/* <Option value="">--Select Status--</Option> */} + <Option value="Approved">Approved</Option> + <Option value="Rejected">Rejected</Option> + <Option value="In Progress">In Progress</Option> + <Option value="OGA Completed">OGA Completed</Option> + <Option value="DA Completed">DA Completed</Option> + <Option value="Inspection Scheduled">Inspection Scheduled</Option> + <Option value="Inspection Delayed">Inspection Delayed</Option> + <Option value="Application Submitted">Application Submitted</Option> + <Option value="Resubmitted">Resubmitted</Option> + <Option value="Returned">Returned</Option> + </Select> + </div> + <div> + <button + className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + onClick={handleClearFilter} + > + Clear + </button> + </div> + </div> + ); +}; \ No newline at end of file diff --git a/apps/wrapper/web-portal/src/components/table/GlobalFilter.jsx b/apps/wrapper/web-portal/src/components/table/GlobalFilter.jsx index 270adf30..0e92e18f 100644 --- a/apps/wrapper/web-portal/src/components/table/GlobalFilter.jsx +++ b/apps/wrapper/web-portal/src/components/table/GlobalFilter.jsx @@ -9,6 +9,7 @@ import { ManageUsersFilters, OnGroundInspectionFilters, ScheduleManagementFilters, + DashboardFilters } from "./Filters"; import { searchUsers } from "../../api"; @@ -144,7 +145,7 @@ const GlobalFilter = ({ //On-Ground Inspection Analysis case ADMIN_ROUTE_MAP.adminModule.onGroundInspection.home: return ( - <OnGroundInspectionFilters + <DesktopAnalysisFilters filterApiCall={filterApiCall} paginationInfo={paginationInfo} setIsFilterOpen={setIsFilterOpen} @@ -162,6 +163,17 @@ const GlobalFilter = ({ setPaginationInfo={setPaginationInfo} /> ); + // Dashboard + case ADMIN_ROUTE_MAP.adminModule.dashboard.home: + return ( + <DashboardFilters + filterApiCall={filterApiCall} + paginationInfo={paginationInfo} + selectedRound={selectedRound} + setIsFilterOpen={setIsFilterOpen} + setPaginationInfo={setPaginationInfo} + /> + ); } })()} </div> diff --git a/apps/wrapper/web-portal/src/config/firebase.js b/apps/wrapper/web-portal/src/config/firebase.js index bf9be4e0..1cee6666 100644 --- a/apps/wrapper/web-portal/src/config/firebase.js +++ b/apps/wrapper/web-portal/src/config/firebase.js @@ -30,7 +30,7 @@ export const getPermissionForToken = () => { window.Notification.requestPermission(); const permission = window.Notification.permission; if (permission === "granted") { - console.log("Notification User Permission Granted."); + console.log(" User Permission Granted for Notifications."); return getToken(messaging, { vapidKey: `${VAPID_KEY}` }) .then((currentToken) => { if (currentToken) { @@ -38,7 +38,7 @@ export const getPermissionForToken = () => { setCookie("firebase_client_token", currentToken); if (getCookie("userData") !== undefined) { updateRegulatorDeviceId({ - user_id: getCookie("userData")?.userRepresentation?.id, + user_id: getCookie("userData")?.id, device_id: JSON.stringify([getCookie("firebase_client_token")]), }); } @@ -55,6 +55,6 @@ export const getPermissionForToken = () => { } else if (permission === "default") { window.Notification.requestPermission(); } else { - console.log("User Permission Denied."); + console.log("User Permission Denied for notifications."); } }; diff --git a/apps/wrapper/web-portal/src/login/AdminLogin.jsx b/apps/wrapper/web-portal/src/login/AdminLogin.jsx index 36b6fd3b..416e42f7 100644 --- a/apps/wrapper/web-portal/src/login/AdminLogin.jsx +++ b/apps/wrapper/web-portal/src/login/AdminLogin.jsx @@ -22,6 +22,7 @@ const AdminLogin = () => { const { register, handleSubmit, + resetField, formState: { errors }, } = useForm(); @@ -42,11 +43,7 @@ const AdminLogin = () => { const login = async (data) => { try { - // const loginDetails = { username: data.email }; - // const checkUser = await userService.login(loginDetails); - // console.log("user check", checkUser.data.user.email); - // if (checkUser.data.user.email) { - // console.log(checkUser.data.user.email); + const otpRes = await userService.generateOtp({ username: data.email, }); @@ -56,26 +53,15 @@ const AdminLogin = () => { // setPhoneNumber(data.phone); setEmailId(data.email); } else { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: otpRes?.data?.error ? otpRes?.data?.error : "Something went wrong", + toastType: "error", + })); console.log("Something went wrong", otpRes); } - // } else { - // setToast((prevState) => ({ - // ...prevState, - // toastOpen: true, - // toastMsg: "User not registered.", - // toastType: "error", - // })); - // setTimeout( - // () => - // setToast((prevState) => ({ - // ...prevState, - // toastOpen: false, - // toastMsg: "", - // toastType: "", - // })), - // 3000 - // ); - // } + } catch (error) { setToast((prevState) => ({ ...prevState, @@ -87,6 +73,35 @@ const AdminLogin = () => { } }; + const isUserActive = async (data) => { + setSpinner(true); + try { + const res = await userService.isUserActive(data); + if (res?.data[0]?.enabled && ( res?.data[0]?.attributes.Role[0] !== "Institute" && res?.data[0]?.attributes.Role[0] !== "Assessor") ) { + login(data); + setSpinner(false); + } else { + setSpinner(false); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "User not found. Please contact system admin.", + toastType: "error", + })); + } + + } catch (error) { + setSpinner(false); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Something went wrong. Please try again later. ", + toastType: "error", + })); + } + + } + const verifyOtp = async (data) => { try { setSpinner(true); @@ -97,27 +112,45 @@ const AdminLogin = () => { const loginRes = await userService.login(loginDetails); console.log(loginRes); - // const verifyOtpReq = userService.verifyOtp(data.email, data.otp); - // const fusionAuthLoginReq = from(verifyOtpReq).pipe( - // mergeMap((verifyOtpRes) => { - // if (verifyOtpRes.data.data.Status === "Error") { - // setVerifyEnteredOtp(false); - // } else { - // setVerifyEnteredOtp(true); - // return userService.login(loginDetails); - // } - // }) - // ); - let user_details = loginRes?.data?.userRepresentation; + if (loginRes?.data?.error) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Enter the correct OTP.", + toastType: "error", + })); + return; + } + + + + const user_details = loginRes?.data?.userRepresentation; + console.log(loginRes?.data) + setCookie("userData", user_details); + const adminDetailsRes = await getRegulator({ user_id: user_details?.id, }); - const role = loginRes?.data?.userRepresentation?.attributes?.Role?.[0]; + //let role = loginRes?.data?.userRepresentation?.attributes?.Role[0]; ///comment this line when using uat env + const role = loginRes?.data?.userRepresentation?.attributes?.Role[0]; ///comment this line when using in dev env + /* let role; + if((window.location.host.includes("regulator.upsmfac")) || (window.location.host.includes("localhost"))){ + role = loginRes?.data?.userRepresentation?.attributes?.Role[0]; /// dev env + + } else { + role = loginRes?.data?.userRepresentation?.attributes?.Role[0]; /// uat env + + } */ + + console.log(role) + setCookie("regulator", adminDetailsRes.data.regulator); if (role === "Super-Admin" || role === "Desktop-Admin") { - setCookie("userData", loginRes.data); - setCookie("regulator", adminDetailsRes.data.regulator); navigate(ADMIN_ROUTE_MAP.adminModule.manageUsers.home); - } else { + } + else if (role === "Desktop-Assessor") { + navigate(ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home); + } + else { setToast((prevState) => ({ ...prevState, toastOpen: true, @@ -129,21 +162,20 @@ const AdminLogin = () => { //setting device ID if (getCookie("firebase_client_token") !== undefined) { await updateRegulatorDeviceId({ - user_id: getCookie("userData")?.userRepresentation?.id, + user_id: getCookie("userData")?.id, device_id: JSON.stringify([getCookie("firebase_client_token")]), }); } } catch (error) { + console.log( + "some error @ login", error); setToast((prevState) => ({ ...prevState, toastOpen: true, - toastMsg: "Enter the correct OTP.", + toastMsg: "Something went wrong. Please try again later.", toastType: "error", })); - console.log( - "Otp veriification and login failed due to some error", - error - ); + removeCookie("regulator"); removeCookie("userData"); } finally { @@ -151,6 +183,11 @@ const AdminLogin = () => { } }; + const handleBackClick = () => { + setEnableOtp(false); + resetField("otp"); + } + if (!isLoggedIn) { return ( <> @@ -162,7 +199,8 @@ const AdminLogin = () => { <> <form onSubmit={handleSubmit((data) => { - login(data); + // login(data); + isUserActive(data) })} noValidate > @@ -276,11 +314,11 @@ const AdminLogin = () => { Please enter the correct OTP </div> )} - {toast.toastOpen && ( + {/* {toast.toastOpen && ( <div className="text-red-500 mt-2 text-sm"> You are not a registered admin. </div> - )} + )} */} </div> <Button moreClass="uppercase text-white w-full mt-7" @@ -290,9 +328,7 @@ const AdminLogin = () => { <div className="flex justify-center my-6"> <span className="text-primary-700 cursor-pointer" - onClick={() => { - setEnableOtp(false); - }} + onClick={handleBackClick} > Go back, re-enter the email id </span> diff --git a/apps/wrapper/web-portal/src/login/LoginEnterOtp.jsx b/apps/wrapper/web-portal/src/login/LoginEnterOtp.jsx index c5e40332..abd854a0 100644 --- a/apps/wrapper/web-portal/src/login/LoginEnterOtp.jsx +++ b/apps/wrapper/web-portal/src/login/LoginEnterOtp.jsx @@ -39,40 +39,4 @@ export default function LoginEnterOtp() { ); } -{ - /* <div className="bg-gray-100 flex flex-col py-16 w-full h-screen"> - <div className="flex flex-col container items-center mx-auto"> - <div className="flex flex-col py-12"> - <div className="flex flex-row gap-4"> - <img className="logo" src={Group} alt="logo1" /> - <div - className="inline-block h-[72px] min-h-[1em] w-0.5 border opacity-100 dark:opacity-50"> - </div> - <img className="logo" src={Nirmaya} alt="logo2" /> - </div> - </div> - <div className="flex container justify-center py-8 mx-auto"> - <div className="flex flex-col items-center shadow-md bg-white w-[624px] h-[400px]"> - <h1 className="text-2xl font-medium p-6 font-md"> - Login - </h1> - <div className="sm:col-span-4"> - <label htmlFor="email" className="p-2 block mt-6 text-left leading-6 text-gray-800"> - Enter OTP - </label> - <div className="p-2"> - <input - id="email" - placeholder="0-0-0-0-0-0" - className="block rounded-[4px] w-full p-4 border-0 py-3 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6" - /> - <div className="p-2 text-sm text-gray-400">Enter the 6 digit OTP sent to your email address</div> - <button className="mt-4 border border-blue-900 text-white bg-blue-900 w-[400px] py-3 font-medium rounded-[4px]">SIGN IN</button> - <div className="p-4 font-medium text-blue-700 text-center">Go back, re-enter the email</div> - </div> - </div> - </div> - </div> - </div> - </div> */ -} + diff --git a/apps/wrapper/web-portal/src/pages/dashboard/DashboardLandingPage.jsx b/apps/wrapper/web-portal/src/pages/dashboard/DashboardLandingPage.jsx index 97c5d658..a7db72d0 100644 --- a/apps/wrapper/web-portal/src/pages/dashboard/DashboardLandingPage.jsx +++ b/apps/wrapper/web-portal/src/pages/dashboard/DashboardLandingPage.jsx @@ -1,20 +1,427 @@ -import React from "react"; +import React, { useContext, useEffect, useState } from "react"; import Header from "../../components/Header"; import Nav from "../../components/Nav"; +import FilteringTable from "../../components/table/FilteringTable"; +import { ContextAPI } from "../../utils/ContextAPI"; +import { Option, Select } from "@material-tailwind/react"; +import { Button } from "../../components"; +import { + filterDashBoardData, + searchDashBoard, + getInProgressCount, + getApprovedCount, + getRejectedCount, + exportToExcel +} from "../../api"; +import { + readableDate, +} from "../../utils/common"; const DashboardLandingPage = (props) => { + + const { setSpinner } = useContext(ContextAPI); + const [formsList, setFormsList] = useState(); + const [isSearchOpen, setIsSearchOpen] = useState(false); + const [isFilterOpen, setIsFilterOpen] = useState(false); + const [round, setRound] = useState(1); + const [paginationInfo, setPaginationInfo] = useState({ + offsetNo: 0, + limit: 10, + totalCount: 0, + }); + + const [pageFilters, setPageFilters] = useState({ + "round": { + "_eq": 1 + } + }); + const [inProgressCount, setInProgressCount] = useState(0); + const [approvedCount, setApprovedCount] = useState(0); + const [rejectedCount, setRejectedCount] = useState(0); + const [totalCount, setTotalCount] = useState(0); + + const formsDataList = []; + + + const COLUMNS = [ + { + Header: "Application ID", + accessor: "application_id", + }, + { + Header: "Date", + accessor: "date", + }, + { + Header: "Institute Name", + accessor: "institute_name", + }, + { + Header: "Application type", + accessor: "application_type", + }, + { + Header: "Course Type", + accessor: "course_type", + }, + { + Header: "Form title", + accessor: "form_name", + }, + { + Header: "City", + accessor: "city", + }, + { + Header: "Status", + accessor: "status", + } + + ]; + + useEffect(() => { + filterApiCall(); + }, [ + paginationInfo.offsetNo, + paginationInfo.limit, + round + ]); + + useEffect(() => { + fetchInProgressCount(); + }, [ + round + ]); + + + useEffect(() => { + setTotalCount(inProgressCount + approvedCount + rejectedCount) + }, [ + inProgressCount,approvedCount,rejectedCount + ]); + + + const fetchInProgressCount = async () => { + const postData = { + round: round + }; + try { + const res = await getInProgressCount(postData); + setInProgressCount(res?.data?.form_submissions_aggregate.aggregate.count) + } catch (error) { + console.log("error - ", error); + } finally { + + fetchApprovedCount(); + setSpinner(false); + } + }; + const fetchApprovedCount = async () => { + console.log(round) + const postData = { + round: round + }; + try { + const res = await getApprovedCount(postData); + console.log(res?.data?.form_submissions_aggregate.aggregate.count) + setApprovedCount(res?.data?.form_submissions_aggregate.aggregate.count) + } catch (error) { + console.log("error - ", error); + } finally { + fetchRejectedCount(); + setSpinner(false); + + } + }; + const fetchRejectedCount = async () => { + const postData = { + round: round + }; + try { + const res = await getRejectedCount(postData); + setRejectedCount(res?.data?.form_submissions_aggregate.aggregate.count); + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + + } + }; + + + const filterApiCall = (filters) => { + + let payload = { + "round": { + "_eq": round + } + }; + + if (filters !== 'cleared') { + payload = { + ...pageFilters, + "round": { + "_eq": round + } + }; + } + + if (filters?.status) { + payload.form_status = { "_eq": filters.status } + } + + if (filters?.district) { + payload.institute = { + "district": { + "_eq": filters.district + } + } + } + + if (filters?.startDate && filters?.endDate) { + payload.submitted_on = { + "_gte": filters.startDate, + "_lte": filters.endDate + } + } + setPageFilters(payload); + const postData = { + offsetNo: paginationInfo.offsetNo, + limit: paginationInfo.limit, + param: payload, + }; + + filterDashBoard(postData); + } + + const filterDashBoard = async (postData) => { + + try { + setSpinner(true); + const res = await filterDashBoardData(postData); + setPaginationInfo((prevState) => ({ + ...prevState, + totalCount: res.data.form_submissions_aggregate.aggregate.totalCount, + })); +// setTotalCount(res.data.form_submissions_aggregate.aggregate.totalCount) + setFormsList(res?.data?.form_submissions); + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + } + }; + + const searchApiCall = async (searchData) => { + const postData = { + offsetNo: paginationInfo.offsetNo, + limit: paginationInfo.limit, + ...searchData + }; + try { + setSpinner(true); + const res = await searchDashBoard(postData); + setPaginationInfo((prevState) => ({ + ...prevState, + totalCount: res.data.form_submissions_aggregate.aggregate.totalCount, + })); + setFormsList(res?.data?.form_submissions); + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + } + }; + + const downloadReport = async () => { + if (paginationInfo.totalCount > 0) { + + const payload = { + ...pageFilters, + "round": { + "_eq": round + } + }; + + const postData = { + offsetNo: 0, + limit: paginationInfo.totalCount, + param: payload + }; + try { + setSpinner(true); + const res = await filterDashBoardData(postData); + // setFormsList(res?.data?.form_submissions); + console.log('form details: ', res?.data?.form_submissions); + const dashBoardReports = { + sheetName: 'report', + downloadObject: [], + headers: ['Application ID', 'Date', 'Institute Name', 'Application Type', 'Course Type', 'Form Title', 'City', 'Status'] + } + res?.data?.form_submissions.forEach((element) => { + const report = { + application_id: element.form_id, + date: readableDate(element?.submitted_on) || "-", + institute_name: element?.institute.name || "-", + application_type: element?.course_type || "-", + course_type: element?.course_level || "-", + form_name: element?.form_name, + city: element?.institute.district || "-", + status: element?.form_status || "-", + } + dashBoardReports.downloadObject.push(report) + }) + const roundName = round === 1 ? 'Round One' : 'Round Two' + const downloadObjects = { + fileName: `${roundName} dashboard_reports.xlsx`, + objectsList: [dashBoardReports] + } + exportToExcel(downloadObjects); + + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + } + } + } + + formsList?.forEach((e) => { + const formsData = { + application_id: e.form_id, + date: readableDate(e?.submitted_on) || "-", + application_type: e?.course_type || "-", + course_type: e?.course_level || "-", + // course_name: `${e?.course?.course_type} - ${e?.course?.course_level}` || "NA", + institute_name: e?.institute.name || "-", + id: e.form_id, + form_name: e?.form_name, + status: e?.form_status || "-", + city: e?.institute.district || "-" + }; + formsDataList.push(formsData); + }); + + const handleChange = async (round) => { + console.log(round) + // setRound(round).then; + setRound(round) + //fetchDashBoardData(round); + //filterApiCall(); + } + return ( - <div> - <Header></Header> - <Nav></Nav> - <div className=''> - AAAAAAAAAAAAA + <> + <Header /> + + <Nav /> + + <div + className={`container ; m-auto min-h-[calc(100vh-148px)] px-3 py-12`} + > + <div className="flex flex-col gap-8"> + + <div className="flex flex-col gap-4"> + + <div className="flex justify-end"> + <div> + <span> + <span className=" mr-5"> + <label> + Total Applications: <span className="w-72 mr-5" > <b>{totalCount}</b> </span> + </label> + </span> + <span className="mr-5" style={{ backgroundColor: "yellow"}}> + <label> + In-Progress Applications: <span className="w-72 mr-5" ><b> {inProgressCount}</b></span> + </label> + </span> + <span className="mr-5" style={{ backgroundColor: "green" }}> + <label> + Approved Applications:<span className="w-72 mr-5" > <b>{approvedCount}</b> </span> + </label> + </span> + <span style={{ backgroundColor: "red" }}> + <label> + Rejected Applications:<span className="w-72 mr-5"> <b>{rejectedCount}</b> </span> + </label> + </span> + </span> + </div> + </div> + + + + <div className="grid grid-cols-1 gap-x-6 gap-y-6 sm:grid-cols-6"> + <div className="sm:col-span-3"> + + <div className="w-72 bg-white rounded-[8px]"> + <Select + value={round} + label="Select round" + onChange={(value) => { + handleChange(value); + /* setPaginationInfo((prevState) => ({ + ...prevState, + offsetNo: 0, + })); */ + setIsFilterOpen(false); + setIsSearchOpen(false); + }} + > + <Option value={1}>Round one</Option> + <Option value={2}>Round two</Option> + </Select> + + </div> + + </div> + <div className="sm:col-span-3 flex justify-end"> + <Button + onClick={() => { + downloadReport(); + }} + moreClass="border boevent_namerder-blue-500 bg-white text-blue-500 w-[160px]" + text="Download Report" + ></Button> + </div> + </div> + </div> + + <div className="flex flex-col gap-4"> + + {/* table creation starts here */} + <div className="flex flex-col gap-4"> + + <FilteringTable + dataList={formsDataList} + // navigateFunc={navigateToView} + navigateFunc={() => { }} + columns={COLUMNS} + pagination={true} + onRowSelect={() => { }} + filterApiCall={filterApiCall} + showFilter={true} + selectedRound={round} + showSearch={true} + paginationInfo={paginationInfo} + setPaginationInfo={setPaginationInfo} + searchApiCall={searchApiCall} + setIsSearchOpen={setIsSearchOpen} + setIsFilterOpen={setIsFilterOpen} + /> + </div> + </div> + </div> + </div> - </div> + + </> ); }; export default DashboardLandingPage; + diff --git a/apps/wrapper/web-portal/src/pages/desktop-analysis/DesktopAnalysisList.jsx b/apps/wrapper/web-portal/src/pages/desktop-analysis/DesktopAnalysisList.jsx index 8865d9c7..32f2e386 100644 --- a/apps/wrapper/web-portal/src/pages/desktop-analysis/DesktopAnalysisList.jsx +++ b/apps/wrapper/web-portal/src/pages/desktop-analysis/DesktopAnalysisList.jsx @@ -4,21 +4,23 @@ import { useNavigate } from "react-router-dom"; import { Select, Option } from "@material-tailwind/react"; import FilteringTable from "../../components/table/FilteringTable"; -import Card from "../../components/Card"; import Nav from "../../components/Nav"; +import { getCookie } from "../../utils"; import { ContextAPI } from "../../utils/ContextAPI"; +import { Button } from "../../components"; + import { filterDesktopAnalysis, getDesktopAnalysisForms, markReviewStatus, searchDesktop, - registerEvent, getTransactionDetail, + exportToExcel } from "../../api"; import { - getFieldName, readableDate, + formatDate, getLocalTimeInISOFormat, } from "../../utils/common"; import ADMIN_ROUTE_MAP from "../../routes/adminRouteMap"; @@ -36,10 +38,12 @@ const DesktopAnalysisList = () => { limit: 10, totalCount: 0, }); + const loggedInUserRole = getCookie("userData").attributes.Role[0]; + const [paymentModal, setPaymentModal] = useState(false); const [isSearchOpen, setIsSearchOpen] = useState(false); const [isFilterOpen, setIsFilterOpen] = useState(false); - const { setSpinner } = useContext(ContextAPI); + const { setSpinner, setToast } = useContext(ContextAPI); const [selectedRound, setSelectedRound] = useState(1); const [viewPaymentModal, setViewPaymentModal] = useState({ flag: false, @@ -63,7 +67,7 @@ const DesktopAnalysisList = () => { accessor: "application_type", }, { - Header: "Course Type", + Header: "Course Name", accessor: "course_name", }, { @@ -83,6 +87,36 @@ const DesktopAnalysisList = () => { accessor: "schedule", }, ]; + const REJECTEDCOLUMNS = [ + { + Header: "Form title", + accessor: "form_title", + }, + { + Header: "Application type", + accessor: "application_type", + }, + { + Header: "Course Name", + accessor: "course_name", + }, + { + Header: "Date", + accessor: "reviewed_on", + }, + { + Header: "Status", + accessor: "status", + }, + // { + // Header: "Payment status", + // accessor: "payment_status", + // }, + { + Header: "", + accessor: "schedule", + }, + ] const NEWCOLUMNS = [ { Header: "Form title", @@ -184,24 +218,43 @@ const DesktopAnalysisList = () => { ]); const fetchDesktopAnalysisForms = async () => { - const postData = { - offsetNo: paginationInfo.offsetNo, - limit: paginationInfo.limit, - round: selectedRound, - formStatus: state.menu_selected, - }; - try { - setSpinner(true); - const res = await getDesktopAnalysisForms(postData); - setPaginationInfo((prevState) => ({ - ...prevState, - totalCount: res.data.form_submissions_aggregate.aggregate.totalCount, - })); - setFormsList(res?.data?.form_submissions); - } catch (error) { - console.log("error - ", error); - } finally { - setSpinner(false); + if(state.menu_selected === "Inspection Scheduled"){ + const condition= { + assessor_id: { + _is_null: true + }, + round: { + _eq: selectedRound + }, + form_status: { + _eq: state.menu_selected, + } + } + filterApiCall(condition); + } else { + const postData = { + offsetNo: paginationInfo.offsetNo, + limit: paginationInfo.limit, + round: selectedRound, + formStatus: state.menu_selected, + }; + try { + setSpinner(true); + const res = await getDesktopAnalysisForms(postData); + setPaginationInfo((prevState) => ({ + ...prevState, + totalCount: res.data.form_submissions_aggregate.aggregate.totalCount, + })); + //console.log(res?.data?.form_submissions); + + console.log(res?.data?.form_submissions); + setFormsList(res?.data?.form_submissions); + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + } + } }; @@ -274,23 +327,93 @@ const DesktopAnalysisList = () => { }; const handleViewPayment = async (e) => { - const transactionRes = await getTransactionDetail( - e.transaction_details[0]?.id - ); - setViewPaymentModal((prevState) => ({ - paymentDetails: { - ...prevState.paymentDetails, - dateTime: readableDate(transactionRes?.data?.transactionDate), - transactionId: transactionRes?.data?.uniqueRefNumber, - amount: transactionRes?.data?.totalAmount, - collegeName: e.institute.name, - paymentStatus: transactionRes?.data?.transaction_status, - }, - flag: true, - })); + if (e.transaction_details[0]) { + const transactionRes = await getTransactionDetail( + e.transaction_details[0]?.id + ); + setViewPaymentModal((prevState) => ({ + paymentDetails: { + ...prevState.paymentDetails, + dateTime: readableDate(transactionRes?.data?.transactionDate), + transactionId: transactionRes?.data?.uniqueRefNumber, + amount: transactionRes?.data?.totalAmount, + collegeName: e.institute.name, + paymentStatus: transactionRes?.data?.transaction_status, + }, + flag: true, + })); + } + else { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Failed to load payment details", + toastType: "error", + })); + } }; + const downloadReport = async () => { + console.log("here") + if (paginationInfo.totalCount > 0) { + const postData = { + formStatus: "DA Completed", + offsetNo: 0, + limit: paginationInfo.totalCount, + round: selectedRound + }; + try { + setSpinner(true); + const res = await getDesktopAnalysisForms(postData); + // setFormsList(res?.data?.form_submissions); + //console.log('DesktopAnalysisForms: ', res?.data?.form_submissions); + const daCompletedFormsReport = { + sheetName: 'report', + downloadObject: [], + headers: ['FORM ID', 'FORM TITLE', 'APPLICATION TYPE', 'COURSE TYPE', 'DATE', 'FORM STATUS', 'PAYMENT STATUS', 'ASSESSOR ID'] + + } + + res?.data?.form_submissions.forEach((element) => { + + if (element?.payment_status === "Paid") { + const report = { + form_id: element.form_id, + form_title: element.course.course_name, + application_type: element.course.application_type || "-", + course_type: element?.course_type || "-", + date: element?.submitted_on || "-", + // course_level: element?.course_level || "-", + form_status: element?.form_status, + payment_status: element?.payment_status || "-", + } + daCompletedFormsReport.downloadObject.push(report) + } + }) + const arr = daCompletedFormsReport.downloadObject + daCompletedFormsReport.downloadObject = arr.sort((p1, p2) => (p1.date < p2.date) ? 1 : (p1.date > p2.date) ? -1 : 0); + // const roundName = selectedRound === 1 ? 'Round One' : 'Round Two' + const downloadObjects = { + fileName: `${formatDate(new Date())}_DA_COMPLETED.xlsx`, + objectsList: [daCompletedFormsReport] + } + exportToExcel(downloadObjects); + setSpinner(false); + } catch (error) { + console.log("error - ", error); + setSpinner(false); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Failed to download excel file", + toastType: "error", + })); + } + } + } + formsList?.forEach((e) => { + //console.log("e =>", e); let applicationType = e?.course?.application_type?.replace("_", " "); var formsData = { form_title: ( @@ -305,18 +428,21 @@ const DesktopAnalysisList = () => { application_type: applicationType?.charAt(0).toUpperCase() + applicationType?.substring(1).toLowerCase(), - course_name: e?.course_type || "NA", + course_name: `${e?.course_type} - ${e?.course_level}` || "NA", + // course_name: `${e?.course?.course_type} - ${e?.course?.course_level}` || "NA", + published_on: readableDate(e?.submitted_on), + reviewed_on: readableDate(e?.reviewed_on), id: e.form_id, status: e?.form_status || "NA", payment_status: ( <div className={`px-6 text-primary-600 pl-0`} onClick={ - e?.payment_status === "Paid" ? () => handleViewPayment(e) : () => {} + (e?.payment_status === "Paid" || e?.payment_status === "Initiated") ? () => handleViewPayment(e) : () => { } } > - {e?.payment_status === "Paid" + {(e?.payment_status === "Paid" || e?.payment_status === "Initiated") ? "View Payment Detail" : e?.payment_status || "NA"} </div> @@ -397,6 +523,18 @@ const DesktopAnalysisList = () => { </div> </div> </div> + {state.menu_selected === "DA Completed" && ( + <div className="sm:col-span-3 flex justify-end"> + <Button + onClick={() => { + downloadReport(); + }} + moreClass="border boevent_namerder-blue-500 bg-white text-blue-500 " + text="Download DA Completed forms as excel file" + ></Button> + </div>) + } + </div> <div className="flex flex-col gap-4"> @@ -407,80 +545,79 @@ const DesktopAnalysisList = () => { > <a href="#" - className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ - state.menu_selected === "Application Submitted" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${state.menu_selected === "Application Submitted" ? "text-blue-600 border-b-2 border-blue-600" : "" - }`} + }`} > - New + New Forms Submitted </a> </li> - <li className="" onClick={() => handleSelectMenu("Resubmitted")}> + <li className="" onClick={() => handleSelectMenu("Returned")}> <a href="#" - className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ - state.menu_selected === "Resubmitted" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${state.menu_selected === "Returned" ? "text-blue-600 border-b-2 border-blue-600" : "" - }`} + }`} > - Resubmitted + Returned to institute </a> </li> - <li className="" onClick={() => handleSelectMenu("DA Completed")}> + <li className="" onClick={() => handleSelectMenu("Resubmitted")}> <a href="#" - className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ - state.menu_selected === "DA Completed" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${state.menu_selected === "Resubmitted" ? "text-blue-600 border-b-2 border-blue-600" : "" - }`} - aria-current="page" + }`} > - DA Completed + Resubmitted for DA </a> </li> - <li - className="" - onClick={() => handleSelectMenu("Inspection Scheduled")} - > + <li className="" onClick={() => handleSelectMenu("DA Completed")}> <a href="#" - className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ - state.menu_selected === "Inspection Scheduled" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${state.menu_selected === "DA Completed" ? "text-blue-600 border-b-2 border-blue-600" : "" - }`} + }`} + aria-current="page" > - Sent for Inspection + DA Completed </a> </li> + + {loggedInUserRole !== "Desktop-Assessor" && ( + < li + className="" + onClick={() => handleSelectMenu("Inspection Scheduled")} + > + <a + href="#" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${state.menu_selected === "Inspection Scheduled" + ? "text-blue-600 border-b-2 border-blue-600" + : "" + }`} + > + On-ground Inspection Scheduled + </a> + </li> + )} <li className="" onClick={() => handleSelectMenu("Rejected")}> <a href="#" - className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ - state.menu_selected === "Rejected" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${state.menu_selected === "Rejected" ? "text-blue-600 border-b-2 border-blue-600" : "" - }`} + }`} aria-current="page" > - Rejected + Application Rejected </a> </li>{" "} - <li className="" onClick={() => handleSelectMenu("Returned")}> - <a - href="#" - className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ - state.menu_selected === "Returned" - ? "text-blue-600 border-b-2 border-blue-600" - : "" - }`} - > - Returned to institute - </a> - </li> + + </ul> {/* table creation starts here */} @@ -489,10 +626,10 @@ const DesktopAnalysisList = () => { <FilteringTable dataList={formsDataList} // navigateFunc={navigateToView} - navigateFunc={() => {}} + navigateFunc={() => { }} columns={COLUMNS} pagination={true} - onRowSelect={() => {}} + onRowSelect={() => { }} filterApiCall={filterApiCall} showFilter={true} showSearch={true} @@ -508,10 +645,10 @@ const DesktopAnalysisList = () => { <FilteringTable dataList={formsDataList} // navigateFunc={navigateToView} - navigateFunc={() => {}} + navigateFunc={() => { }} columns={COLUMNS} pagination={true} - onRowSelect={() => {}} + onRowSelect={() => { }} filterApiCall={filterApiCall} showFilter={true} showSearch={true} @@ -527,10 +664,10 @@ const DesktopAnalysisList = () => { <FilteringTable dataList={formsDataList} // navigateFunc={navigateToView} - navigateFunc={() => {}} + navigateFunc={() => { }} columns={COLUMNS} pagination={true} - onRowSelect={() => {}} + onRowSelect={() => { }} filterApiCall={filterApiCall} showFilter={true} showSearch={true} @@ -546,10 +683,10 @@ const DesktopAnalysisList = () => { <FilteringTable dataList={formsDataList} // navigateFunc={navigateToView} - navigateFunc={() => {}} - columns={COLUMNS} + navigateFunc={() => { }} + columns={REJECTEDCOLUMNS} pagination={true} - onRowSelect={() => {}} + onRowSelect={() => { }} filterApiCall={filterApiCall} showFilter={true} showSearch={true} @@ -565,10 +702,10 @@ const DesktopAnalysisList = () => { <FilteringTable dataList={formsDataList} // navigateFunc={navigateToView} - navigateFunc={() => {}} + navigateFunc={() => { }} columns={NEWCOLUMNS} pagination={true} - onRowSelect={() => {}} + onRowSelect={() => { }} filterApiCall={filterApiCall} showFilter={true} showSearch={true} @@ -584,10 +721,10 @@ const DesktopAnalysisList = () => { <FilteringTable dataList={formsDataList} // navigateFunc={navigateToView} - navigateFunc={() => {}} + navigateFunc={() => { }} columns={COLUMNS} pagination={true} - onRowSelect={() => {}} + onRowSelect={() => { }} filterApiCall={filterApiCall} showFilter={true} showSearch={true} @@ -612,10 +749,10 @@ const DesktopAnalysisList = () => { {paymentModal && ( <PaymentModal closeViewSchedulesModal={setPaymentModal} - // scheduleUserData={scheduleUserData} + // scheduleUserData={scheduleUserData} ></PaymentModal> )} </> ); }; -export default DesktopAnalysisList; +export default DesktopAnalysisList; \ No newline at end of file diff --git a/apps/wrapper/web-portal/src/pages/desktop-analysis/DesktopAnalysisView.jsx b/apps/wrapper/web-portal/src/pages/desktop-analysis/DesktopAnalysisView.jsx index 62bde9a6..670e4c72 100644 --- a/apps/wrapper/web-portal/src/pages/desktop-analysis/DesktopAnalysisView.jsx +++ b/apps/wrapper/web-portal/src/pages/desktop-analysis/DesktopAnalysisView.jsx @@ -11,8 +11,7 @@ import { getLocalTimeInISOFormat } from "../../utils"; import { Card, Button } from "./../../components"; import CommonModal from "./../../Modal"; import ScheduleInspectionModal from "./ScheduleInspectionModal"; -import Sidebar from "../../components/Sidebar"; - +import { Tooltip } from "@material-tailwind/react"; import { getFormData, registerEvent, @@ -23,6 +22,7 @@ import { getAllRegulatorDeviceId, getApplicantDeviceId, sendEmailNotification, + base64ToPdf } from "../../api"; import ADMIN_ROUTE_MAP from "../../routes/adminRouteMap"; import { @@ -41,9 +41,17 @@ import { ContextAPI } from "../../utils/ContextAPI"; import { StrictMode } from "react"; import ReturnToInstituteModal from "./ReturnToInstituteModal"; + +import CommentsModal from "../../components/CommentsModal"; + +import { + FaFileDownload, +} from "react-icons/fa"; + const ENKETO_URL = process.env.REACT_APP_ENKETO_URL; let isFormSubmittedForConfiirmation = false; + export default function DesktopAnalysisView() { const [returnToInstituteModal, setReturnToInstituteModal] = useState(false); // const [openModel, setOpenModel] = useState(false); @@ -61,6 +69,20 @@ export default function DesktopAnalysisView() { const [formStatus, setFormStatus] = useState(""); const [onSubmit, setOnSubmit] = useState(false); const [rejectStatus, setRejectStatus] = useState(false); + const [formLoaded, setFormLoaded] = useState(false); + let [isDownloading, setIsDownloading] = useState(false); + + + const [showAlert, setShowAlert] = useState(false); + const [state, setState] = useState({ + alertContent: { + alertTitle: "", + alertMsg: "", + actionButtonLabel: "", + }, + }); + + const loggedInUserRole = getCookie("userData").attributes.Role[0]; const formSpec = { skipOnSuccessMessage: true, @@ -89,7 +111,7 @@ export default function DesktopAnalysisView() { ); const userDetails = getCookie("userData"); - const userId = userDetails?.userRepresentation?.id; + const userId = userDetails?.id; const fetchFormData = async () => { let formData = {}; @@ -104,7 +126,8 @@ export default function DesktopAnalysisView() { try { const res = await getFormData(postData); formData = res.data.form_submissions[0]; - + //formData = formData.reverted_count = 2; //revertedCount + console.log(formData) setPaymentStatus(formData?.payment_status); const postDataEvents = { id: formId }; const events = await getStatus(postDataEvents); @@ -161,6 +184,14 @@ export default function DesktopAnalysisView() { }; const handleSubmit = async () => { + try { + console.log(formDataFromApi) + let formSubmissionStatus = "Returned"; + if( formDataFromApi?.reverted_count >= 2){ + formSubmissionStatus = "Rejected"; + } + console.log(formSubmissionStatus) + //return const updatedFormData = await updateFormData(formSpec.start, userId); const res = await updateFormSubmission({ @@ -169,9 +200,14 @@ export default function DesktopAnalysisView() { assessment_type: "applicant", form_name: formName?.replace("admin", "applicant"), submission_status: true, + course_type: formDataFromApi?.course_type, + course_level: formDataFromApi?.course_level, + course_id: formDataFromApi?.course_id, + round:formDataFromApi?.round, applicant_id: formDataFromApi?.institute?.id, updated_at: getLocalTimeInISOFormat(), - form_status: "Returned", + reverted_count: formDataFromApi?.reverted_count + 1, + form_status: formSubmissionStatus // "Returned", }); if (res) { @@ -180,8 +216,8 @@ export default function DesktopAnalysisView() { created_date: getLocalTimeInISOFormat(), entity_id: formId.toString(), entity_type: "form", - event_name: "Returned", - remarks: `${userDetails?.userRepresentation?.username} has returned application with remarks`, + event_name: formSubmissionStatus, // "Returned", + remarks: `${userDetails?.username} has ${formSubmissionStatus} application with remarks`, }); //notifications @@ -227,8 +263,8 @@ export default function DesktopAnalysisView() { if (regDeviceIds.length) { regDeviceIds.forEach((regulator) => sendPushNotification({ - title: "Application returned!", - body: `Application returned for ${applicantRes?.data?.institutes[0]?.name} with remarks.`, + title: `Application ${formSubmissionStatus}!`, + body: `Application ${formSubmissionStatus} for ${applicantRes?.data?.institutes[0]?.name} with remarks.`, deviceToken: [regulator.device_id], userId: regulator.user_id, }) @@ -241,14 +277,14 @@ export default function DesktopAnalysisView() { if (applicantRes?.data?.institutes[0]?.email) { const emailData = { recipientEmail: [`${applicantRes?.data?.institutes[0]?.email}`], - emailSubject: `Application returned!`, + emailSubject: `Application ${formSubmissionStatus}!`, emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${applicantRes?.data?.institutes[0]?.name},</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We hope this email finds you well. We are writing to kindly request the resubmission of your application for the affiliation process. We apologize for any inconvenience caused, but it appears that there was an issue with the initial submission, and we did not receive the full information for proceeding to next steps.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We kindly request that you resubmit your application using the following steps: - <p>1. Please find your returned application in the application inbox.</p> - <p>2. You can open the returned application to view the returning officer's comment. The comments will help you to understand the gaps and bridge them.</p> - <p>3. You can resubmit the returned application after you are done with making the required changes. Please ensure to keep saving the application as draft while you progress.</p></p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We understand that this may require some additional effort on your part, and we sincerely appreciate your cooperation. Rest assured that we will treat your resubmitted application with the utmost attention and consideration during our evaluation process.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>If you have any questions or need further clarification regarding the resubmission process, please do not hesitate to reach out to our support executives at <Contact Details>. We are here to assist you and provide any necessary guidance.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'></p>Please note that the deadline for resubmitting your application is <deadline date>. Applications received after this date may not be considered for the current affiliation process.<p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'></p>We look forward to receiving your updated application.<p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Thank you for your time and continued interest in getting affiliated from our organization.</p></td></tr></table></body></html>`, + <p>1. Please find your ${formSubmissionStatus} application in the application inbox.</p> + <p>2. You can open the ${formSubmissionStatus} application to view the returning officer's comment. The comments will help you to understand the gaps and bridge them.</p> + <p>3. You can resubmit the ${formSubmissionStatus} application after you are done with making the required changes. Please ensure to keep saving the application as draft while you progress.</p></p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We understand that this may require some additional effort on your part, and we sincerely appreciate your cooperation. Rest assured that we will treat your resubmitted application with the utmost attention and consideration during our evaluation process.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>If you have any questions or need further clarification regarding the resubmission process, please do not hesitate to reach out to our support executives at <Contact Details>. We are here to assist you and provide any necessary guidance.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'></p>Please note that the deadline for resubmitting your application is <deadline date>. Applications received after this date may not be considered for the current affiliation process.<p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'></p>We look forward to receiving your updated application.<p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Thank you for your time and continued interest in getting affiliated from our organization.</p></td></tr></table></body></html>`, }; - sendEmailNotification(emailData); + // sendEmailNotification(emailData); } } isFormSubmittedForConfiirmation = false; @@ -264,8 +300,8 @@ export default function DesktopAnalysisView() { setToast((prevState) => ({ ...prevState, toastOpen: true, - toastMsg: "Remarks added successfully!", - toastType: "success", + toastMsg: `Form ${formSubmissionStatus} successfully!`, + toastType: `success` })); setSpinner(false); @@ -273,9 +309,24 @@ export default function DesktopAnalysisView() { () => navigate(`${ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home}`), 1500 ); - }; + + } catch (error) { + setSpinner(false); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: `Something went wrong. Please try again later`, + toastType: `error` + })); + } + } + const handleFormEvents = async (startingForm, afterFormSubmit, e) => { + if(typeof e.data === 'string' && e.data.includes('formLoad')) { + setFormLoaded(true); + return; + } if (typeof e.data === "string" && e.data.includes("webpackHot")) { return; } @@ -308,120 +359,188 @@ export default function DesktopAnalysisView() { }; const handleEventTrigger = async (e) => { + // console.log(e) + //setShowAlert(true); + setState((prevState) => ({ + ...prevState, + alertContent: { + quesContent: "Is your institute's Principal graduate?", + alertMsg: "Are you sure to publish the form ? ", + actionButtonLabel: "Save", + actionProps: [e], + }, + })); + handleFormEvents(startingForm, afterFormSubmit, e); }; const bindEventListener = () => { window.addEventListener("message", handleEventTrigger); + }; - const otherInfo = { + form_name: formDataFromApi?.form_name, instituteId: formDataFromApi?.institute?.id, instituteName: formDataFromApi?.institute?.name, course_applied: formDataFromApi?.institute?.course_applied, formId: formId, course_type: formDataFromApi?.course_type, course_level: formDataFromApi?.course_level, + course_name: formDataFromApi?.course?.course_name, round: formDataFromApi?.round, }; const desktopVerification = async () => { - updatePaymentStatus({ form_id: formId, payment_status: "Pending" }); - registerEvent({ - created_date: getLocalTimeInISOFormat(), - entity_id: formId, - entity_type: "form", - event_name: "DA Completed", - remarks: `${ - getCookie("regulator")[0]["full_name"] - } has completed the Desktop Analysis`, - }); - updateFormStatus({ - form_id: formId * 1, - form_status: "DA Completed", - }); - if (getCookie("firebase_client_token") !== undefined) { - // regulator - const regAPIRes = await getAllRegulatorDeviceId(); - let regDeviceIds = []; - regAPIRes?.data?.regulator?.forEach((item) => { - let tempIds = JSON.parse(item.device_id); - let tempIdsFilter = tempIds.filter(function (el) { - return el != null; - }); - if (tempIdsFilter.length) { - regDeviceIds.push({ - user_id: item.user_id, - device_id: tempIdsFilter[0], + try { + await updatePaymentStatus({ form_id: formId, payment_status: "Pending" }); + registerEvent({ + created_date: getLocalTimeInISOFormat(), + entity_id: formId, + entity_type: "form", + event_name: "DA Completed", + remarks: `${ + getCookie("regulator")[0]["full_name"] + } has completed the Desktop Analysis`, + }); + + await updateFormStatus({ + form_id: formId * 1, + form_status: "DA Completed", + updated_at: getLocalTimeInISOFormat() + });/* .then((res) => { + if(res.status === 200){ + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Form approved successfully", + toastType: "success", + })); + } + }); */ + if (getCookie("firebase_client_token") !== undefined) { + // regulator + const regAPIRes = await getAllRegulatorDeviceId(); + let regDeviceIds = []; + regAPIRes?.data?.regulator?.forEach((item) => { + const tempIds = JSON.parse(item.device_id); + const tempIdsFilter = tempIds.filter(function (el) { + return el != null; }); + if (tempIdsFilter.length) { + regDeviceIds.push({ + user_id: item.user_id, + device_id: tempIdsFilter[0], + }); + } + }); + + console.log("regulator device ids-", regDeviceIds); + if (regDeviceIds.length) { + regDeviceIds.forEach((regulator) => + sendPushNotification({ + title: "Desktop Analysis Done", + body: `The desktop analysis for ${formDataFromApi?.institute?.name}'s application has been completed. Kindly review the results.`, + // deviceToken: [`${getCookie("firebase_client_token")}`], + deviceToken: [regulator.device_id], + userId: regulator.user_id, + }) + ); } - }); - - console.log("regulator device ids-", regDeviceIds); - if (regDeviceIds.length) { - regDeviceIds.forEach((regulator) => - sendPushNotification({ - title: "Desktop Analysis Done", - body: `The desktop analysis for ${formDataFromApi?.institute?.name}'s application has been completed. Kindly review the results.`, - // deviceToken: [`${getCookie("firebase_client_token")}`], - deviceToken: [regulator.device_id], - userId: regulator.user_id, - }) - ); - } - - // applicant - const applicantRes = await getApplicantDeviceId({ - institute_id: formDataFromApi?.institute?.id, - }); - if (applicantRes?.data) { - let tempIds = JSON.parse( - applicantRes?.data?.institutes[0]?.institute_pocs[0]?.device_id - ); - let tempIdsFilter = tempIds.filter(function (el) { - return el != null; + + // applicant + const applicantRes = await getApplicantDeviceId({ + institute_id: formDataFromApi?.institute?.id, }); - if (tempIdsFilter.length) { - sendPushNotification({ - title: "Application Review", - body: `Your application is reviewed by the UPSMF representative. Kindly make the payment for further process.`, - deviceToken: tempIdsFilter, - userId: - applicantRes?.data?.institutes[0]?.institute_pocs[0]?.user_id, + if (applicantRes?.data) { + let tempIds = JSON.parse( + applicantRes?.data?.institutes[0]?.institute_pocs[0]?.device_id + ); + let tempIdsFilter = tempIds.filter(function (el) { + return el != null; }); + if (tempIdsFilter.length) { + sendPushNotification({ + title: "Application Review", + body: `Your application is reviewed by the UPSMF representative. Kindly make the payment for further process.`, + deviceToken: tempIdsFilter, + userId: + applicantRes?.data?.institutes[0]?.institute_pocs[0]?.user_id, + }); + } } } + + setTimeout( + () => navigate(`${ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home}`), + 1500 + ); + /* setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Form approved successfully.", + toastType: "success", + })); */ + } catch (error) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Something went wrong. Please try again later.", + toastType: "error", + })); } - setTimeout( - () => navigate(`${ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home}`), - 1500 - ); + }; const checkIframeLoaded = () => { + console.log(formDataFromApi.reverted_count) if (window.location.host.includes("regulator.upsmfac")) { const iframeElem = document?.getElementById("enketo_DA_preview"); var iframeContent = iframeElem?.contentDocument || iframeElem?.contentWindow.document; + // append icon element to DOM after iframeload + var section = iframeContent?.getElementsByClassName("or-group"); + if (!section) return; + for (let j = 0; j < section?.length; j++) { + const labelElements = section[j].getElementsByClassName("question"); + for(let i = 0; i < labelElements.length; i++) { + let element = document.createElement("i"); + element.setAttribute("class","fa fa-comment"); + labelElements[i].insertBefore(element, labelElements[i].childNodes[2]); + } + } if ( formDataFromApi && formDataFromApi?.form_status?.toLowerCase() !== "application submitted" && formDataFromApi?.form_status?.toLowerCase() !== "resubmitted" ) { - var section = iframeContent?.getElementsByClassName("or-group"); if (!section) return; - for (var i = 0; i < section?.length; i++) { + for (let i = 0; i < section?.length; i++) { + // const labelElements = section[i].getElementsByClassName("question"); + // for(let i = 0; i < labelElements.length; i++) { + // let element = document.createElement("i"); + // element.setAttribute("class","fa fa-comment"); + // labelElements[i].insertBefore(element, labelElements[i].childNodes[2]); + // } var inputElements = section[i].querySelectorAll("input"); + var buttonElements = section[i].querySelectorAll("button"); + + buttonElements.forEach((button) => { + button.disabled = true; + }); inputElements.forEach((input) => { input.disabled = true; }); + /* partial logic to test disabling fields */ } - iframeContent.getElementById("submit-form").style.display = "none"; } + // manipulate span element text content + const buttonElement = iframeContent.getElementById('submit-form'); + const spanElement = buttonElement?.children[1]; + spanElement.textContent = 'Return to applicant'; // Need to work on Save draft... iframeContent.getElementById("save-draft").style.display = "none"; @@ -429,10 +548,40 @@ export default function DesktopAnalysisView() { // draftButton?.addEventListener("click", function () { // alert("Hello world!"); // }); + + if(formDataFromApi?.form_status?.toLowerCase() === "resubmitted" && formDataFromApi?.reverted_count >= 2){ + iframeContent.getElementById("submit-form").style.display = "none"; + } + var optionElements = iframeContent.getElementsByClassName('option-label'); + if (!optionElements) return; + for(var k = 0; k < optionElements.length; k++ ) { + optionElements[k].style.color = '#333333'; + } } setSpinner(false); }; + const handleFormDownload = async () => { + try { + setIsDownloading(true); + const formUrl = `${ENKETO_URL}/preview?formSpec=${encodeURI( + JSON.stringify(formSpec) + )}&xform=${encodedFormURI}&userId=${userId}`; + const res = await base64ToPdf(formUrl); + + const linkSource = `data:application/pdf;base64,${res.data}`; + const downloadLink = document.createElement("a"); + const fileName = "enketo_form.pdf"; + downloadLink.href = linkSource; + downloadLink.download = fileName; + downloadLink.target = window.safari ? "" : "_blank"; + downloadLink.click(); + setIsDownloading(false); + } catch (error) { + console.log(error); + } + }; + useEffect(() => { setSpinner(true); fetchFormData(); @@ -445,13 +594,17 @@ export default function DesktopAnalysisView() { }, []); useEffect(() => { - setTimeout(() => { - checkIframeLoaded(); - }, 2500); - }, [formDataFromApi]); + if(formLoaded === true) { + checkIframeLoaded(); + } + }, [formLoaded]); return ( <StrictMode> + + {showAlert && ( + <CommentsModal showAlert={setShowAlert} {...state.alertContent} /> + )} <div className="h-[48px] bg-white flex justify-start drop-shadow-sm"> <div className="container mx-auto flex px-3"> <div className="flex flex-row font-bold gap-2 items-center"> @@ -472,7 +625,7 @@ export default function DesktopAnalysisView() { <div className="flex flex-col gap-12"> <div className="flex flex-row"> <div className="flex grow gap-4 justify-end items-center"> - {paymentStatus?.toLowerCase() !== "paid" && + {/* {paymentStatus?.toLowerCase() !== "paid" && formDataFromApi?.form_status !== "Rejected" && ( <button onClick={() => setReturnToInstituteModal(true)} @@ -496,10 +649,40 @@ export default function DesktopAnalysisView() { </span> Reject Application </button> + )} */} + + { + + formDataFromApi?.reverted_count >= 2 && + formDataFromApi?.form_status?.toLowerCase() === "resubmitted" && + formDataFromApi?.form_status?.toLowerCase() !== "rejected" && + ( + <Tooltip arrow content="This form has been resubmitted 3 times. No more reverts possible."> + <button + onClick={() => handleSubmit()} + className="text-red-500 flex flex-wrap items-center justify-center gap-2 border border-gray-500 bg-white text-gray-500 w-fit h-fit p-2 font-semibold rounded-[4px]" + > + Reject Application + </button> + </Tooltip> )} {paymentStatus?.toLowerCase() === "paid" && formDataFromApi?.form_status?.toLowerCase() === - "da completed" && ( + "da completed" && loggedInUserRole !== "Desktop-Assessor" && ( + <button + onClick={() => setOpenSheduleInspectionModel(true)} + className="flex flex-wrap items-center justify-center gap-2 border border-gray-500 bg-white text-gray-500 w-fit h-fit p-2 font-semibold rounded-[4px]" + > + Send for inspection + <span> + <BsArrowRight /> + </span> + </button> + )} + {/* { console.log(paymentStatus)} */} + {paymentStatus?.toLowerCase() === "initiated" && formDataFromApi?.round === 2 && + formDataFromApi?.form_status?.toLowerCase() === + "da completed" && loggedInUserRole !== "Desktop-Assessor" && ( <button onClick={() => setOpenSheduleInspectionModel(true)} className="flex flex-wrap items-center justify-center gap-2 border border-gray-500 bg-white text-gray-500 w-fit h-fit p-2 font-semibold rounded-[4px]" @@ -589,14 +772,27 @@ export default function DesktopAnalysisView() { </div> </Card> <Card moreClass="shadow-md"> - <iframe + <div className="flex flex-grow gap-5 my-6 justify-end"> + <button + className={`bg-primary-900 py-3 font-medium rounded-[4px] px-6 text-white flex flex-row items-center gap-3 ${ + isDownloading ? "cursor-not-allowed" : "" + } `} + onClick={handleFormDownload} + disabled={isDownloading} + > + <FaFileDownload /> + <span>{isDownloading ? "Downloading..." : "Download"}</span> + </button> + </div> + {encodedFormURI!== "" && (<iframe id="enketo_DA_preview" title="form" + onLoad={checkIframeLoaded} src={`${ENKETO_URL}/preview?formSpec=${encodeURI( JSON.stringify(formSpec) )}&xform=${encodedFormURI}&userId=${userId}`} style={{ minHeight: "100vh", width: "100%" }} - /> + />)} </Card> </div> </div> @@ -630,7 +826,7 @@ export default function DesktopAnalysisView() { {onSubmit && ( <CommonModal> <p className="text-secondary text-2xl text-semibold font-medium text-center"> - Are you sure, do you want to submit with remarks? + Are you sure, do you want to <span className="text-red-500">return</span> this application with remarks to the applicant? </p> <div className="flex flex-row justify-center w-full py-4 gap-5"> @@ -647,7 +843,7 @@ export default function DesktopAnalysisView() { className="bg-primary-900 py-3 rounded-[4px] px-8 text-white items-center gap-3 border border-primary py-3 px-7 cursor-pointer" onClick={() => handleSubmit()} > - Yes! Submit + Yes! Return </div> </div> </CommonModal> diff --git a/apps/wrapper/web-portal/src/pages/desktop-analysis/ReturnToInstituteModal.js b/apps/wrapper/web-portal/src/pages/desktop-analysis/ReturnToInstituteModal.js index 06532d71..3e4eac8e 100644 --- a/apps/wrapper/web-portal/src/pages/desktop-analysis/ReturnToInstituteModal.js +++ b/apps/wrapper/web-portal/src/pages/desktop-analysis/ReturnToInstituteModal.js @@ -25,7 +25,6 @@ function ReturnToInstituteModal({ const userDetails = getCookie("userData"); const navigate = useNavigate(); - const user_details = userDetails?.userRepresentation; const handleChange = (e) => { setComment(e.target.value); @@ -57,7 +56,7 @@ function ReturnToInstituteModal({ entity_id: formId.toString(), entity_type: "form", event_name: "Rejected", - remarks: `${user_details?.firstName} ${user_details?.lastName} has rejected the form with the following remarks ${rejectedRemarks}.`, + remarks: `${userDetails?.firstName} ${userDetails?.lastName} has rejected the form with the following remarks ${rejectedRemarks}.`, }); updateFormStatus({ @@ -131,7 +130,7 @@ function ReturnToInstituteModal({ emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${applicantRes?.data?.institutes[0]?.name},</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We hope this email finds you well. We are writing to kindly request the resubmission of your application for the affiliation process. We apologize for any inconvenience caused, but it appears that there was an issue with the initial submission. Following is the reason for rejection ${rejectedRemarks}</p></td></tr></table></body></html>`, }; - sendEmailNotification(emailData); + // sendEmailNotification(emailData); } setTimeout( () => navigate(`${ADMIN_ROUTE_MAP.adminModule.desktopAnalysis.home}`), diff --git a/apps/wrapper/web-portal/src/pages/desktop-analysis/ScheduleInspectionModal.jsx b/apps/wrapper/web-portal/src/pages/desktop-analysis/ScheduleInspectionModal.jsx index 3f8892bc..1b927a48 100644 --- a/apps/wrapper/web-portal/src/pages/desktop-analysis/ScheduleInspectionModal.jsx +++ b/apps/wrapper/web-portal/src/pages/desktop-analysis/ScheduleInspectionModal.jsx @@ -1,6 +1,5 @@ import React, { useState, useEffect, useRef, useContext } from "react"; -import { Stepper, Step } from "@material-tailwind/react"; -import { useParams, Link, useNavigate } from "react-router-dom"; +import { useParams, useNavigate } from "react-router-dom"; import { GrDocumentPdf } from "react-icons/gr"; import { AiOutlineClose } from "react-icons/ai"; import { ContextAPI } from "../../utils/ContextAPI"; @@ -21,7 +20,6 @@ import { } from "../../utils/common"; import { getUsersForScheduling, - getAllTheCourses, getScheduleAssessment, addInstituteCourse, registerEvent, @@ -30,10 +28,9 @@ import { sendPushNotification, sendEmailNotification, getAllRegulatorDeviceId, + getAssessorFormData } from "../../api"; -// import Toast from "../../components/Toast"; - function ScheduleInspectionModal({ closeSchedule, otherInfo }) { const [activeStep, setActiveStep] = React.useState(0); const [isLastStep, setIsLastStep] = React.useState(false); @@ -63,7 +60,12 @@ function ScheduleInspectionModal({ closeSchedule, otherInfo }) { const [selectedFormList, setSelectedFormList] = useState([]); useEffect(() => { - getTheCourses(); + if (otherInfo?.form_name?.includes("applicant")) { + otherInfo.form_name = `${otherInfo?.form_name?.replace("applicant", "on-ground_assessor")}.xml`; + } + if(otherInfo !== undefined) { + getAssessorForms(); + } handleOnChangeDate(new Date()); }, []); @@ -126,22 +128,23 @@ function ScheduleInspectionModal({ closeSchedule, otherInfo }) { setSelectedAA(AAObject); }; - const getTheCourses = async () => { + const getAssessorForms = async () => { let payload = { - course_type: otherInfo?.course_type, - course_level: otherInfo?.course_level, + title: otherInfo?.course_name, + assignee: "on-ground_assessor", + file_name: otherInfo.form_name }; - try { setSpinner(true); - const res = await getAllTheCourses(payload); - setFormList( - res?.data?.courses?.map((item) => ({ - value: item.course_name, - label: item.course_name, - level: item.course_level, - formObj: item.formObject, - course_id: item.course_id, + const res = await getAssessorFormData(payload); + setSelectedFormList( + res?.data?.forms?.map((item) => ({ + value: item.courses[0].course_name, + label: item.courses[0].course_name, + level: item.courses[0].course_level, + formObj: item.courses[0].formObject, + course_id: item.courses[0].course_id, + file_name: item.file_name })) ); } catch (error) { @@ -151,9 +154,7 @@ function ScheduleInspectionModal({ closeSchedule, otherInfo }) { } }; - const handleFormSelection = (e) => { - setSelectedFormList(e); - }; + console.log(formList); const handleScheduleAssessment = async () => { let coursesObj = selectedFormList.map((obj) => { @@ -214,7 +215,8 @@ function ScheduleInspectionModal({ closeSchedule, otherInfo }) { updateFormStatus({ form_id: otherInfo?.formId * 1, - form_status: "Inspection Scheduled", + updated_at: getLocalTimeInISOFormat(), + form_status: "Inspection Scheduled" }); const applicantRes = await getApplicantDeviceId({ @@ -279,7 +281,7 @@ function ScheduleInspectionModal({ closeSchedule, otherInfo }) { <br/>3. Once on-ground assessment team prove their identity, they should be allowed to enter the institute and given full cooperation to carry out the on-ground assessment.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>If you have any questions or need further clarification regarding the resubmission process, please do not hesitate to reach out to our support executives at <Contact Details>. We are here to assist you and provide any necessary guidance.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Thank you for your time and continued interest in getting affiliated from our organization.</p></td></tr></table></body></html>`, }; - sendEmailNotification(emailData); + // sendEmailNotification(emailData); } setTimeout( @@ -311,337 +313,352 @@ function ScheduleInspectionModal({ closeSchedule, otherInfo }) { return ( <> - <div className="flex flex-col justify-center items-center fixed inset-0 bg-opacity-24 z-10 backdrop-blur-sm"> - <div className="flex bg-white rounded-xl shadow-xl border border-gray-400 w-[900px] h-fit"> - <div className="flex flex-col w-full"> - <div className="flex p-4"> - <div className="flex flex-col items-center w-full"> - {/* <div className="w-[40%] p-3"> */} - {/* <div - className="flex flex-col" */} - {/* activeStep={activeStep} - isLastStep={(value) => setIsLastStep(value)} - isFirstStep={(value) => setIsFirstStep(value)} */} - {/* > */} - <div className="flex flex-row gap-2 items-center w-[40%] p-3"> - <div - className={`${ - activeStep == 1 - ? "flex items-center bg-gray-300 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" - : "flex items-center bg-blue-500 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" - }`} - // className="flex items-center bg-blue-500 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" - > - 1 - </div> - <span className="w-full h-0 border-t-[2px] border-gray-500"></span> - <div - className={`${ - activeStep == 0 - ? "flex items-center bg-gray-300 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" - : "flex items-center bg-blue-500 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" - }`} - // className="flex items-center text-white bg-blue-500 justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" - > - 2 - </div> + <div className="flex flex-col justify-center items-center fixed inset-0 bg-opacity-24 z-10 backdrop-blur-sm"> + <div className="flex bg-white rounded-xl shadow-xl border border-gray-400 w-[900px] h-fit"> + <div className="flex flex-col w-full"> + <div className="flex p-4"> + <div className="flex flex-col items-center w-full"> + {/* <div className="w-[40%] p-3"> */} + {/* <div + className="flex flex-col" */} + {/* activeStep={activeStep} + isLastStep={(value) => setIsLastStep(value)} + isFirstStep={(value) => setIsFirstStep(value)} */} + {/* > */} + <div className="flex flex-row gap-2 items-center w-[40%] p-3"> + <div + className={`${ + activeStep == 1 + ? "flex items-center bg-gray-300 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" + : "flex items-center bg-blue-500 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" + }`} + // className="flex items-center bg-blue-500 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" + > + 1 + </div> + <span className="w-full h-0 border-t-[2px] border-gray-500"></span> + <div + className={`${ + activeStep == 0 + ? "flex items-center bg-gray-300 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" + : "flex items-center bg-blue-500 text-white justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" + }`} + // className="flex items-center text-white bg-blue-500 justify-center text-[18px] font-bold rounded-[50%] h-[48px] w-[48px] p-5" + > + 2 </div> + </div> - {/* </div> */} - {/* </div> */} - {/* <div className="w-[60%] p-2"> */} - <div className="flex flex-row w-[48%] justify-between"> - <div className="flex font-semibold justify-center text-[#000]"> - Schedule inspection - </div> - <div className="flex font-semibold justify-center text-[#000]"> - Select the applications - </div> + {/* </div> */} + {/* </div> */} + {/* <div className="w-[60%] p-2"> */} + <div className="flex flex-row w-[48%] justify-between"> + <div className="flex font-semibold justify-center text-[#000]"> + Schedule inspection + </div> + <div className="flex font-semibold justify-center text-[#000]"> + Application Details </div> - {/* </div> */} </div> + {/* </div> */} </div> + </div> - <div className="flex flex-col p-4 border-t-gray-300 border-2 rounded-b-xl"> - <section> - {activeStep === 0 && ( - <div className="flex flex-col gap-4"> - <div className="flex text-xl font-semibold"> - Schedule the inspection + <div className="flex flex-col p-4 border-t-gray-300 border-2 rounded-b-xl"> + <section> + {activeStep === 0 && ( + <div className="flex flex-col gap-4"> + <div className="flex text-xl font-semibold"> + Schedule the inspection + </div> + <div className="flex flex-row gap-4"> + <div className="flex flex-col gap-3 border-gray-400 border-[1px] rounded-md p-4"> + <div className="flex flex-row gap-2 items-center"> + <div className="flex justify-center items-center w-[28px] h-[28px] rounded-full bg-gray-300 border-1 border-gray-400 text-bold text-primary-500"> + 1 + </div> + <Label + text="Select a date to select an assessor" + moreClass="text-[16px]" + required + ></Label> + </div> + <div className="no-absolute"> + <Calendar + className="bg-blue-400 rounded-[8px]" + onChange={handleOnChangeDate} + minDate={new Date()} + /> + </div> + <div className="font-medium"> + Selected date : {readableDate(payload.date)} + </div> </div> - <div className="flex flex-row gap-4"> - <div className="flex flex-col gap-3 border-gray-400 border-[1px] rounded-md p-4"> + <div className="flex flex-grow flex-col gap-4"> + <div className="flex flex-col gap-3 flex-grow p-4 border-gray-400 border-[1px] rounded-md"> <div className="flex flex-row gap-2 items-center"> <div className="flex justify-center items-center w-[28px] h-[28px] rounded-full bg-gray-300 border-1 border-gray-400 text-bold text-primary-500"> - 1 + 2 + </div> + <div className="font-medium"> + <Label + text="Add on ground assessor" + moreClass="text-[16px]" + required + ></Label> </div> - <Label - text="Select a date to select an assessor" - moreClass="text-[16px]" - required - ></Label> - </div> - <div className="no-absolute"> - <Calendar - className="bg-blue-400 rounded-[8px]" - onChange={handleOnChangeDate} - minDate={new Date()} - /> </div> - <div className="font-medium"> - Selected date : {readableDate(payload.date)} + <div className="flex flex-row gap-3"> + <Select + name="assessor_name" + label="Assessor Name" + onChange={handleSelectOGA} + options={assessorList} + ref={(ref) => { + selectInputRef = ref; + }} + isDisabled={selectedOGA.label ? true : false} + className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-1 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + ></Select> + <Button + onClick={() => handleAssignOGA()} + moreClass={`${ + !selectedOGA?.label + ? "border border-blue-400 bg-white text-blue-400 px-8 h-[44px]" + : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 px-8 h-[44px]" + }`} + text="Add" + ></Button> </div> - </div> - <div className="flex flex-grow flex-col gap-4"> - <div className="flex flex-col gap-3 flex-grow p-4 border-gray-400 border-[1px] rounded-md"> - <div className="flex flex-row gap-2 items-center"> - <div className="flex justify-center items-center w-[28px] h-[28px] rounded-full bg-gray-300 border-1 border-gray-400 text-bold text-primary-500"> - 2 - </div> - <div className="font-medium"> - <Label - text="Add on ground assessor" - moreClass="text-[16px]" - required - ></Label> + + {selectedOGA?.label && ( + <> + <div className="bg-gray-100 items-center flex border border-gray-100 justify-between rounded-xl p-1"> + <div className="gap-2 flex items-center"> + <span className="border-green-500 w-[36px] h-fit items-center bg-green-500 inline-flex justify-center gap-x-1.5 rounded-md px-2 py-2 text-sm font-semibold text-white-500 shadow-sm"> + {getInitials(selectedOGA?.label)} + </span> + <span className="font-semibold"> + {selectedOGA?.label} + </span> + </div> + <button + onClick={() => handleClearOGA()} + className="justify-end flex" + > + <AiOutlineClose /> + </button> </div> + </> + )} + </div> + + <div className="flex flex-col flex-grow gap-3 p-4 border-gray-400 border-[1px] rounded-md"> + <div className="flex flex-row gap-2 items-center"> + <div className="flex justify-center items-center w-[28px] h-[28px] rounded-full bg-gray-300 border-1 border-gray-400 text-bold text-primary-500"> + 3 </div> - <div className="flex flex-row gap-3"> - <Select - name="assessor_name" - label="Assessor Name" - onChange={handleSelectOGA} - options={assessorList} - ref={(ref) => { - selectInputRef = ref; - }} - isDisabled={selectedOGA.label ? true : false} - className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-1 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" - ></Select> - <Button - onClick={() => handleAssignOGA()} - moreClass={`${ - !selectedOGA?.label - ? "border border-blue-400 bg-white text-blue-400 px-8 h-[44px]" - : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 px-8 h-[44px]" - }`} - text="Add" - ></Button> + <div className="flex flex-row gap-1 items-center"> + <Label + text="Add an assisting assessor" + moreClass="text-[16px] font-medium" + ></Label> + + <span className="text-[11px]"> + (only one member allowed) + </span> </div> + </div> + <div className="flex flex-row gap-3"> + <Select + isMulti + isOptionDisabled={() => AAObject.length >= 1} + name="assisting_assessor" + label="Assisting Assessor/s" + ref={(ref) => { + selectAARef = ref; + }} + onChange={handleSelectAA} + options={assistingAssessorList} + className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-1 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + /> - {selectedOGA?.label && ( - <> - <div className="bg-gray-100 items-center flex border border-gray-100 justify-between rounded-xl p-1"> + <Button + onClick={() => handleAddAA()} + moreClass={`border border-blue-400 bg-white text-blue-400 px-8 h-[44px]`} + text="Add" + ></Button> + </div> + + <div className="flex flex-col gap-3 max-h-[120px] overflow-auto"> + {selectedAA.map((aa) => { + return ( + <div + className="bg-gray-100 items-center flex border border-gray-100 justify-between rounded-xl p-1" + key={aa.phonenumber} + > <div className="gap-2 flex items-center"> - <span className="border-green-500 w-[36px] h-fit items-center bg-green-500 inline-flex justify-center gap-x-1.5 rounded-md px-2 py-2 text-sm font-semibold text-white-500 shadow-sm"> - {getInitials(selectedOGA?.label)} + <span + className="border-green-500 w-[36px] h-3/4 items-center bg-green-500 inline-flex justify-center gap-x-1.5 + ed-md px-2 py-2 text-sm font-semibold text-white-500 shadow-sm" + > + {getInitials(aa.label)} </span> <span className="font-semibold"> - {selectedOGA?.label} + {aa.label} </span> </div> <button - onClick={() => handleClearOGA()} className="justify-end flex" + onClick={() => { + handleClearAA(aa); + }} > <AiOutlineClose /> </button> </div> - </> - )} - </div> - - <div className="flex flex-col flex-grow gap-3 p-4 border-gray-400 border-[1px] rounded-md"> - <div className="flex flex-row gap-2 items-center"> - <div className="flex justify-center items-center w-[28px] h-[28px] rounded-full bg-gray-300 border-1 border-gray-400 text-bold text-primary-500"> - 3 - </div> - <div className="flex flex-row gap-1 items-center"> - <Label - text="Add an assisting assessor" - moreClass="text-[16px] font-medium" - ></Label> - - <span className="text-[11px]"> - (only one member allowed) - </span> - </div> - </div> - <div className="flex flex-row gap-3"> - <Select - isMulti - isOptionDisabled={() => AAObject.length >= 1} - name="assisting_assessor" - label="Assisting Assessor/s" - ref={(ref) => { - selectAARef = ref; - }} - onChange={handleSelectAA} - options={assistingAssessorList} - className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-1 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" - /> - - <Button - onClick={() => handleAddAA()} - moreClass={`border border-blue-400 bg-white text-blue-400 px-8 h-[44px]`} - text="Add" - ></Button> - </div> - - <div className="flex flex-col gap-3 max-h-[120px] overflow-auto"> - {selectedAA.map((aa) => { - return ( - <div - className="bg-gray-100 items-center flex border border-gray-100 justify-between rounded-xl p-1" - key={aa.phonenumber} - > - <div className="gap-2 flex items-center"> - <span - className="border-green-500 w-[36px] h-3/4 items-center bg-green-500 inline-flex justify-center gap-x-1.5 - ed-md px-2 py-2 text-sm font-semibold text-white-500 shadow-sm" - > - {getInitials(aa.label)} - </span> - <span className="font-semibold"> - {aa.label} - </span> - </div> - <button - className="justify-end flex" - onClick={() => { - handleClearAA(aa); - }} - > - <AiOutlineClose /> - </button> - </div> - ); - })} - </div> + ); + })} </div> </div> </div> </div> - )} - </section> - - <section> - {activeStep === 1 && ( - <div className="flex flex-col gap-4"> - <div className="flex text-xl font-semibold"> - Select the applications - </div> - - <div className="flex flex-col gap-3 w-full"> - <div className="flex flex-col rounded-xl border border-gray-400 p-4 gap-3"> - <Label - htmlFor={"institute_name"} - required - text="Form filled by the institute" - moreClass="text-[16px]" - ></Label> + </div> + )} + </section> - <div className="bg-gray-100 items-center flex gap-4 border border-gray-100 rounded-md"> - <span className="font-semibold p-2"> - {otherInfo?.course_type} - {otherInfo?.course_level} - </span> - </div> + <section> + {activeStep === 1 && ( + <div className="flex flex-col gap-4"> + {/* <div className="flex text-xl font-semibold"> + Select the applications + </div> */} + + <div className="flex flex-col gap-3 w-full"> + <div className="flex flex-col rounded-xl border border-gray-400 p-4 gap-3"> + <Label + htmlFor={"institute_name"} + required + text="Form filled by the institute" + moreClass="text-[16px]" + ></Label> + + <div className="bg-gray-100 items-center flex gap-4 border border-gray-100 rounded-md"> + <span className="font-semibold p-2"> + {otherInfo?.course_type} - {otherInfo?.course_level} - {otherInfo?.course_applied} + </span> </div> + </div> - <div className="flex flex-col gap-3 rounded-xl border border-gray-400 p-4"> - <Label - required - text="Select forms" - moreClass="text-[16px]" - ></Label> - - <div className="flex flex-row"> - <Select - isMulti - key={"form_name"} - name="form_name" - label="Form Name" - onChange={handleFormSelection} - options={formList} - className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-1 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" - /> - </div> - - <div className="flex flex-col gap-3 max-h-[120px] overflow-auto"> - {selectedFormList.map((form, index) => { - return ( + <div className="flex flex-col gap-3 rounded-xl border border-gray-400 p-4"> + <Label + required + text="Assessor Form" + moreClass="text-[16px]" + ></Label> + + {/* <div className="flex flex-row"> + <Select + isMulti + key={"form_name"} + name="form_name" + label="Form Name" + onChange={handleFormSelection} + options={formList} + className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-1 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + /> + </div> */} + + {/* <div className="flex flex-col gap-3 max-h-[120px] overflow-auto"> + {selectedFormList.map((form, index) => { + return ( + <div + className="flex items-center bg-gray-100 border border-gray-100 rounded-md font-semibold" + key={index} + > + <div className="flex w-[36px] h-[36px] items-center justify-center"> + <GrDocumentPdf /> + </div> + <div>{form.file_name}</div> + </div> + ); + })} + </div> */} + <div className="flex flex-col gap-3 max-h-[120px] overflow-auto"> + {selectedFormList.length > 0 ? <> + {selectedFormList.map((form, index) => + ( <div className="flex items-center bg-gray-100 border border-gray-100 rounded-md font-semibold" - key={index} > <div className="flex w-[36px] h-[36px] items-center justify-center"> <GrDocumentPdf /> </div> - <div>{form.label}</div> + <div>{form.file_name}</div> </div> - ); - })} + ) + )}</>: <p style={{color: 'red'}}>No relevant assessor forms available. Please create a form to schedule inspection</p>} </div> - </div> </div> </div> - )} - </section> - - <footer className="mt-4"> - {activeStep === 0 && ( - <div className="flex flex-row justify-between w-full"> - <Button - onClick={() => { - closeSchedule(false); - }} - moreClass={`px-8 border border-primary-500 bg-white text-primary-500`} - text="Close" - ></Button> - <Button - onClick={handleNext} - otherProps={{ - disabled: selectedOGA?.value ? false : true, - }} - moreClass={`${ - selectedOGA?.value - ? "px-8 text-white" - : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 px-8 h-[44px]" - }`} - text="Next" - ></Button> - </div> - )} - {activeStep === 1 && ( - <div className="flex flex-row w-full justify-between"> - <Button - onClick={handlePrev} - moreClass={`px-8 border border-primary-500 bg-white text-primary-500`} - text="Previous" - ></Button> - <Button - onClick={handleScheduleAssessment} - otherProps={{ - disabled: - selectedOGA?.value && selectedFormList[0]?.value - ? false - : true, - }} - moreClass={`${ + </div> + )} + </section> + + <footer className="mt-4"> + {activeStep === 0 && ( + <div className="flex flex-row justify-between w-full"> + <Button + onClick={() => { + closeSchedule(false); + }} + moreClass={`px-8 border border-primary-500 bg-white text-primary-500`} + text="Close" + ></Button> + <Button + onClick={handleNext} + otherProps={{ + disabled: selectedOGA?.value ? false : true, + }} + moreClass={`${ + selectedOGA?.value + ? "px-8 text-white" + : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 px-8 h-[44px]" + }`} + text="Next" + ></Button> + </div> + )} + {activeStep === 1 && ( + <div className="flex flex-row w-full justify-between"> + <Button + onClick={handlePrev} + moreClass={`px-8 border border-primary-500 bg-white text-primary-500`} + text="Previous" + ></Button> + <Button + onClick={handleScheduleAssessment} + otherProps={{ + disabled: selectedOGA?.value && selectedFormList[0]?.value - ? "px-8 text-white" - : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 px-8 h-[44px]" - }`} - text="Submit" - ></Button> - </div> - )} - </footer> - </div> + ? false + : true, + }} + moreClass={`${ + selectedOGA?.value && selectedFormList[0]?.value + ? "px-8 text-white" + : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 px-8 h-[44px]" + }`} + text="Submit" + ></Button> + </div> + )} + </footer> </div> </div> </div> - </> + </div> + </> ); } diff --git a/apps/wrapper/web-portal/src/pages/ground-analysis/GroundInspectionListForms.jsx b/apps/wrapper/web-portal/src/pages/ground-analysis/GroundInspectionListForms.jsx index 22166640..52a37585 100644 --- a/apps/wrapper/web-portal/src/pages/ground-analysis/GroundInspectionListForms.jsx +++ b/apps/wrapper/web-portal/src/pages/ground-analysis/GroundInspectionListForms.jsx @@ -13,6 +13,7 @@ import { getOnGroundAssessorData, markReviewStatus, searchOGA, + getOGAFormsCount } from "../../api"; import ADMIN_ROUTE_MAP from "../../routes/adminRouteMap"; import { ContextAPI } from "../../utils/ContextAPI"; @@ -36,11 +37,20 @@ export default function OnGroundInspectionAnalysis() { const [isFilterOpen, setIsFilterOpen] = useState(false); const { setSpinner } = useContext(ContextAPI); + const [ogaFormsCompletedCount, setOgaFormsCompletedCount] = useState(0); + const [ogaFormsApprovedCount, setOgaFormsApprovedCount] = useState(0); + const [ogaFormsRejectedCount, setOgaFormsRejectedCount] = useState(0); + const [ogaFormsReturnedCount, setOgaFormsReturnedCount] = useState(0); + const COLUMN_OGA_COMPLETED = [ { Header: "Form name", accessor: "display_form_name", }, + { + Header: "Course name", + accessor: "course_name", + }, { Header: "Institute", accessor: "applicant", @@ -71,6 +81,10 @@ export default function OnGroundInspectionAnalysis() { Header: "Form name", accessor: "display_form_name", }, + { + Header: "Course name", + accessor: "course_name", + }, { Header: "Institute", accessor: "applicant", @@ -101,6 +115,10 @@ export default function OnGroundInspectionAnalysis() { Header: "Form name", accessor: "display_form_name", }, + { + Header: "Course name", + accessor: "course_name", + }, { Header: "Institute", accessor: "applicant", @@ -126,6 +144,40 @@ export default function OnGroundInspectionAnalysis() { accessor: "status", }, ]; + const COLUMN_RETURNED = [ + { + Header: "Form name", + accessor: "display_form_name", + }, + { + Header: "Course name", + accessor: "course_name", + }, + { + Header: "Institute", + accessor: "applicant", + }, + { + Header: "Application type", + accessor: "application_type", + }, + { + Header: "Course type", + accessor: "course_type", + }, + { + Header: "Assessor", + accessor: "assessor", + }, + { + Header: "Returned on", + accessor: "reviewed_on", + }, + { + Header: "Status", + accessor: "status", + }, + ]; const cardArray = [ { @@ -180,6 +232,13 @@ export default function OnGroundInspectionAnalysis() { } }; + useEffect(() => { + fetchOGAFormsCount("OGA Completed"); + fetchOGAFormsCount("Approved"); + fetchOGAFormsCount("Rejected"); + fetchOGAFormsCount("Returned"); + }, [round]); + useEffect(() => { if (!isSearchOpen && !isFilterOpen) { fetchOnGroundAssessorData(); @@ -191,7 +250,56 @@ export default function OnGroundInspectionAnalysis() { round, ]); - const fetchOnGroundAssessorData = async () => { + + const fetchOGAFormsCount = async (formStatus) => { + const postData = { + formStatus: formStatus, + round: round + }; + try { + setSpinner(true); + const res = await getOGAFormsCount(postData); + switch (formStatus) { + case "OGA Completed": + res?.data?.form_submissions_aggregate.aggregate.totalCount < 10 + ? setOgaFormsCompletedCount('0'+res?.data?.form_submissions_aggregate.aggregate.totalCount) + : setOgaFormsCompletedCount(res?.data?.form_submissions_aggregate.aggregate.totalCount) + + break; + + case "Approved": + res?.data?.form_submissions_aggregate.aggregate.totalCount < 10 + ? setOgaFormsApprovedCount('0'+res?.data?.form_submissions_aggregate.aggregate.totalCount) + : setOgaFormsApprovedCount(res?.data?.form_submissions_aggregate.aggregate.totalCount) + + break; + + case "Rejected": + res?.data?.form_submissions_aggregate.aggregate.totalCount < 10 + ? setOgaFormsRejectedCount('0'+res?.data?.form_submissions_aggregate.aggregate.totalCount) + : setOgaFormsRejectedCount(res?.data?.form_submissions_aggregate.aggregate.totalCount) + + break; + case "Returned": + res?.data?.form_submissions_aggregate.aggregate.totalCount < 10 + ? setOgaFormsReturnedCount('0'+res?.data?.form_submissions_aggregate.aggregate.totalCount) + : setOgaFormsReturnedCount(res?.data?.form_submissions_aggregate.aggregate.totalCount) + + break; + + default: + break; + } + + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + } + }; + + const fetchOnGroundAssessorData + = async () => { const postData = { offsetNo: paginationInfo.offsetNo, limit: paginationInfo.limit, @@ -205,6 +313,7 @@ export default function OnGroundInspectionAnalysis() { ...prevState, totalCount: res?.data?.form_submissions_aggregate.aggregate.totalCount, })); + console.log(res?.data?.form_submissions_aggregate.aggregate.totalCount) setFormsList(res?.data?.form_submissions); } catch (error) { console.log("error - ", error); @@ -274,7 +383,8 @@ export default function OnGroundInspectionAnalysis() { formsList?.forEach((e) => { var formsData = { - display_form_name: e?.course?.course_name, + display_form_name: e?.form_name, + course_name: e?.course?.course_name, applicant: e?.institute?.name?.charAt(0).toUpperCase() + e?.institute?.name?.substring(1).toLowerCase() + @@ -381,6 +491,7 @@ export default function OnGroundInspectionAnalysis() { className="gap-3" onClick={() => handleSelectMenu("OGA Completed")} > + <span> <a href="#" className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ @@ -390,8 +501,11 @@ export default function OnGroundInspectionAnalysis() { }`} aria-current="page" > - OGA Completed + OGA Completed <span class="counter count-indicator-completed"> {ogaFormsCompletedCount}</span> </a> + + </span> + </li> <li className="gap-3" @@ -406,7 +520,7 @@ export default function OnGroundInspectionAnalysis() { }`} aria-current="page" > - Approved + Approved <span class="counter count-indicator-approved">{ogaFormsApprovedCount}</span> </a> </li> <li @@ -421,7 +535,24 @@ export default function OnGroundInspectionAnalysis() { : "" }`} > - Rejected + Rejected <span class="counter count-indicator-rejected">{ogaFormsRejectedCount}</span> + + </a> + </li> + <li + className="gap-3" + onClick={() => handleSelectMenu("Returned")} + > + <a + href="#" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ + state.menu_selected === "Returned" + ? "text-blue-600 border-b-2 border-blue-600" + : "" + }`} + > + Returned <span class="counter count-indicator-returned">{ogaFormsReturnedCount}</span> + </a> </li> </ul> @@ -493,6 +624,28 @@ export default function OnGroundInspectionAnalysis() { /> </div> )} + {state.menu_selected === "Returned" && ( + <div className="flex flex-col gap-4"> + <FilteringTable + dataList={resData.filter( + (item) => item.form_status === "Returned" + )} + navigateFunc={navigateToView} + columns={COLUMN_RETURNED} + pagination={true} + onRowSelect={() => {}} + filterApiCall={filterApiCall} + showFilter={true} + showSearch={true} + paginationInfo={paginationInfo} + setPaginationInfo={setPaginationInfo} + searchApiCall={searchApiCall} + setIsSearchOpen={setIsSearchOpen} + setIsFilterOpen={setIsFilterOpen} + selectedRound={round} + /> + </div> + )} </div> </div> </div> diff --git a/apps/wrapper/web-portal/src/pages/ground-analysis/GroundInspectionViewForm.jsx b/apps/wrapper/web-portal/src/pages/ground-analysis/GroundInspectionViewForm.jsx index 15d50559..89036a22 100644 --- a/apps/wrapper/web-portal/src/pages/ground-analysis/GroundInspectionViewForm.jsx +++ b/apps/wrapper/web-portal/src/pages/ground-analysis/GroundInspectionViewForm.jsx @@ -1,15 +1,16 @@ import React, { useContext, useEffect, useRef, useState } from "react"; -import { useParams, Link } from "react-router-dom"; +import { useParams, Link, useNavigate } from "react-router-dom"; import { AiOutlineClose, AiOutlineCheck } from "react-icons/ai"; -import { FaAngleRight } from "react-icons/fa"; - +import { FaAngleRight,FaFileDownload } from "react-icons/fa"; import { Card, Button } from "./../../components"; +import XMLParser from "react-xml-parser"; -import NocModal from "./NocModal"; import StatusLogModal from "./StatusLogModal"; import IssueNocModal from "./IssueNocModal.jsx"; import RejectNocModal from "./RejectNocModal"; import OGASidebar from "./OGASidebar"; +import CommonModal from "./../../Modal"; +import { Tooltip } from "@material-tailwind/react"; import ADMIN_ROUTE_MAP from "../../routes/adminRouteMap"; import { @@ -20,7 +21,14 @@ import { getAcceptApplicantCertificate, registerEvent, updateFormStatus, + updateFormStatusForOGA, + base64ToPdf, + sendEmailNotification } from "../../api"; +import { + getFromLocalForage, + setToLocalForage, +} from "../../forms"; import { getPrefillXML } from "./../../api/formApi"; import { ContextAPI } from "../../utils/ContextAPI"; import { getCookie, getLocalTimeInISOFormat } from "../../utils"; @@ -29,6 +37,7 @@ import { Fragment } from "react"; const ENKETO_URL = process.env.REACT_APP_ENKETO_URL; const GCP_URL = process.env.REACT_APP_GCP_AFFILIATION_LINK; + export default function ApplicationPage({ closeModal, closeRejectModal, @@ -36,6 +45,7 @@ export default function ApplicationPage({ closeCertificateModal, }) { const reportTemplateRef = useRef(null); + const [formStatus, setFormStatus] = useState(""); const [formDataFromApi, setFormDataFromApi] = useState(); const [rejectModel, setRejectModel] = useState(false); @@ -43,7 +53,6 @@ export default function ApplicationPage({ const [openModel, setOpenModel] = useState(false); const [openStatusModel, setOpenStatusModel] = useState(false); const [openIssueNocModel, setOpenIssueNocModel] = useState(false); - const [encodedFormURI, setEncodedFormURI] = useState(""); let { formName, formId, instituteName, round, date } = useParams(); let [instituteId, setInstituteId] = useState(); let [selectRound, setSelectRound] = useState(round); @@ -53,8 +62,14 @@ export default function ApplicationPage({ let [formSelected, setFormSelected] = useState(); const { setSpinner, setToast } = useContext(ContextAPI); const userDetails = getCookie("userData"); + const [formLoaded, setFormLoaded] = useState(false); + let [isDownloading, setIsDownloading] = useState(false); + const [onSubmit, setOnSubmit] = useState(false); + const [ogaRevertedCount, setOgaRevertedCount] = useState(0); + // let enketoFormSubmitButton = ""; + let isFormSubmittedForConfiirmation = false; + const navigation = useNavigate(); - const user_details = userDetails?.userRepresentation; const userId = "427d473d-d8ea-4bb3-b317-f230f1c9b2f7"; const formSpec = { @@ -76,8 +91,11 @@ export default function ApplicationPage({ }, }, }; + const [encodedFormURI, setEncodedFormURI] = useState(JSON.stringify(formSpec.formId)); + const startingForm = formSpec.start; const setIframeFormURI = async (formDataObj) => { + console.log("formDataObj------",formDataObj) const form_path = `${GCP_URL}${formDataObj?.form_name}.xml`; let formURI = await getPrefillXML( `${form_path}`, @@ -85,6 +103,10 @@ export default function ApplicationPage({ formDataObj?.form_data, formDataObj?.imageUrls ); + + + // ogaRevertedCount = formDataFromApi?.oga_reverted_count; + console.log("oga_reverted_count******************",ogaRevertedCount) setEncodedFormURI(formURI); }; @@ -95,16 +117,76 @@ export default function ApplicationPage({ const formData = res.data.form_submissions[0]; setFormDataFromApi(res.data.form_submissions[0]); const statusOfForm = formData?.form_status; + // ogaRevertedCount = formData?.oga_reverted_count; + setOgaRevertedCount(formData?.oga_reverted_count) + console.log("FormDataFromApi------",res.data.form_submissions[0]) setFormStatus(statusOfForm); setInstituteId(formData?.institute?.id); setIframeFormURI(formData); } catch (error) { console.log(error); } finally { - // setSpinner(false); + setSpinner(false); } }; + + + const handleFormReturnSubmit = async () => { + isFormSubmittedForConfiirmation = false; + setOnSubmit(false); + try { + //console.log(formDataFromApi) + // ogaRevertedCount = formDataFromApi.oga_reverted_count; + await updateFormStatusForOGA({ + form_id: formSelected.form_id * 1, + form_status: "Returned", + date: new Date().toISOString().substring(0, 10), + oga_reverted_count: ogaRevertedCount + 1 + }); + + //email notify + + if (formDataFromApi?.institute?.email) { + const emailData = { + recipientEmail: [`${formDataFromApi?.institute?.email}`], + emailSubject: `Application Returned!`, + emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${formDataFromApi?.institute?.name},</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We hope this email finds you well. We are writing to kindly request the resubmission of your application for the affiliation process. We apologize for any inconvenience caused, but it appears that there was an issue with the initial submission, and we did not receive the full information for proceeding to next steps.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We kindly request that you resubmit your application using the following steps: + <p>1. Please find your Returned application in the application inbox.</p> + <p>2. You can open the Returned application to view the returning officer's comments. The comments will help you to understand the gaps and bridge them.</p> + <p>3. You can resubmit the Returned application after you are done with making the required changes. Please ensure to keep saving the application as draft while you progress.</p></p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We understand that this may require some additional effort on your part, and we sincerely appreciate your cooperation. Rest assured that we will treat your resubmitted application with the utmost attention and consideration during our evaluation process.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>If you have any questions or need further clarification regarding the resubmission process, please do not hesitate to reach out to our support executives at <Contact Details>. We are here to assist you and provide any necessary guidance.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'></p>Please note that the deadline for resubmitting your application is <deadline date>. Applications received after this date may not be considered for the current affiliation process.<p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'></p>We look forward to receiving your updated application.<p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Thank you for your time and continued interest in getting affiliated from our organization.</p></td></tr></table></body></html>`, + }; + + // await sendEmailNotification(emailData); + + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "The form has been returned to applicant!", + toastType: "success", + })); + + } + //enketoFormSubmitButton.style.display = "none"; + //iframeContent.getElementById("submit-form").style.display = "none"; + + navigation(ADMIN_ROUTE_MAP.adminModule.onGroundInspection.home); + + } catch (error) { + console.log(error) + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Failed to return form to applicant!", + toastType: "error", + })); + } finally { + setSpinner(false); + } + + + } + const handleRejectOGA = async () => { const postData = { form_id: formSelected.form_id, @@ -129,7 +211,7 @@ export default function ApplicationPage({ entity_id: formSelected.form_id.toString(), entity_type: "form", event_name: "Rejected", - remarks: `${user_details?.firstName} ${user_details?.lastName} has rejected the form!`, + remarks: `${userDetails?.firstName} ${userDetails?.lastName} has rejected the form!`, }); updateFormStatus({ @@ -196,7 +278,7 @@ export default function ApplicationPage({ entity_id: formSelected.form_id.toString(), entity_type: "form", event_name: "R2 form approved", - remarks: `${user_details?.firstName} ${user_details?.lastName} has approved the form!`, + remarks: `${userDetails?.firstName} ${userDetails?.lastName} has approved the form!`, }); updateFormStatus({ @@ -231,6 +313,58 @@ export default function ApplicationPage({ } }; + const afterFormSubmit = async (e) => { + const data = typeof e.data === "string" ? JSON.parse(e.data) : e.data; + try { + if (data?.state === "ON_FORM_SUCCESS_COMPLETED") { + isFormSubmittedForConfiirmation = true; + setOnSubmit(true); + } + } catch (e) { + console.log("error = ", e); + } + }; + + const handleFormEvents = async (startingForm, afterFormSubmit, e) => { + if(typeof e.data === 'string' && e.data.includes('formLoad')) { + setFormLoaded(true); + return; + } + if ( + ENKETO_URL === e.origin + "/enketo" && + typeof e?.data === "string" && + JSON.parse(e?.data)?.state !== "ON_FORM_SUCCESS_COMPLETED" && + !isFormSubmittedForConfiirmation + ) { + var formData = new XMLParser().parseFromString( + JSON.parse(e.data).formData + ); + if (formData) { + let images = JSON.parse(e.data).fileURLs; + let prevData = await getFromLocalForage( + `${userId}_${startingForm}_${new Date().toISOString().split("T")[0]}` + ); + + await setToLocalForage( + `${userId}_${startingForm}_${new Date().toISOString().split("T")[0]}`, + { + formData: JSON.parse(e.data).formData, + // imageUrls: { ...prevData?.imageUrls, ...images }, + } + ); + } + } + afterFormSubmit(e); + } + + const handleEventTrigger = async (e) => { + handleFormEvents(startingForm, afterFormSubmit, e); + }; + + const bindEventListener = () => { + window.addEventListener("message", handleEventTrigger); + }; + const checkIframeLoaded = () => { if (!window.location.host.includes("localhost")) { const iframeElem = document.getElementById("enketo_OGA_preview"); @@ -242,18 +376,71 @@ export default function ApplicationPage({ if (!section) return; for (var i = 0; i < section?.length; i++) { var inputElements = section[i].querySelectorAll("input"); + var buttonElements = section[i].querySelectorAll("button"); + buttonElements.forEach((button) => { + button.disabled = true; + }) inputElements.forEach((input) => { input.disabled = true; + // enable admin remark fields + if(input?.name.toLowerCase().includes('admin')) { + input.disabled = false; + } }); } - iframeContent.getElementById("submit-form").style.display = "none"; + //iframeContent.getElementById("submit-form").style.display = "none"; + const submitFormbuttonElement = iframeContent.getElementById('submit-form'); + //setSubmitButton(submitFormbuttonElement) + //enketoFormSubmitButton = submitFormbuttonElement; + const spanElement = submitFormbuttonElement?.children[1]; + spanElement.textContent = 'Return to applicant'; + + if(ogaRevertedCount > 2 || formStatus.toLowerCase() === "resubmitted"){ + submitFormbuttonElement.style.display = "none"; + } iframeContent.getElementById("save-draft").style.display = "none"; } setSpinner(false); }; + // const checkIframeLoaded = () => { + // if (!window.location.host.includes("localhost")) { + // const iframeElem = document.getElementById("enketo_OGA_preview"); + // var iframeContent = + // iframeElem?.contentDocument || iframeElem?.contentWindow.document; + // if (!iframeContent) return; + + // var section = iframeContent?.getElementsByClassName("or-group"); + // if (!section) return; + // for (var i = 0; i < section?.length; i++) { + // var inputElements = section[i].querySelectorAll("input"); + // var buttonElements = section[i].querySelectorAll("button"); + // buttonElements.forEach((button) => { + // button.disabled = true; + // }) + // inputElements.forEach((input) => { + // input.disabled = true; + // }); + // } + + // //iframeContent.getElementById("submit-form").style.display = "none"; + // const submitFormbuttonElement = iframeContent.getElementById('submit-form'); + // //setSubmitButton(submitFormbuttonElement) + // //enketoFormSubmitButton = submitFormbuttonElement; + // const spanElement = submitFormbuttonElement?.children[1]; + // spanElement.textContent = 'Return to applicant'; + + // if(ogaRevertedCount > 2 || formStatus.toLowerCase() === "returned"){ + // submitFormbuttonElement.style.display = "none"; + // } + // iframeContent.getElementById("save-draft").style.display = "none"; + // } + + // setSpinner(false); + // }; + const getOGAFormsList = async () => { const postData = { applicant_form_id: formId, submitted_on: date }; const res = await fetchOGAFormsList(postData); @@ -271,10 +458,12 @@ export default function ApplicationPage({ useEffect(() => { getOGAFormsList(); setSpinner(true); - // fetchFormData(); - setTimeout(() => { - checkIframeLoaded(); - }, 2000); + bindEventListener(); + + // To clean all variables + return () => { + window.removeEventListener("message", handleEventTrigger); + }; }, []); useEffect(() => { @@ -283,11 +472,34 @@ export default function ApplicationPage({ } else { fetchFormData(); } + }, [formSelected]); - setTimeout(() => { + useEffect(() => { + if(formLoaded === true) { checkIframeLoaded(); - }, 2000); - }, [formSelected]); + } + }, [formLoaded]); + + const handleFormDownload = async () => { + try { + setIsDownloading(true); + const formUrl = `${ENKETO_URL}/preview?formSpec=${encodeURI( + JSON.stringify(formSpec) + )}&xform=${encodedFormURI}&userId=${userId}`; + const res = await base64ToPdf(formUrl); + + const linkSource = `data:application/pdf;base64,${res.data}`; + const downloadLink = document.createElement("a"); + const fileName = "enketo_form.pdf"; + downloadLink.href = linkSource; + downloadLink.download = fileName; + downloadLink.target = window.safari ? "" : "_blank"; + downloadLink.click(); + setIsDownloading(false); + } catch (error) { + console.log(error); + } + }; return ( <> @@ -374,9 +586,13 @@ export default function ApplicationPage({ /> </div> <div className="flex w-full flex-col gap-4"> + {/* {console.log("ogaRevertedCount_____",ogaRevertedCount)} */} <Card moreClass="flex flex-col gap-5 shadow-md"> {formSelected && !formSelected?.noc_recommendation && ( <div className="flex grow gap-4 justify-end items-center"> + {(ogaRevertedCount > 2) && (<Tooltip arrow content="This form has been resubmitted 3 times. No more reverts possible."> + ⓘ + </Tooltip>)} <button onClick={() => handleVerifyOGA(true)} className="border border-gray-500 text-green-600 w-[140px] h-[40px] font-medium rounded-[4px]" @@ -391,9 +607,23 @@ export default function ApplicationPage({ </button> </div> )} + {/* add download logic here */} + <div className="flex flex-grow gap-3 justify-end"> + <button + className={`bg-primary-900 py-3 font-medium rounded-[4px] px-6 text-white flex flex-row items-center gap-3 ${ + isDownloading ? "cursor-not-allowed" : "" + } `} + onClick={handleFormDownload} + disabled={isDownloading} + > + <FaFileDownload /> + <span>{isDownloading ? "Downloading..." : "Download"}</span> + </button> + </div> <iframe id="enketo_OGA_preview" title="form" + onLoad={checkIframeLoaded} src={`${ENKETO_URL}/preview?formSpec=${encodeURI( JSON.stringify(formSpec) )}&xform=${encodedFormURI}&userId=${userId}`} @@ -430,6 +660,31 @@ export default function ApplicationPage({ instituteId={instituteId} /> )} + {onSubmit && ( + <CommonModal> + <p className="text-secondary text-2xl text-semibold font-medium text-center"> + Are you sure, do you want to <span className="text-red-500">return</span> this application with remarks to the applicant? + </p> + + <div className="flex flex-row justify-center w-full py-4 gap-5"> + <div + className="border border-primary bg-primary py-3 px-8 rounded-[4px] cursor-pointer items-center" + onClick={() => { + isFormSubmittedForConfiirmation = false; + setOnSubmit(false); + }} + > + No + </div> + <div + className="bg-primary-900 py-3 rounded-[4px] px-8 text-white items-center gap-3 border border-primary py-3 px-7 cursor-pointer" + onClick={() => handleFormReturnSubmit()} + > + Yes! Return + </div> + </div> + </CommonModal> + )} </> ); } diff --git a/apps/wrapper/web-portal/src/pages/ground-analysis/IssueNocModal.jsx b/apps/wrapper/web-portal/src/pages/ground-analysis/IssueNocModal.jsx index 6df0d80d..f528bafa 100644 --- a/apps/wrapper/web-portal/src/pages/ground-analysis/IssueNocModal.jsx +++ b/apps/wrapper/web-portal/src/pages/ground-analysis/IssueNocModal.jsx @@ -35,7 +35,7 @@ function IssueNocModal({ let nocorCertificateFileName = ""; const { setSpinner, setToast } = useContext(ContextAPI); const userDetails = getCookie("userData"); - const user_details = userDetails?.userRepresentation; + //const user_details = userDetails?.userRepresentation; const hiddenFileInput = React.useRef(null); let selectedRound = ""; if (selectRound === "1") { @@ -127,7 +127,7 @@ function IssueNocModal({ entity_id: formId.toString(), entity_type: "form", event_name: "Approved", - remarks: `${user_details?.firstName} ${user_details?.lastName} has approved the form has approved the form with the following remarks ${comment}.`, + remarks: `${userDetails?.firstName} ${userDetails?.lastName} has approved the form has approved the form with the following remarks ${comment}.`, }); updateFormStatus({ @@ -194,7 +194,7 @@ function IssueNocModal({ emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${applicantRes?.data?.institutes[0]?.name},</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We hope this email finds you well. After careful consideration and evaluation, we are delighted to inform you that UTTAR PRADESH SCRUTINTY COMMITTE has granted NOC for affiliation to ${applicantRes?.data?.institutes[0]?.name}.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Forms for round 2 have been enabled for you to fill and submit. Please submit the round 2 application within one year from the issue of this NOC.</p><p style='color: #555555; font-weight: bold; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Note: To download NOC open the form which you have submitted and click on the DOWNLOAD NOC/CERTIFICATE</p></td></tr></table></body></html>`, }; - sendEmailNotification(emailData); + // sendEmailNotification(emailData); } pathName = ""; @@ -226,7 +226,7 @@ function IssueNocModal({ entity_id: formId, entity_type: "form", event_name: "R2 form approved", - remarks: `${user_details?.firstName} ${user_details?.lastName} has approved the form with the following remarks ${comment}.`, + remarks: `${userDetails?.firstName} ${userDetails?.lastName} has approved the form with the following remarks ${comment}.`, }); updateFormStatus({ @@ -296,7 +296,7 @@ function IssueNocModal({ emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${applicantRes?.data?.institutes[0]?.name},</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We hope this email finds you well. After careful consideration and evaluation, we are delighted to inform you that UPSMF has granted affiliation to ${selectInstituteName}. We believe that this partnership will bring significant benefits to both our institutions and contribute to the advancement of healthcare in our state.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Congratulations on becoming an affiliated institute with UPSMF.</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>Note: To download certificate open the form which you have submitted and click on the DOWNLOAD NOC/CERTIFICATE</p></td></tr></table></body></html>`, }; - sendEmailNotification(emailData); + // sendEmailNotification(emailData); } @@ -344,6 +344,7 @@ function IssueNocModal({ {"Only pdf files accepted!(max size 5MB)"} </div> )} + <div className="mt-4 flex justify-end ml-4">{fileName}</div> <textarea onChange={handleChangeComments} placeholder="Remarks" diff --git a/apps/wrapper/web-portal/src/pages/ground-analysis/OGASidebar.jsx b/apps/wrapper/web-portal/src/pages/ground-analysis/OGASidebar.jsx index 88063300..71798bc6 100644 --- a/apps/wrapper/web-portal/src/pages/ground-analysis/OGASidebar.jsx +++ b/apps/wrapper/web-portal/src/pages/ground-analysis/OGASidebar.jsx @@ -3,6 +3,7 @@ import { AiFillCheckCircle, AiFillCloseCircle, AiOutlineCheck, + AiOutlineRollback } from "react-icons/ai"; export default function OGASidebar(props) { @@ -46,7 +47,13 @@ export default function OGASidebar(props) { {forms?.course?.course_name || "NA"} </div> <div className="flex items-center"> - {forms?.noc_recommendation === null && <AiOutlineCheck />} + {forms?.noc_recommendation === null && + forms?.form_status?.toLowerCase() === "returned" && ( + <AiOutlineRollback className="text-[20px] text-orange-500" /> + )} + {forms?.noc_recommendation === null && + forms?.form_status?.toLowerCase() != "returned" && ( + <AiOutlineCheck />)} {forms?.noc_recommendation?.toLowerCase() === "recommended" && ( <AiFillCheckCircle className="text-[20px] text-green-500" /> )} diff --git a/apps/wrapper/web-portal/src/pages/ground-analysis/RejectNocModal.jsx b/apps/wrapper/web-portal/src/pages/ground-analysis/RejectNocModal.jsx index 17aef336..2d78a572 100644 --- a/apps/wrapper/web-portal/src/pages/ground-analysis/RejectNocModal.jsx +++ b/apps/wrapper/web-portal/src/pages/ground-analysis/RejectNocModal.jsx @@ -25,7 +25,7 @@ function RejectNocModal({ const userDetails = getCookie("userData"); const navigate = useNavigate(); - const user_details = userDetails?.userRepresentation; + //const user_details = userDetails?.userRepresentation; const handleChange = (e) => { setComment(e.target.value); @@ -57,7 +57,7 @@ function RejectNocModal({ entity_id: formId.toString(), entity_type: "form", event_name: "Rejected", - remarks: `${user_details?.firstName} ${user_details?.lastName} has rejected the form with the following remarks ${rejectedRemarks}.`, + remarks: `${userDetails?.firstName} ${userDetails?.lastName} has rejected the form with the following remarks ${rejectedRemarks}.`, // remarks: rejectedRemarks }); @@ -139,7 +139,7 @@ function RejectNocModal({ emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${applicantRes?.data?.institutes[0]?.name},</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'>We hope this email finds you well. We are writing to kindly request the resubmission of your application for the affiliation process. We apologize for any inconvenience caused, but it appears that there was an issue with the initial submission. Following is the reason for rejection ${rejectedRemarks}</p></td></tr></table></body></html>`, }; - sendEmailNotification(emailData); + // sendEmailNotification(emailData); } } catch (error) { console.log(error); diff --git a/apps/wrapper/web-portal/src/pages/ground-analysis/StatusLogModal.jsx b/apps/wrapper/web-portal/src/pages/ground-analysis/StatusLogModal.jsx index 476db1aa..3d2832a4 100644 --- a/apps/wrapper/web-portal/src/pages/ground-analysis/StatusLogModal.jsx +++ b/apps/wrapper/web-portal/src/pages/ground-analysis/StatusLogModal.jsx @@ -1,12 +1,15 @@ import React, { useContext, useEffect, useState } from "react"; -import { getStatus } from "../../api"; +import { getStatus, + exportToExcel } from "../../api"; import { readableDate } from "../../utils/common"; import { Button } from "../../components"; import { ContextAPI } from "../../utils/ContextAPI"; +import { useParams} from "react-router-dom"; function StatusLogModal({ closeStatusModal, formId }) { const [formStatus, setFormStatus] = useState([]); const { setSpinner } = useContext(ContextAPI); + let { formName } = useParams(); useEffect(() => { async function fetchData() { const postData = { id: formId }; @@ -24,6 +27,32 @@ function StatusLogModal({ closeStatusModal, formId }) { fetchData(); }, []); + const downloadStatus = () => { + const ENKETO_URL = formName; + const statusLogs = { + sheetName: 'Status logs', + downloadObject: [], + headers: ['Event Name', 'Created Date', 'Remarks'], + } + + if(formStatus.length > 0) { + formStatus.forEach((element) => { + const status = { + event_name: element.event_name, + created_date: readableDate(element.created_date), + remarks: element.remarks, + } + statusLogs.downloadObject.push(status) + }) + } + + const downloadObjects = { + fileName: `status_log_${ENKETO_URL}.xlsx`, + objectsList: [statusLogs] + } + exportToExcel(downloadObjects); + } + return ( <> <div className="flex flex-col justify-center items-center fixed inset-0 bg-opacity-25 backdrop-blur-sm z-[100]"> @@ -52,6 +81,13 @@ function StatusLogModal({ closeStatusModal, formId }) { )} </div> <div className="footer flex flex-row justify-end"> + <Button + onClick={() => { + downloadStatus(); + }} + moreClass="border mr-2 boevent_namerder-blue-500 bg-white text-blue-500 w-[140px]" + text="Download" + ></Button> <Button onClick={() => { closeStatusModal(false); diff --git a/apps/wrapper/web-portal/src/pages/manage-forms/CreateForm.jsx b/apps/wrapper/web-portal/src/pages/manage-forms/CreateForm.jsx index fc801826..e962148a 100644 --- a/apps/wrapper/web-portal/src/pages/manage-forms/CreateForm.jsx +++ b/apps/wrapper/web-portal/src/pages/manage-forms/CreateForm.jsx @@ -1,16 +1,27 @@ -import React, { useContext, useEffect, useState } from "react"; +import React, { useContext, useEffect, useState ,useRef} from "react"; import { Link, useNavigate, useParams } from "react-router-dom"; import Button from "../../components/Button"; +import Calendar from "react-calendar"; +import "react-calendar/dist/Calendar.css"; +import "./calendar.css"; import { FaAngleRight } from "react-icons/fa"; import UploadForm from "./UploadForm"; -import { convertODKtoXML, createForm, updateForms, viewForm } from "../../api"; +import { + convertODKtoXML, + createForm, + updateForms, + viewForm, + findFormsWithSameName, + getCoursesByTypeAndLevel, +} from "../../api"; import { Label } from "../../components"; import ADMIN_ROUTE_MAP from "../../routes/adminRouteMap"; import { ContextAPI } from "../../utils/ContextAPI"; import { setCookie, getCookie, removeCookie } from "../../utils/common"; +import { formatDate, readableDate } from "../../utils/common"; const CreateForm = () => { const [formStatus, setFormStatus] = useState(""); @@ -19,13 +30,31 @@ const CreateForm = () => { const [formStage, setFormStage] = useState(1); const [loading, setLoading] = useState(false); const [xmlData, setXmlData] = useState(null); + const [courseMapping, setCourseMapping] = useState(null); + let requestData = { courseType: '', courseLevel: '' }; const [formData, setFormData] = useState({ title: "", + assignee :"", + course_type :"" , + course_mapping :"", + labels :"", + course_level :"", + round_no:"", + application_type :"", + form_desc :"" , + last_submission_date :"" }); + const [sameFileNameerror, setSameFileNameerror] = useState(false); const { setSpinner, setToast } = useContext(ContextAPI); let assigneePrefix = ""; assigneePrefix = formData?.assignee; + const [showCalendar, setShowCalendar] = useState(false); + const [buttonText, setButtonText] = useState("Last Date For Submission"); + + const [lastDateToApply, setLastDateToApply] = useState(null); + const calendarRef = useRef(null); + const handleChange = (e) => { setFormData((prevState) => ({ ...prevState, @@ -33,11 +62,122 @@ const CreateForm = () => { })); }; + + const handleCalendarOnChangeDate = (date) => { + setButtonText(formatDate(date)); + setShowCalendar(false); + setLastDateToApply(date); + setFormData((prevState) => ({ + ...prevState, + last_submission_date: formatDate(date), + })); + }; + + const handleCourseTypeChange = (e) => { + formData.course_mapping=""; + setFormData((prevState) => ({ + ...prevState, + [e.target.name]: e.target.value, + })); + requestData.courseType = e.target.value; + requestData.courseLevel = formData.course_level; + if ((requestData.courseType !== undefined && requestData.courseLevel !== undefined) && (requestData.courseLevel !== "" && requestData.courseType !== "")) { + getCourses(requestData); + } + } + + const handleCourseLevelChange = (e) => { + formData.course_mapping=""; + setFormData((prevState) => ({ + ...prevState, + [e.target.name]: e.target.value, + })); + requestData.courseType = formData.course_type; + requestData.courseLevel = e.target.value; + if ((requestData.courseType !== undefined && requestData.courseLevel !== undefined) && (requestData.courseLevel !== "" && requestData.courseType !== "")) { + getCourses(requestData); + } + } + + const getCourses = async (postData) => { + try { + const response = await getCoursesByTypeAndLevel(postData); + formData.course_mapping=""; + if(response?.data){ + setCourseMapping(response?.data?.course_mapping); + } + + } catch (error) { + console.log(error) + } + + }; + const handleSubmit = (e) => { e.preventDefault(); - setFormStage(2); + if(!formId){ + findForms(); + } else { + setFormStage(2); + // isFieldsValid(); + } + + }; + + const isFieldsValid = () => { + //console.log("----------") + if ( + formData.title === "" || + formData.assignee === "" || + formData.course_type === "" || + formData.course_mapping === "" || + formData.labels === "" || + formData.course_level === "" || + formData.round_no === "" || + formData.application_type === "" || + formData.form_desc === "" || + formData.last_submission_date === "" + ) { + return true; + } else return false; }; + const findForms = async () => { + try { + setSpinner(true); + const reqBody = { + "param": { + "title": { + "_eq": formData.title.trim() + }, + "assignee": { + "_eq": formData.assignee.toLowerCase().trim() + } + } + } + const res = await findFormsWithSameName(reqBody); + if (res.data.forms_aggregate.aggregate.totalCount != 0) { + setFormData((prevState) => ({ + ...prevState, + title: "" + })); + setSameFileNameerror(true) + } else { + setSameFileNameerror(false) + setFormStage(2); + } + } catch (error) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Something went wrong. Please try again later", + toastType: "error", + })); + } finally { + setSpinner(false); + } + } + const handleFile = (file) => { const formData = { file: file, @@ -52,7 +192,7 @@ const CreateForm = () => { const user = getCookie("regulator"); postData.append("user_id", user?.[0]?.user_id); postData.append("form_status", "Draft"); - + // postData.append("last_submission_date", formatDate(lastDateToApply)); try { setSpinner(true); setLoading(true); @@ -119,19 +259,28 @@ const CreateForm = () => { const response = await viewForm(formData); const formDetail = response.data.forms[0]; setFormStatus(formDetail?.form_status); - - setFormData({ - application_type: formDetail?.application_type, - form_desc: formDetail.form_desc, - assignee: formDetail?.assignee, - course_type: formDetail?.course_type, - course_level: formDetail?.course_level, - labels: formDetail?.labels, - round_no: formDetail?.round, - title: formDetail?.title, - path: formDetail?.path, - file_name: formDetail?.file_name, - }); + if (formDetail) { + const req = { + courseType: formDetail?.course_type, + courseLevel: formDetail?.course_level, + } + getCourses(req); + setFormData({ + application_type: formDetail?.application_type, + form_desc: formDetail.form_desc, + assignee: formDetail?.assignee, + course_type: formDetail?.course_type, + course_level: formDetail?.course_level, + course_mapping: formDetail?.course_mapping, + labels: formDetail?.labels, + round_no: formDetail?.round, + title: formDetail?.title, + path: formDetail?.path, + file_name: formDetail?.file_name, + last_submission_date: formDetail?.last_submission_date + }); + setLastDateToApply(new Date(formDetail?.last_submission_date)) + } } catch (error) { console.log("error - ", error); setToast((prevState) => ({ @@ -145,6 +294,26 @@ const CreateForm = () => { } }; + const handleOutsideDateClick = (e) => { + if (calendarRef.current && !calendarRef.current.contains(e.target)) { + setShowCalendar(false) + } + }; + + useEffect(() => { + document.addEventListener("mousedown", handleOutsideDateClick); + return () => { + document.removeEventListener("mousedown", handleOutsideDateClick); + }; + }); + + useEffect(() => { + console.log(lastDateToApply) + lastDateToApply ? setButtonText(formatDate(lastDateToApply)) + : setButtonText("Last Date For Submission") + }, [lastDateToApply]); + + useEffect(() => { if (window.location.pathname.includes("view")) { let form_id = window.location.pathname.split("/")[4]; @@ -168,8 +337,7 @@ const CreateForm = () => { <Link to={ADMIN_ROUTE_MAP.adminModule.scheduleManagement.home}> <span className="text-gray-500">Create form</span> </Link> - {/* <FaAngleRight className="text-[16px]" /> - <span className="text-gray-500 uppercase">User details</span> */} + </div> </div> </div> @@ -188,33 +356,34 @@ const CreateForm = () => { } /> <Button - moreClass={`${ - Object.values(formData).length !== 10 + moreClass={`${Object.values(formData).length !== 12 ? "text-gray-500 bg-white border border-gray-300 cursor-not-allowed" : "text-white border" - } px-6`} + } px-6`} text="Update" onClick={() => handleSaveUpdateDraft("update")} otherProps={{ - disabled: Object.values(formData).length !== 10, + disabled: Object.values(formData).length !== 12, style: { display: formStatus !== "Draft" ? "none" : "" }, }} /> + {console.log(formData)} <Button - moreClass={`${ - Object.values(formData).length !== 10 + moreClass={`${Object.values(formData).length !== 12 ? "text-gray-500 bg-white border border-gray-300 cursor-not-allowed" : "text-white border" - } px-6`} + } px-6`} text="Save as draft" onClick={() => handleSaveUpdateDraft("save")} + otherProps={{ - disabled: Object.values(formData).length !== 10, + disabled: Object.values(formData).length !== 12, + hidden: formStage <= 1, style: { display: formStatus === "Published" || - formStatus === "Unpublished" || - formStatus === "Draft" + formStatus === "Unpublished" || + formStatus === "Draft" ? "none" : "", }, @@ -225,34 +394,32 @@ const CreateForm = () => { <div className="flex flex-row gap-4 justify-center"> <div - className={`${ - formStage === 1 + className={`${formStage === 1 ? "bg-black text-white" : "bg-white text-black" - } py-3 px-10 rounded-[4px] text-[16px]`} + } py-3 px-10 rounded-[4px] text-[16px]`} > 1. Add attributes </div> <div - className={`${ - formStage === 2 + className={`${formStage === 2 ? "bg-black text-white" : "bg-white text-black" - } py-3 px-10 rounded-[4px] text-[16px]`} + } py-3 px-10 rounded-[4px] text-[16px]`} > 2. Upload ODK </div> </div> {formStage === 1 && ( - <form onSubmit={handleSubmit}> + <form> <div className="flex flex-col bg-white rounded-[4px] p-8 gap-8"> <div className="flex"> <h1 className="text-xl font-semibold">Add attributes</h1> </div> <div className="flex flex-grow"> <div className="grid grid-rows-3 grid-cols-6 gap-8"> - <div className="sm:col-span-3"> + <div className="sm:col-span-3"> <Label required text="Form title" @@ -273,8 +440,41 @@ const CreateForm = () => { } className="block w-full rounded-md border-0 p-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6" /> + {sameFileNameerror && ( + <div className="text-red-500 mt-2 text-sm"> + ODK with this name already exists + </div> + )} </div> </div> + <div + + className="sm:col-span-3" ref={calendarRef}> + <Label + required + text="Last Date for Submission" + htmlFor="last_date" + moreClass="block mb-2 text-sm font-medium text-gray-900 dark:text-gray-400" + /> + + <button type="button" + className="h-[45px] bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500 px-8" + onClick={() => setShowCalendar(true)} + disabled={ + formStatus == "Published" || + formStatus == "Unpublished" + } + > + {buttonText.includes("Last Date For Submission") ? buttonText : readableDate(buttonText)} + </button> + {showCalendar && ( + <Calendar minDate={new Date()} + value={lastDateToApply} + onChange={handleCalendarOnChangeDate} /> + )} + + </div> + <div className="sm:col-span-6"> <Label required @@ -364,7 +564,7 @@ const CreateForm = () => { value={formData.course_type} name="course_type" id="course_type" - onChange={handleChange} + onChange={handleCourseTypeChange} disabled={ formStatus == "Published" || formStatus == "Unpublished" @@ -389,7 +589,7 @@ const CreateForm = () => { value={formData.course_level} name="course_level" id="course_level" - onChange={handleChange} + onChange={handleCourseLevelChange} disabled={ formStatus == "Published" || formStatus == "Unpublished" @@ -401,8 +601,36 @@ const CreateForm = () => { <option value="Diploma">Diploma</option> </select> </div> - - <div className="sm:col-span-3 "> + {courseMapping !== null && ( + <div className="sm:col-span-3"> + <Label + required + text="Course Name" + htmlFor="course_mapping" + moreClass="block mb-2 text-sm font-medium text-gray-900 dark:text-gray-400" + /> + <select + required + value={formData.course_mapping} + name="course_mapping" + id="course_mapping" + onChange={handleChange} + disabled={ + formStatus == "Published" || + formStatus == "Unpublished" + } + className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + > + <option value="">Select Here</option> + {courseMapping.map((obj, index) => ( + <> + <option key={index} value={obj.course}>{obj.course}</option> + </> + ))} + </select> + </div> + )} + <div className="sm:col-span-3"> <Label required text="Form labels" @@ -463,20 +691,18 @@ const CreateForm = () => { </div> </div> <div className="flex justify-end"> - <button - className={`${ - Object.values(formData).length < 7 - ? "bg-gray-400 text-gray-700 cursor-not-allowed" - : "px-6 text-white bg-primary-900 border" - } border w-[140px] h-[40px] font-medium rounded-[4px] `} - style={{ backgroundColor: "" }} - type="submit" - disabled={ - Object.values(formData).length < 8 ? true : false - } + <Button + moreClass="border text-white w-[120px]" + text="Next" + /* disabled={ + Object.values(formData).length < 10 ? true : false + } */ + otherProps={{ + disabled : isFieldsValid(), + }} + onClick={handleSubmit} > - Next - </button> + </Button> </div> </div> </form> diff --git a/apps/wrapper/web-portal/src/pages/manage-forms/FormsOverview.jsx b/apps/wrapper/web-portal/src/pages/manage-forms/FormsOverview.jsx index a6ff2948..96d30f94 100644 --- a/apps/wrapper/web-portal/src/pages/manage-forms/FormsOverview.jsx +++ b/apps/wrapper/web-portal/src/pages/manage-forms/FormsOverview.jsx @@ -239,6 +239,7 @@ const FormsOverview = () => { labels: formDetail?.labels, assignee: formDetail?.assignee, user_id: formDetail?.user_id, + last_submission_date: formDetail?.last_submission_date }, ], }; diff --git a/apps/wrapper/web-portal/src/pages/manage-forms/UploadForm.jsx b/apps/wrapper/web-portal/src/pages/manage-forms/UploadForm.jsx index bafa9269..fe0ec884 100644 --- a/apps/wrapper/web-portal/src/pages/manage-forms/UploadForm.jsx +++ b/apps/wrapper/web-portal/src/pages/manage-forms/UploadForm.jsx @@ -32,7 +32,7 @@ const UploadForm = ({ console.log("e.target.files",e.target.files[0]) const fileUploaded = e?.target?.files[0]; setFileName( - fileUploaded.name.substring(0, fileUploaded.name.lastIndexOf(".")) + fileUploaded?.name?.substring(0, fileUploaded.name.lastIndexOf(".")) ); handleFile(fileUploaded); }; @@ -57,7 +57,7 @@ const UploadForm = ({ }; const user_details = getCookie("userData"); - const userId = user_details?.userRepresentation?.id; + const userId = user_details?.id; const formSpec = { skipOnSuccessMessage: true, prefill: {}, diff --git a/apps/wrapper/web-portal/src/pages/manage-forms/calendar.css b/apps/wrapper/web-portal/src/pages/manage-forms/calendar.css new file mode 100644 index 00000000..19e7b6c7 --- /dev/null +++ b/apps/wrapper/web-portal/src/pages/manage-forms/calendar.css @@ -0,0 +1,21 @@ +.react-calendar { + width: 312px; + padding: 8px; +} + +.react-calendar__tile--now { + border-radius: 50%; + padding: 8px; + background-color: #9ca3af; + color: #3b82f6; +} + +.react-calendar__tile--active { + border-radius: 50%; + color: #fff; +} + +.react-calendar__tile:disabled { + background-color: #f3f4f6; + cursor: not-allowed; +} diff --git a/apps/wrapper/web-portal/src/pages/manage-users/AdminCreateUser.jsx b/apps/wrapper/web-portal/src/pages/manage-users/AdminCreateUser.jsx index c314a628..f18827db 100644 --- a/apps/wrapper/web-portal/src/pages/manage-users/AdminCreateUser.jsx +++ b/apps/wrapper/web-portal/src/pages/manage-users/AdminCreateUser.jsx @@ -1,6 +1,6 @@ import React, { useContext, useEffect, useState } from "react"; import { Link, useNavigate, useParams } from "react-router-dom"; -import { Select, Option } from "@material-tailwind/react"; +import Select from "react-select"; import { FaAngleRight } from "react-icons/fa"; @@ -16,9 +16,13 @@ import { editUserHasura, editUserKeycloak, getSpecificUser, + sendEmailNotification, + checkIsEmailExist, + fetchAllUserRoles } from "./../../api"; import { userService } from "../../api/userService"; import { getCookie, removeCookie, setCookie } from "../../utils"; +import messages from "../../assets/json-files/messages.json"; export default function AdminCreateUser() { let { userId } = useParams(); @@ -31,6 +35,9 @@ export default function AdminCreateUser() { phonenumber: "", role: "", }); + const [selectedRoleName, setSelectedRoleName] = useState(); + + const [availableRoleNames, setAvailableRoleNames] = useState([]); const navigation = useNavigate(); const fetchUser = async () => { @@ -38,6 +45,9 @@ export default function AdminCreateUser() { setSpinner(true); const res = await getSpecificUser({ userId }); if (res.data.assessors.length) { + setSelectedRoleName({value: res.data.assessors[0]["role"], + label: res.data.assessors[0]["role"], + }) setUser({ firstname: res.data.assessors[0]["fname"] || res.data.assessors[0]["name"], @@ -48,6 +58,8 @@ export default function AdminCreateUser() { }); } if (res.data.regulator.length) { + setSelectedRoleName({value: res.data.regulator[0]["role"], + label: res.data.regulator[0]["role"],}) setUser({ firstname: res.data.regulator[0]["fname"] || @@ -55,7 +67,7 @@ export default function AdminCreateUser() { lastname: res.data.regulator[0]["lname"], email: res.data.regulator[0]["email"], phonenumber: res.data.regulator[0]["phonenumber"], - role: res.data.regulator[0]["role"], + //role: res.data.regulator[0]["role"], }); } } catch (error) { @@ -79,18 +91,25 @@ export default function AdminCreateUser() { [name]: value, })); }; + const upDateUserObj = () => { + setUser((prevState) => ({ + ...prevState, + role: selectedRoleName?.value, + })); + }; const isFieldsValid = () => { if ( user.firstname === "" || - user.lastname === "" || + // user.lastname === "" || !isEmail || user.email === "" || - user.role === "" || + user.role === "" || user.role === undefined || user.phonenumber === "" || !isPhoneNumber || user.phonenumber.length > 10 || user.phonenumber.length < 10 ) { + // setErrMsg("Please fill in valid information"); return false; } else return true; }; @@ -102,11 +121,11 @@ export default function AdminCreateUser() { } } - const handleNumbersOnly =(value, nameFlag) =>{ -const re = /^[0-9\b]+$/; -if(value === '' || re.test(value)){ - handleChange(nameFlag,value) -} + const handleNumbersOnly = (value, nameFlag) => { + const re = /^[0-9\b]+$/; + if (value === '' || re.test(value)) { + handleChange(nameFlag, value) + } } const submitUserData = async (e) => { @@ -152,7 +171,8 @@ if(value === '' || re.test(value)){ }, ], attributes: { - Role: user.role, + // Role: user.role, + Role: selectedRoleName.value }, }, }; @@ -198,10 +218,7 @@ if(value === '' || re.test(value)){ // for create user let postDataKeyCloak = {}; - let postDataHasura = { - assessors: [], - regulators: [], - }; + try { setSpinner(true); @@ -221,78 +238,172 @@ if(value === '' || re.test(value)){ }, ], attributes: { - Role: user.role, + // Role: user.role, + Role: selectedRoleName.value === "Admin" ? "Desktop-Admin" : selectedRoleName.value }, }, }; - //keycloak API call - const keycloakRes = await createBulkUsersKeyCloak(postDataKeyCloak); - - if (keycloakRes?.status !== 200) { - errorFlag = true; - } - - //Hasura API call - if (keycloakRes.data) { - if (user.role === "Assessor") { - postDataHasura["assessors"].push({ - code: `${Math.floor(1000 + Math.random() * 9000)}`, - user_id: keycloakRes.data, - email: user.email, - name: user.firstname + " " + user.lastname, - phonenumber: user.phonenumber, - fname: user.firstname, - lname: user.lastname, - role: user.role, - }); - } - if (user.role === "Desktop-Admin") { - postDataHasura["regulators"].push({ - user_id: keycloakRes.data, - email: user.email, - full_name: user.firstname + " " + user.lastname, - phonenumber: user.phonenumber, - fname: user.firstname, - lname: user.lastname, - role: user.role, - }); - } - } - const hasuraRes = await createBulkUserHasura(postDataHasura); - if (hasuraRes.status !== 200) { - errorFlag = true; - } - if (!errorFlag) { + const checkIsEmailExistRes = await checkIsEmailExist({ email: user.email }); + if (checkIsEmailExistRes?.data + && (checkIsEmailExistRes?.data?.assessors?.length + || checkIsEmailExistRes?.data?.institutes?.length + || checkIsEmailExistRes?.data?.regulator?.length)) { setToast((prevState) => ({ ...prevState, toastOpen: true, - toastMsg: "User created successfully!", - toastType: "success", + toastMsg: 'Email is Already Registered.', + toastType: "error", })); - navigation(ADMIN_ROUTE_MAP.adminModule.manageUsers.home); + } else { + + //keycloak API call + const keycloakRes = await createBulkUsersKeyCloak(postDataKeyCloak); + + if (keycloakRes?.status !== 200) { + errorFlag = true; + } else { + createHasuraUser(keycloakRes) + } } + } catch (error) { - const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage + console.log(error) + // const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage setToast((prevState) => ({ ...prevState, toastOpen: true, - toastMsg: errorMessage, + toastMsg: error.message, toastType: "error", })); } finally { setSpinner(false); } } - removeCookie("access_token"); + }; + const createHasuraUser = (async (keycloakRes) => { + let postDataHasura = { + assessors: [], + regulators: [], + }; + try { + //Hasura API call + if (keycloakRes.data) { + if (user.role === "Assessor") { + postDataHasura["assessors"].push({ + code: `${Math.floor(1000 + Math.random() * 9000)}`, + user_id: keycloakRes.data, + email: user.email, + name: user.firstname + " " + user.lastname, + phonenumber: user.phonenumber, + fname: user.firstname, + lname: user.lastname, + role: user.role, + }); + } else { + postDataHasura["regulators"].push({ + user_id: keycloakRes.data, + email: user.email, + full_name: user.firstname + " " + user.lastname, + phonenumber: user.phonenumber, + fname: user.firstname, + lname: user.lastname, + role: user.role === "Admin" ? "Desktop-Admin" : user.role, + }); + } + /* if (user.role === "Desktop-Admin" || user.role === "Desktop-Assessor") { + + } */ + } + const hasuraRes = await createBulkUserHasura(postDataHasura); + if (hasuraRes.status === 200) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "User created successfully!", + toastType: "success", + })); + sendAccountCreationNotification(user) + navigation(ADMIN_ROUTE_MAP.adminModule.manageUsers.home); + removeCookie("access_token");; + } + + + } catch (error) { + const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: errorMessage, + toastType: "error", + })); + } + + } + ) + + const sendAccountCreationNotification = async (userDetails) => { + if (userDetails.email) { + let emailData = {} + if (userDetails.role === 'Assessor') { + const emailBody = messages.ACCOUNT_CREATED_PASSWORD_BASED_LOGIN_MAIL; + emailData = { + recipientEmail: [`${userDetails.email}`], + emailSubject: `${emailBody.SUBJECT}`, + emailBody: `${emailBody.BODY.part1}${userDetails.firstname} ${userDetails.lastname}${emailBody.BODY.part2}${userDetails.email}${emailBody.BODY.part3}${userDetails.phonenumber}${emailBody.BODY.part4}` + }; + } else { + const emailBody = messages.ACCOUNT_CREATED_OTP_BASED_LOGIN_MAIL; + emailData = { + recipientEmail: [`${userDetails.email}`], + emailSubject: `${emailBody.SUBJECT}`, + emailBody: `${emailBody.BODY.part1}${userDetails.firstname} ${userDetails.lastname}${emailBody.BODY.part2}${userDetails.email}${emailBody.BODY.part3}${userDetails.phonenumber}${emailBody.BODY.part4}` + }; + } + // sendEmailNotification(emailData) + } + } + const fetchUserRoleNames = async (userDetails) => { + + const reqBody = {object:{active: {_eq: true}}, offsetNo: 0, limit: 100} + + try { + setSpinner(true); + const res = await fetchAllUserRoles(reqBody); + let arr = [] + res.data.role.forEach(elem => { + // console.log(elem.name) + arr.push({ + label: elem.name, + value: elem.name + }) + }); + setAvailableRoleNames(arr) + } catch (e) { + console.log(e) + } finally { + setSpinner(false); + } + + } + useEffect(() => { if (userId) { fetchUser(); } }, [userId]); + useEffect(() => { + fetchUserRoleNames(); + }, []); + + useEffect(() => { + console.log(selectedRoleName) + upDateUserObj(); + }, [selectedRoleName]); + return ( <> @@ -310,8 +421,7 @@ if(value === '' || re.test(value)){ {/* <Link to={ADMIN_ROUTE_MAP.adminModule.manageUsers.home}> */} <span className="text-gray-500">Create user</span> {/* </Link> */} - {/* <FaAngleRight className="text-[16px]" /> - <span className="text-gray-500 uppercase">User details</span> */} + </div> </div> </div> @@ -349,7 +459,7 @@ if(value === '' || re.test(value)){ </div> </div> <div className="sm:col-span-3"> - <Label htmlFor="lastname" text="Last name" required></Label> + <Label htmlFor="lastname" text="Last name" ></Label> <div className="mt-2"> <input type="text" @@ -361,7 +471,7 @@ if(value === '' || re.test(value)){ handleAlphaOnly(e.target.value, "lastname") } className="block w-full rounded-md border-0 p-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6" - // disabled={userId?true:false} + // disabled={userId?true:false} /> </div> </div> @@ -414,7 +524,7 @@ if(value === '' || re.test(value)){ moreClass="block mb-2 text-sm font-medium text-gray-900 dark:text-gray-400" /> - <select + {/* <select required value={user.role} disabled={userId ? true : false} @@ -424,9 +534,19 @@ if(value === '' || re.test(value)){ className="bg-white border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" > <option value="">Select role</option> - <option value="Assessor">Assessor</option> + <option value="Assessor">On Ground Assessor</option> <option value="Desktop-Admin">Admin</option> - </select> + <option value="Desktop-Assessor">Desktop Assessor</option> + </select> */} + <Select + name="allRolesList" + label="Role" + isDisabled={userId ? true : false} + value={selectedRoleName} + onChange={setSelectedRoleName} + options={availableRoleNames} + className="bg-white border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + /> </div> </div> </div> @@ -439,7 +559,6 @@ if(value === '' || re.test(value)){ moreClass="border border-gray-200 bg-white text-blue-600 w-[120px]" text="Cancel" ></Button> - <Button moreClass="border text-white w-[120px]" text={!userId ? "Submit" : "Save"} diff --git a/apps/wrapper/web-portal/src/pages/manage-users/BulkUploadUsersModal.jsx b/apps/wrapper/web-portal/src/pages/manage-users/BulkUploadUsersModal.jsx index b402ae71..ea0598e7 100644 --- a/apps/wrapper/web-portal/src/pages/manage-users/BulkUploadUsersModal.jsx +++ b/apps/wrapper/web-portal/src/pages/manage-users/BulkUploadUsersModal.jsx @@ -5,12 +5,10 @@ import { Switch } from "@material-tailwind/react"; import { Link } from "react-router-dom"; import { Button } from "../../components"; import { - addUsers, - createBulkUserHasura, - createBulkUsersKeyCloak, + createBulkUsers, } from "../../api"; import { userService } from "../../api/userService"; -import { removeCookie, setCookie } from "../../utils/common"; +import { getCookie } from "../../utils/common"; import { ContextAPI } from "../../utils/ContextAPI"; function BulkUploadUsersModal({ closeBulkUploadUsersModal, setUsersCreated }) { @@ -93,32 +91,39 @@ function BulkUploadUsersModal({ closeBulkUploadUsersModal, setUsersCreated }) { }, { Header: "First Name", - accessor: "fname", + accessor: "firstName", Cell: (props) => { return <div>{isDataValid(props.value)}</div>; }, }, { Header: "Last Name", - accessor: "lname", + accessor: "lastName", Cell: (props) => { return <div>{isDataValid(props.value)}</div>; }, }, { Header: "Mobile Number", - accessor: "mobile_number", + accessor: "phoneNumber", Cell: (props) => { return <div>{ismobileNumberValid(props.value)}</div>; }, }, { Header: "Role", - accessor: "role", + accessor: "roleName", Cell: (props) => { return <div>{isDataValid(props.value)}</div>; }, }, + { + Header: "code", + accessor: "code", + Cell: (props) => { + return <div>{(props.value)}</div>; + }, + }, ]; const handleClick = (e) => { @@ -127,6 +132,8 @@ function BulkUploadUsersModal({ closeBulkUploadUsersModal, setUsersCreated }) { const handleChange = (e) => { const fileUploaded = e.target.files[0]; + console.log(fileUploaded) + setFile(fileUploaded.name.substring(0, fileUploaded.name.lastIndexOf("."))); handleFile(fileUploaded); }; @@ -162,20 +169,24 @@ function BulkUploadUsersModal({ closeBulkUploadUsersModal, setUsersCreated }) { object[header.trim()] = values[index]?.trim()?.replace("\r", ""); return object; }, {}); - obj["full_name"] = obj?.fname + " " + obj?.lname; + obj["full_name"] = obj?.firstName + " " + obj?.lastName; if ( !emailExp.test(obj?.email?.toString()) || - !mobNumberExp.test(obj?.mobile_number?.toString()) || - obj?.fname == "" || - obj?.lname == "" || + !mobNumberExp.test(obj?.phoneNumber?.toString()) || + obj?.firstName == "" || + obj?.lastName == "" || obj?.email == "" || - obj?.mobile_number == "" || - obj?.role == "" + obj?.phoneNumber == "" || + obj?.roleName == "" ) { obj["isRowInvalid"] = true; invalidUserData.push(obj); } - + if( obj?.roleName === "Assessor" && isNaN(parseInt(obj?.code)) ) + { + obj["isRowInvalid"] = true; + invalidUserData.push(obj); + } return obj; }); @@ -190,97 +201,45 @@ function BulkUploadUsersModal({ closeBulkUploadUsersModal, setUsersCreated }) { }; const createUsers = async () => { - let errorFlag = false; - let postDataKeyCloak = {}; - let postDataHasura = { - assessors: [], - regulators: [], - }; - - console.log("Keycloak - ", postDataKeyCloak); try { setSpinner(true); - let accessTokenObj = { - grant_type: "client_credentials", - client_id: "admin-api", - client_secret: "edd0e83d-56b9-4c01-8bf8-bad1870a084a", - }; - setCookie("access_token", process.env.REACT_APP_AUTH_TOKEN); - - //keycloak API call - selectedRows.map(async (item) => { - postDataKeyCloak = { - request: { - firstName: item.values.fname, - lastName: item.values.lname, - email: item.values.email, - username: item.values.email, - enabled: true, - emailVerified: false, - credentials: [ - { - type: "password", - value: `${item.values.mobile_number}`, - temporary: "false", - }, - ], - attributes: { - Role: item.values.role, - }, - }, - }; - - const keycloakRes = await createBulkUsersKeyCloak(postDataKeyCloak); - console.log("keycloak response - ", keycloakRes); - if (keycloakRes?.data) { - if (item.values.role === "Assessor") { - postDataHasura["assessors"].push({ - code: `${Math.floor(1000 + Math.random() * 9000)}`, - user_id: keycloakRes.data, - email: item.values.email, - name: item.values.full_name, - phonenumber: item.values.mobile_number, - fname: item.values.fname, - lname: item.values.lname, - role: item.values.role, - }); - } - if (item.values.role === "Desktop-Admin") { - postDataHasura["regulators"].push({ - user_id: keycloakRes.data, - email: item.values.email, - full_name: item.values.full_name, - phonenumber: item.values.mobile_number, - fname: item.values.fname, - lname: item.values.lname, - role: item.values.role, - }); + const updatedReqBody = [] + //const emailID = getCookie("userData")?.email; + tableUserList.forEach((user) => { + updatedReqBody.push( + { + username: user.email, + password: user.phoneNumber, + firstName: user.firstName, + lastName: user.lastName, + email: user.email, + roleName: user.roleName, + phoneNumber: user.phoneNumber, + code: user.code } - } - }); - setTimeout(async () => { - console.log(postDataHasura); - //Hasura API call - const hasuraRes = await createBulkUserHasura(postDataHasura); - setUsersCreated(true); - if (hasuraRes.status !== 200) { - errorFlag = true; - } - }, 3000); - - if (!errorFlag) { - setToast((prevState) => ({ - ...prevState, - toastOpen: true, - toastMsg: "User(s) Created Successfully!!", - toastType: "success", - })); - closeBulkUploadUsersModal(false); + ) + }) + const postDataKeyCloak = { + userCreationList: updatedReqBody, + email: getCookie("userData")?.email + } + const keycloakRes = await createBulkUsers(postDataKeyCloak); + //keycloak API call + if (keycloakRes?.data) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "User(s) creation request aknowledged. You would be intimidated via email", + toastType: "success", + })); + closeBulkUploadUsersModal(false); } - removeCookie("access_token"); + + } catch (error) { - const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage + console.log(error) + const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage || "Something went wrong. Please try again later." setToast((prevState) => ({ ...prevState, toastOpen: true, diff --git a/apps/wrapper/web-portal/src/pages/manage-users/ManageUsersList.jsx b/apps/wrapper/web-portal/src/pages/manage-users/ManageUsersList.jsx index a6bac83e..f875c300 100644 --- a/apps/wrapper/web-portal/src/pages/manage-users/ManageUsersList.jsx +++ b/apps/wrapper/web-portal/src/pages/manage-users/ManageUsersList.jsx @@ -15,6 +15,11 @@ import { handleInctiveUser, handleDeleteUser, getAllRegulators, + sendEmailNotification, + fetchAllDeskTopAssessors, + handleActiveRegulatorUser, + handleInctiveRegulatorUser, + fetchAllInstitutes } from "../../api"; import { userService } from "../../api/userService"; @@ -32,6 +37,7 @@ import { } from "@material-tailwind/react"; import { ContextAPI } from "../../utils/ContextAPI"; import ViewScheduleModal from "./ViewScheduleModal"; +import data from "../../assets/json-files/messages.json"; export default function ManageUsersList({ closeDeleteUsersModal, @@ -40,7 +46,7 @@ export default function ManageUsersList({ setDeleteFlags, }) { const navigation = useNavigate(); - var resUserData = []; + let resUserData = []; const [deleteUsersModel, setDeleteUsersModel] = useState(false); const [deleteBulkUsersModel, setDeleteBulkUsersModel] = useState(false); @@ -133,6 +139,10 @@ export default function ManageUsersList({ Header: "Role", accessor: "role", }, + { + Header: "Account Status", + accessor: "status", + }, { Header: "", accessor: "more_actions", @@ -156,76 +166,102 @@ export default function ManageUsersList({ const handleUsersetInvalid = async (user) => { const userId = user?.user_id; const formData = new FormData(); - formData.append("assessorId", userId); + if (state.menu_selected === 'Assessor') { + formData.append("assessorId", userId); + } else { + formData.append("requlatorId", userId); + } let e = user; try { setSpinner(true); - const response = await handleInctiveUser(formData); - e["workingstatus"] = "Invalid"; - resUserData.forEach((item) => { - if (item.id === userId) { - item.status = "Inactive"; - item.more_actions = ( - <div className="flex flex-row text-2xl font-semibold"> - <Menu placement="bottom-end"> - <MenuHandler> - <button className="leading-3 relative top-[-8px]">...</button> - </MenuHandler> - <MenuList className="p-2"> - <MenuItem - onClick={() => - navigation( - `${ADMIN_ROUTE_MAP.adminModule.manageUsers.createUser}/${e.user_id}` - ) - } - > - <div className="flex flex-row gap-4 mt-4"> - <div> - <MdEdit /> - </div> - <div className="text-semibold m-"> - <span>Edit</span> - </div> - </div>{" "} - </MenuItem> - <MenuItem - onClick={() => - e?.workingstatus === "Invalid" - ? handleUserSetValid(e) - : handleUsersetInvalid(e) - } - > - <div className="flex flex-row gap-4"> - <div> - <MdSwapHoriz /> - </div> - <div className="text-semibold m-"> - <span> - {e?.workingstatus === "Invalid" - ? "Activate" - : "Deactivate"} - </span> - </div> - </div> - </MenuItem> - <MenuItem onClick={() => handleUserDelete(e)}> - <div className="flex flex-row gap-4"> - <div> - <MdDelete /> - </div> - <div className="text-semibold m-"> - <span>Delete</span> + + const reqBody = { + "request": { + "userName": userId + } + } + + const res = await userService.deActivateUserKeycloak(reqBody) + if(res){ + const response = state.menu_selected === 'Assessor' ? await handleInctiveUser(formData) : await handleInctiveRegulatorUser(formData); + e["workingstatus"] = "Invalid"; + resUserData.forEach((item) => { + if (item.id === userId) { + item.status = "Inactive"; + item.more_actions = ( + <div className="flex flex-row text-2xl font-semibold"> + <Menu placement="bottom-end"> + <MenuHandler> + <button className="leading-3 relative top-[-8px]">...</button> + </MenuHandler> + <MenuList className="p-2"> + <MenuItem + onClick={() => + navigation( + `${ADMIN_ROUTE_MAP.adminModule.manageUsers.createUser}/${e.user_id}` + ) + } + > + <div className="flex flex-row gap-4 mt-4"> + <div> + <MdEdit /> + </div> + <div className="text-semibold m-"> + <span>Edit</span> + </div> + </div>{" "} + </MenuItem> + <MenuItem + onClick={() => + e?.workingstatus === "Invalid" + ? handleUserSetValid(e) + : handleUsersetInvalid(e) + } + > + <div className="flex flex-row gap-4"> + <div> + <MdSwapHoriz /> + </div> + <div className="text-semibold m-"> + <span> + {e?.workingstatus === "Invalid" + ? "Activate" + : "Deactivate"} + </span> + </div> </div> - </div>{" "} - </MenuItem> - </MenuList> - </Menu> - </div> - ); + </MenuItem> + {/* <MenuItem onClick={() => handleUserDelete(e)}> + <div className="flex flex-row gap-4"> + <div> + <MdDelete /> + </div> + <div className="text-semibold m-"> + <span>Delete</span> + </div> + </div>{" "} + </MenuItem> */} + </MenuList> + </Menu> + </div> + ); + } + }); + // console.log("data", resUserData); + setUserTableList(resUserData); + const userDetails = response?.data?.update_assessors?.returning[0] ? response?.data?.update_assessors?.returning[0] : response?.data?.update_regulator?.returning[0] + if (userDetails) { + sendActivationStatusNotification(userDetails, 'inactive'); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "User deactivated successfully", + toastType: "success", + })); } - }); - console.log("data", resUserData); - setUserTableList(resUserData); + } + + } catch (error) { const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage; setToast((prevState) => ({ @@ -247,75 +283,102 @@ export default function ManageUsersList({ const handleUserSetValid = async (user) => { const userId = user?.user_id; const formData = new FormData(); - formData.append("assessorId", userId); + if (state.menu_selected === 'Assessor') { + formData.append("assessorId", userId); + } else { + formData.append("requlatorId", userId); + } let e = user; try { setSpinner(true); - const validResponse = await handleActiveUser(formData); - e["workingstatus"] = "Valid"; - resUserData.forEach((item) => { - if (item.id === userId) { - item.status = "Active"; - item.more_actions = ( - <div className="flex flex-row text-2xl font-semibold"> - <Menu placement="bottom-end"> - <MenuHandler> - <button className="leading-3 relative top-[-8px]">...</button> - </MenuHandler> - <MenuList className="p-2"> - <MenuItem - onClick={() => - navigation( - `${ADMIN_ROUTE_MAP.adminModule.manageUsers.createUser}/${e.user_id}` - ) - } - > - <div className="flex flex-row gap-4"> - <div> - <MdEdit /> - </div> - <div className="text-semibold m-"> - <span>Edit</span> - </div> - </div>{" "} - </MenuItem> - <MenuItem - onClick={() => - e?.workingstatus === "Invalid" - ? handleUserSetValid(e) - : handleUsersetInvalid(e) - } - > - <div className="flex flex-row gap-4"> - <div> - <MdSwapHoriz /> - </div> - <div className="text-semibold m-"> - <span> - {e?.workingstatus === "Invalid" - ? "Activate" - : "Deactivate"} - </span> - </div> - </div>{" "} - </MenuItem> - <MenuItem onClick={() => handleUserDelete(e)}> - <div className="flex flex-row gap-4"> - <div> - <MdDelete /> - </div> - <div className="text-semibold m-"> - <span>Delete</span> - </div> - </div>{" "} - </MenuItem> - </MenuList> - </Menu> - </div> - ); + + const reqBody = { + "request": { + "userName": userId } - }); - setUserTableList(resUserData); + } + + const res = await userService.activateUserKeycloak(reqBody) + + if (res.status === 200) { + const validResponse = state.menu_selected === 'Assessor' ? await handleActiveUser(formData) : await handleActiveRegulatorUser(formData); + e["workingstatus"] = "Valid"; + resUserData.forEach((item) => { + if (item.id === userId) { + item.status = "Active"; + item.more_actions = ( + <div className="flex flex-row text-2xl font-semibold"> + <Menu placement="bottom-end"> + <MenuHandler> + <button className="leading-3 relative top-[-8px]">...</button> + </MenuHandler> + <MenuList className="p-2"> + <MenuItem + onClick={() => + navigation( + `${ADMIN_ROUTE_MAP.adminModule.manageUsers.createUser}/${e.user_id}` + ) + } + > + <div className="flex flex-row gap-4"> + <div> + <MdEdit /> + </div> + <div className="text-semibold m-"> + <span>Edit</span> + </div> + </div>{" "} + </MenuItem> + <MenuItem + onClick={() => + e?.workingstatus === "Invalid" + ? handleUserSetValid(e) + : handleUsersetInvalid(e) + } + > + <div className="flex flex-row gap-4"> + <div> + <MdSwapHoriz /> + </div> + <div className="text-semibold m-"> + <span> + {e?.workingstatus === "Invalid" + ? "Activate" + : "Deactivate"} + </span> + </div> + </div>{" "} + </MenuItem> + {/* <MenuItem onClick={() => handleUserDelete(e)}> + <div className="flex flex-row gap-4"> + <div> + <MdDelete /> + </div> + <div className="text-semibold m-"> + <span>Delete</span> + </div> + </div>{" "} + </MenuItem> */} + </MenuList> + </Menu> + </div> + ); + } + }); + setUserTableList(resUserData); + const userDetails = validResponse?.data?.update_assessors?.returning[0] ? validResponse?.data?.update_assessors?.returning[0] : validResponse?.data?.update_regulator?.returning[0] + if (userDetails) { + + sendActivationStatusNotification(userDetails, 'active'); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "User activated successfully", + toastType: "success", + })); + } + } + } catch (error) { console.log("error - ", error); const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage @@ -330,6 +393,28 @@ export default function ManageUsersList({ } }; + const sendActivationStatusNotification = async (userDetails, status) => { + // let mailBody = require('./json-files/mail-body.json'); + if (userDetails.email) { + const emailBody = status === 'active' ? data.ACTIVATION_MAIL : data.INACTIVATION_MAIL; + if (state.menu_selected === 'Assessor') { + const emailData = { + recipientEmail: [`${userDetails.email}`], + emailSubject: `${emailBody.SUBJECT}`, + emailBody: `${emailBody.BODY.part1}${userDetails.name}${emailBody.BODY.part2}` + }; + // sendEmailNotification(emailData) + } else { + const emailData = { + recipientEmail: [`${userDetails.email}`], + emailSubject: `${emailBody.SUBJECT}`, + emailBody: `${emailBody.BODY.part1}${userDetails.full_name}${emailBody.BODY.part2}` + }; + // sendEmailNotification(emailData) + } + } + } + const handleUserDelete = (e) => { setSelectedUserId(e.user_id); setDeleteUsersModel(true); @@ -400,7 +485,7 @@ export default function ManageUsersList({ </div> </div>{" "} </MenuItem> - <MenuItem onClick={() => handleUserDelete(e)}> + {/* <MenuItem onClick={() => handleUserDelete(e)}> <div className="flex flex-row gap-4 p-1"> <div> <MdDelete /> @@ -409,7 +494,7 @@ export default function ManageUsersList({ <span>Delete</span> </div> </div>{" "} - </MenuItem> + </MenuItem> */} </MenuList> </Menu> </div> @@ -422,7 +507,7 @@ export default function ManageUsersList({ full_name: e.fname || e.lname ? e.fname + " " + e.lname : e.name, email: e.email?.toLowerCase(), mobile_number: e.phonenumber, - role: e.role === "Desktop-Admin" ? "Admin" : "Admin", + role: e.role === "Desktop-Admin" ? "Admin" : "Desktop-Assessor", status: e.workingstatus === "Valid" ? "Active" @@ -461,7 +546,27 @@ export default function ManageUsersList({ </div> </div>{" "} </MenuItem> - <MenuItem onClick={() => handleUserDelete(e)}> + <MenuItem + onClick={() => + e?.workingstatus === "Invalid" + ? handleUserSetValid(e) + : handleUsersetInvalid(e) + } + > + <div className="flex flex-row gap-4 p-1"> + <div> + <MdSwapHoriz /> + </div> + <div className="text-semibold"> + <span> + {e?.workingstatus === "Invalid" + ? "Activate" + : "Deactivate"} + </span> + </div> + </div>{" "} + </MenuItem> + {/* <MenuItem onClick={() => handleUserDelete(e)}> <div className="flex flex-row gap-4 p-1"> <div> <MdDelete /> @@ -470,7 +575,7 @@ export default function ManageUsersList({ <span>Delete</span> </div> </div>{" "} - </MenuItem> + </MenuItem> */} </MenuList> </Menu> </div> @@ -491,7 +596,7 @@ export default function ManageUsersList({ ...prevState, totalCount: res.data.assessors_aggregate.aggregate.totalCount, })); - setUsersList(res?.data?.assessors); + // setUsersList(res?.data?.assessors); const data = res?.data?.assessors; data.forEach(setTableData); setUserTableList(resUserData); @@ -514,9 +619,62 @@ export default function ManageUsersList({ ...prevState, totalCount: res.data.regulator_aggregate.aggregate.totalCount, })); - setUsersList(res?.data?.regulator); - const data = res?.data?.regulator; + //setUsersList(res?.data?.regulator); + const data = res?.data?.regulator.reverse(); data.forEach(setAdminTableData); + const newData = resUserData.filter(user => user.role === "Admin"); + setUserTableList(newData); + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + } + }; + + const getAllDeskTopAssessors = async () => { + const pagination = { + offsetNo: paginationInfo.offsetNo, + limit: paginationInfo.limit, + role: 'Desktop-Assessor' + }; + try { + setSpinner(true); + const res = await fetchAllDeskTopAssessors(pagination); + setPaginationInfo((prevState) => ({ + ...prevState, + totalCount: res.data.regulator_aggregate.aggregate.totalCount, + })); + console.log(res?.data?.regulator) + // setUsersList(res?.data?.regulator); + const data = res?.data?.regulator; + data.forEach(setTableData); + console.log(resUserData); + setUserTableList(resUserData); + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + } + }; + + const getAllInstitutes = async () => { + const pagination = { + offsetNo: paginationInfo.offsetNo, + limit: paginationInfo.limit, + role: 'Desktop-Assessor' + }; + try { + setSpinner(true); + const res = await fetchAllInstitutes(pagination); + setPaginationInfo((prevState) => ({ + ...prevState, + totalCount: res.data.regulator_aggregate.aggregate.totalCount, + })); + console.log(res?.data?.regulator) + // setUsersList(res?.data?.regulator); + const data = res?.data?.regulator; + data.forEach(setTableData); + console.log(resUserData); setUserTableList(resUserData); } catch (error) { console.log("error - ", error); @@ -539,18 +697,38 @@ export default function ManageUsersList({ ...prevState, totalCount: res.data.assessors_aggregate.aggregate.totalCount, })); - setUsersList(res?.data?.assessors); - const data = res?.data?.assessors; - data.forEach(setTableData); + // setUsersList(res?.data?.assessors); + res?.data?.assessors.forEach(setTableData); } if (state.menu_selected === "Desktop-Admin") { + + const newData = res?.data?.regulator.filter(obj => { + return obj.role === "Desktop-Admin"; + }); + + // setUsersList(newData); + + newData.forEach(setAdminTableData); + setPaginationInfo((prevState) => ({ ...prevState, - totalCount: res.data.regulator_aggregate.aggregate.totalCount, + totalCount: resUserData.length, + })); + + } + if (state.menu_selected === "Desktop-Assessor") { + + // setUsersList(res?.data?.regulator); + + const newData = res?.data?.regulator.filter(obj => { + return obj.role === "Desktop-Assessor"; + }); + + newData.forEach(setAdminTableData); + setPaginationInfo((prevState) => ({ + ...prevState, + totalCount: resUserData.length, })); - setUsersList(res?.data?.regulator); - const data = res?.data?.regulator; - data.forEach(setAdminTableData); } setUserTableList(resUserData); } catch (error) { @@ -573,7 +751,7 @@ export default function ManageUsersList({ ...prevState, totalCount: res?.data?.assessors_aggregate?.aggregate?.totalCount, })); - setUsersList(res?.data?.assessors); + // setUsersList(res?.data?.assessors); const data = res?.data?.assessors; data.forEach(setTableData); setUserTableList(resUserData); @@ -610,12 +788,16 @@ export default function ManageUsersList({ if (response.status === 200) { hasuraResponse = await handleDeleteUser(hasuraPostData); } - if (state.menu_selected === "Assessor") { + /* if (state.menu_selected === "Assessor") { await fetchAllAssessors(); } if (state.menu_selected === "Desktop-Admin") { await fetchAllRegulators(); } + if (state.menu_selected === "Desktop-Assessor") { + await getAllDeskTopAssessors(); + } */ + getUsersBasedOnMenuSelected(); setDeleteFlag(false); setSelectedUserId([]); @@ -729,28 +911,77 @@ export default function ManageUsersList({ } }; const handleUserStatus = async (selectedRows) => { - for (let x in selectedRows) { - if (selectedRows[x].status.toLowerCase() === "active") { - const postData = { assessorId: selectedRows[x].user_id }; - const validResponse = await handleInctiveUser(postData); - - // resUserData.forEach((item) => { - // if (item.id === selectedRows[x].user_id) { - // item.status = "Inactive"; - // } - // }); - } else if (selectedRows[x].status.toLowerCase() === "inactive") { - const postData = { assessorId: selectedRows[x].user_id }; - const validResponse = await handleActiveUser(postData); - // resUserData.forEach((item) => { - // if (item.id === selectedRows[x].user_id) { - // item.status = "Active"; - // } - // }); + console.log("menuSelected =>", state.menu_selected); + switch(state.menu_selected) { + case 'Assessor': + for (let x in selectedRows) { + if (selectedRows[x].status.toLowerCase() === "active") { + const postData = { assessorId: selectedRows[x].user_id }; + const validResponse = await handleInctiveUser(postData); + } else if (selectedRows[x].status.toLowerCase() === "inactive") { + const postData = { assessorId: selectedRows[x].user_id }; + const validResponse = await handleActiveUser(postData); + } + } + await fetchAllAssessors(); + break; + case 'Desktop-Admin': + for (let x in selectedRows) { + if (selectedRows[x].status.toLowerCase() === "active") { + const postData = { requlatorId: selectedRows[x].user_id }; + const validResponse = await handleInctiveRegulatorUser(postData); + } else if (selectedRows[x].status.toLowerCase() === "inactive") { + const postData = { requlatorId: selectedRows[x].user_id }; + const validResponse = await handleActiveRegulatorUser(postData); + } + } + await getAllRegulators(); + break; + case 'Desktop-Assessor': + for (let x in selectedRows) { + if (selectedRows[x].status.toLowerCase() === "active") { + const postData = { requlatorId: selectedRows[x].user_id }; + const validResponse = await handleInctiveRegulatorUser(postData); + } else if (selectedRows[x].status.toLowerCase() === "inactive") { + const postData = { requlatorId: selectedRows[x].user_id }; + const validResponse = await handleActiveRegulatorUser(postData); + } } + await getAllDeskTopAssessors(); + break; + case 'Applicant': + alert('query to be added'); + await getAllInstitutes(); + break; + case 'OGA Scheduler': + for (let x in selectedRows) { + if (selectedRows[x].status.toLowerCase() === "active") { + const postData = { requlatorId: selectedRows[x].user_id }; + const validResponse = await handleInctiveRegulatorUser(postData); + } else if (selectedRows[x].status.toLowerCase() === "inactive") { + const postData = { requlatorId: selectedRows[x].user_id }; + const validResponse = await handleActiveRegulatorUser(postData); + } + } + // await getAllRegulators(); + break; + case 'Report Analyst': + for (let x in selectedRows) { + if (selectedRows[x].status.toLowerCase() === "active") { + const postData = { requlatorId: selectedRows[x].user_id }; + const validResponse = await handleInctiveRegulatorUser(postData); + } else if (selectedRows[x].status.toLowerCase() === "inactive") { + const postData = { requlatorId: selectedRows[x].user_id }; + const validResponse = await handleActiveRegulatorUser(postData); + } + } + // await getAllRegulators(); + break; + default: + return; } - await fetchAllAssessors(); - // setUserTableList(resUserData); + + }; useEffect(() => { @@ -766,25 +997,53 @@ export default function ManageUsersList({ } }, [bulkDeleteFlag]); + const getUsersBasedOnMenuSelected = () =>{ + switch (state.menu_selected) { + case 'Assessor': + fetchAllAssessors(); + break; + case 'Desktop-Admin': + fetchAllRegulators(); + break; + case 'Desktop-Assessor': + getAllDeskTopAssessors(); + break; + case 'Applicant': + // getAllInstitutes(); + break; + default: + // return null + } + } + useEffect(() => { if (!isSearchOpen && !isFilterOpen) { - if (state.menu_selected === "Assessor") { + console.log(state.menu_selected) + /* if (state.menu_selected === "Assessor") { fetchAllAssessors(); } if (state.menu_selected === "Desktop-Admin") { fetchAllRegulators(); } + if (state.menu_selected === "Desktop-Assessor") { + getAllDeskTopAssessors(); + } */ + getUsersBasedOnMenuSelected(); } }, [paginationInfo.offsetNo, paginationInfo.limit, state.menu_selected]); useEffect(() => { if (usersCreated) { - if (state.menu_selected === "Assessor") { + /* if (state.menu_selected === "Assessor") { fetchAllAssessors(); } if (state.menu_selected === "Desktop-Admin") { fetchAllRegulators(); } + if (state.menu_selected === "Desktop-Assessor") { + getAllDeskTopAssessors(); + } */ + getUsersBasedOnMenuSelected(); } setUsersCreated(false); }, [usersCreated]); @@ -802,7 +1061,7 @@ export default function ManageUsersList({ </div> <div className="flex justify-end"> <span className="flex gap-4"> - {state.menu_selected === "Assessor" && ( + {/* {state.menu_selected === "Assessor" && ( */} <Button otherProps={{ disabled: listArray == 0 ? true : false, @@ -819,8 +1078,8 @@ export default function ManageUsersList({ }} text="Make Active/Inactive" ></Button> - )} - <Button + {/* )} */} + {/* <Button // moreClass="text-white" otherProps={{ disabled: listArray == 0 ? true : false, @@ -836,7 +1095,7 @@ export default function ManageUsersList({ : setDeleteBulkUsersModel(false) } text="Delete user" - ></Button> + ></Button> */} <button onClick={() => setBulkUploadUsersModel(true)} className="flex flex-wrap items-center justify-center gap-2 border border-gray-500 text-gray-900 bg-white w-[200px] h-[45px] text-md font-medium rounded-[4px]" @@ -889,6 +1148,77 @@ export default function ManageUsersList({ Admin </a> </li> + + <li + className="mr-2" + onClick={() => handleSelectMenu("Desktop-Assessor")} + > + <a + href="#" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ + state.menu_selected === "Desktop-Assessor" + ? "text-blue-600 border-b-2 border-blue-600" + : "" + }`} + aria-current="page" + > + Desktop Assessor + </a> + </li> + <li + // style={{display:'none'}} + className="mr-2" + onClick={() => handleSelectMenu("Applicant")} + > + <a + href="#" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ + state.menu_selected === "Applicant" + ? "text-blue-600 border-b-2 border-blue-600" + : "" + }`} + aria-current="page" + > + Applicant + </a> + </li> + + <li + // style={{display:'none'}} + className="mr-2" + onClick={() => handleSelectMenu("OGA Scheduler")} + > + <a + href="#" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ + state.menu_selected === "OGA Scheduler" + ? "text-blue-600 border-b-2 border-blue-600" + : "" + }`} + aria-current="page" + > + OGA Scheduler + </a> + </li> + + <li + // style={{display:'none'}} + className="mr-2" + onClick={() => handleSelectMenu("Report Analyst")} + > + <a + href="#" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ + state.menu_selected === "Report Analyst" + ? "text-blue-600 border-b-2 border-blue-600" + : "" + }`} + aria-current="page" + > + Report Analyst + </a> + </li> + </ul> {/* filtering table here */} {state.menu_selected === "Assessor" && ( @@ -933,6 +1263,49 @@ export default function ManageUsersList({ /> </div> )} + + {state.menu_selected === "Desktop-Assessor" && ( + <div className="flex flex-col gap-3"> + <FilteringTable + dataList={userTableList} + columns={ADMIN_COLUMN} + navigateFunc={() => {}} + showCheckbox={true} + paginationInfo={paginationInfo} + setPaginationInfo={setPaginationInfo} + setOnRowSelect={() => {}} + setSelectedRows={setSelectedRows} + showFilter={false} + showSearch={true} + pagination={true} + filterApiCall={filterApiCall} + searchApiCall={searchApiCall} + setIsSearchOpen={setIsSearchOpen} + setIsFilterOpen={setIsFilterOpen} + /> + </div> + )} + {state.menu_selected === "Applicant" && ( + <div className="flex flex-col gap-3"> + <FilteringTable + dataList={userTableList} + columns={ADMIN_COLUMN} + navigateFunc={() => {}} + showCheckbox={true} + paginationInfo={paginationInfo} + setPaginationInfo={setPaginationInfo} + setOnRowSelect={() => {}} + setSelectedRows={setSelectedRows} + showFilter={false} + showSearch={true} + pagination={true} + filterApiCall={filterApiCall} + searchApiCall={searchApiCall} + setIsSearchOpen={setIsSearchOpen} + setIsFilterOpen={setIsFilterOpen} + /> + </div> + )} </div> </div> </div> diff --git a/apps/wrapper/web-portal/src/pages/notifications/NotificationsDetailedView.jsx b/apps/wrapper/web-portal/src/pages/notifications/NotificationsDetailedView.jsx index cfbd8bb7..bd89dd87 100644 --- a/apps/wrapper/web-portal/src/pages/notifications/NotificationsDetailedView.jsx +++ b/apps/wrapper/web-portal/src/pages/notifications/NotificationsDetailedView.jsx @@ -35,7 +35,7 @@ export default function NotificationsDetailedView(props) { const handleClick = (notification) => { if (!notification.read_status) { setNotificationReadStatus({ - userId: `${getCookie("userData")?.userRepresentation?.id}`, + userId: `${getCookie("userData")?.id}`, status: true, notificationIds: [notification.id], }); @@ -65,7 +65,7 @@ export default function NotificationsDetailedView(props) { const getAllNotificationsAPI = async () => { const postData = { - userId: `${getCookie("userData")?.userRepresentation?.id}`, + userId: `${getCookie("userData")?.id}`, page: 0, size: 10, sort: { created_date_ts: "desc" }, @@ -92,7 +92,7 @@ export default function NotificationsDetailedView(props) { setselectedNotification(selectedItem); if (!selectedItem.read_status) { setNotificationReadStatus({ - userId: `${getCookie("userData")?.userRepresentation?.id}`, + userId: `${getCookie("userData")?.id}`, status: true, notificationIds: [selectedItem.id], }); diff --git a/apps/wrapper/web-portal/src/pages/notifications/Overlay.js b/apps/wrapper/web-portal/src/pages/notifications/Overlay.js index 13410dd2..5e2bfa2b 100644 --- a/apps/wrapper/web-portal/src/pages/notifications/Overlay.js +++ b/apps/wrapper/web-portal/src/pages/notifications/Overlay.js @@ -31,7 +31,7 @@ export default function Overlay() { const getAllNotificationsAPI = async () => { const postData = { - userId: `${getCookie("userData")?.userRepresentation?.id}`, + userId: `${getCookie("userData")?.id}`, page: 0, size: 10, sort: { created_date_ts: "desc" }, diff --git a/apps/wrapper/web-portal/src/pages/role-management/CreateUpdateRole.jsx b/apps/wrapper/web-portal/src/pages/role-management/CreateUpdateRole.jsx new file mode 100644 index 00000000..ce46014c --- /dev/null +++ b/apps/wrapper/web-portal/src/pages/role-management/CreateUpdateRole.jsx @@ -0,0 +1,682 @@ +import React, { useContext, useEffect, useState } from "react"; +import { Link, useNavigate, useParams, NavLink } from "react-router-dom"; +import Select from "react-select"; +import { FaAngleRight } from "react-icons/fa"; + +import { MdRefresh } from "react-icons/md"; +import ADMIN_ROUTE_MAP from "../../routes/adminRouteMap"; +import { Button, Label } from "../../components"; +import { ContextAPI } from "../../utils/ContextAPI"; + +import { + createBulkUserHasura, + createBulkUsersKeyCloak, + createRole, + editRole, + fetchAllUserRoles, + sendEmailNotification, + checkIsEmailExist +} from "../../api"; +import messages from "../../assets/json-files/messages.json"; + +export default function CreateUpdateRole() { + const { roleId } = useParams(); + const { setSpinner, setToast } = useContext(ContextAPI); + const [user, setUser] = useState({ name: "" }); + const [roleName, setRoleName] = useState(""); + + const navigation = useNavigate(); + + const [availableTabsList, setAvailableTabsList] = useState([ + + ]); + + const [selectedTabsList, setSelectedTabsList] = useState([ + ]); + + const [selectedAvailableOptions, setSelectedAvailableOptions] = useState([]); + const [chosenSelectedTabs, setChosenSelectedTabs] = useState([]); + const [hideSelectBox, setHideSelectBox] = useState("initial"); + + const [selectedModules, setSelectedModules] = useState([]); + const [selectedModuleName, setSelectedModuleName] = useState(""); + + const [modulesList, setModulesList] = useState([ + { value: 'Regulator-portal', label: 'Regulator-portal' }, + { value: 'Assessor-app', label: 'Assessor-app' }, + ]); + + let callCheckVar = true; + + const fetchRole = async () => { + try { + setSpinner(true); + const reqBody = { + object: { + active: { + _eq: true + }, + id: { + _eq: roleId + } + }, + offsetNo: 0, + limit: 100 + } + // fetchAllUserRoles returns unique role if roleid is passed + const res = await fetchAllUserRoles(reqBody); + console.log(res.data.role[0].permissions) + if (res.data.role_aggregate.aggregate.count === 1) { + setRoleName(res.data.role[0].name) + const currentModulesArr = []; + res.data.role[0].permissions?.module?.forEach(element => { + const currentModule = { + label: element, + value: element + } + currentModulesArr.push(currentModule) + }); + + setSelectedModules(currentModulesArr) + /* setModulesList( [ { value: 'Desktop Analysis screen', label: 'Desktop Analysisssss' }, + { value: 'Form Management Screen', label: 'Form Management' }, + { value: 'User Management Screen', label: 'User Management' }, + { value: 'Schedule Management Screen', label: 'Schedule Management' }]) */ + + setModulesList(removeFromArray(modulesList, ...selectedModules)); + + + fetchDefaultSelectedPages(res.data.role[0].permissions.action[0].pages); + } + + } catch (error) { + console.log(error); + } finally { + setSpinner(false); + } + }; + + const fetchAllAvailablePages = async () => { + console.log("caaaal....") + + /* { value: 'Desktop Analysis screen', label: 'Desktop Analysis' }, + { value: 'Form Management Screen', label: 'Form Management' }, + { value: 'User Management Screen', label: 'User Management' }, + { value: 'Schedule Management Screen', label: 'Schedule Management' }, */ + + + + const data = [ + { + "id": 1, + "name": "DASHBOARD", + "module": "Regulator-portal" + }, + { + "id": 2, + "name": "USER-MANAGEMENT", + "module": "Regulator-Portal" + }, + { + "id": 3, + "name": "FORM-MANAGEMENT", + "module": "Regulator-Portal" + }, + { + "id": 2, + "name": "DESKTOP-ANALYSIS", + "module": "Regulator-Portal" + }, , + { + "id": 2, + "name": "SCHEDULE-MANAGEMENT", + "module": "Regulator-Portal" + }, , + { + "id": 2, + "name": "ON-GROUND-INSPECTION-ANALYSIS", + "module": "Regulator-Portal" + }, , + { + "id": 2, + "name": "CERTIFICATE-MANAGEMENT", + "module": "Regulator-Portal" + }, , + { + "id": 2, + "name": "ROLE-MANAGEMENT", + "module": "Regulator-Portal" + } + ] + const arr = [] + data.forEach(elem => { + + arr.push({ + label: elem.name, + value: elem.name + }) + + }); + console.log(arr) + setAvailableTabsList(getDifferenceFromArray(arr, selectedTabsList)); + // setAvailableTabsList(arr) + } + + + const fetchDefaultSelectedPages = async (pages) => { + + const arr = [] + pages.forEach(element => { + arr.push({ + label: element, + value: element + }) + }); + setSelectedTabsList(arr) + /* if(selectedTabsList.length){ + fetchAllAvailablePages() + } */ + }; + + const handleChange = (name, value) => { + + }; + + const removeFromArray = function (arr, ...theArgs) { + return arr.filter(val => !theArgs.includes(val)) + }; + + const getDifferenceFromArray = function (array1, array2) { + return array1.filter(object1 => { + return !array2.some(object2 => { + return object1.label === object2.label; + }); + }); + } + + const addToSelectedTabsList = (e) => { + //console.log(selectedAvailableOptions ) + setSelectedTabsList(prevState => [...prevState, ...selectedAvailableOptions]); + + //console.log(selectedTabsList) + setAvailableTabsList(removeFromArray(availableTabsList, ...selectedAvailableOptions)); + setSelectedAvailableOptions([]); + callCheckVar = false + } + + const addToAvailableTabsList = (e) => { + setAvailableTabsList(prevState => [...prevState, ...chosenSelectedTabs]); + setSelectedTabsList(removeFromArray(selectedTabsList, ...chosenSelectedTabs)) + setChosenSelectedTabs([]) + callCheckVar = false + } + + const refreshTabsList = (e) => { + + } + + const isFieldsValid = () => { + if(setSelectedModuleName?.value?.toLowerCase() === "regulator-portal"){ + if (roleName === "" || selectedModuleName === "" || !selectedTabsList?.length + ) { + // setErrMsg("Please fill in valid information"); + return false; + } else return true; + } else + { + if (roleName === "" || selectedModuleName === "" + ) { + // setErrMsg("Please fill in valid information"); + return false; + } else return true; + } + + }; + + const handleAlphaOnly = (value) => { + const re = /^[a-zA-Z ]*$/; + if (re.test(value)) { + // handleChange(nameFlag, value) + setRoleName(value) + } + } + + const handleNumbersOnly = (value, nameFlag) => { + const re = /^[0-9\b]+$/; + if (value === '' || re.test(value)) { + handleChange(nameFlag, value) + } + } + + const submitRoleData = async (e) => { + let errorFlag = false; + console.log(roleName) + console.log(selectedTabsList) + console.log(selectedModuleName.value) + let moduleArr = [] + moduleArr.push(selectedModuleName.value) + let selectedTabsArr = [] + selectedTabsList.forEach(element => { + selectedTabsArr.push(element.value) + }); + + if (roleId) { + //for edit role + try { + setSpinner(true); + //hasura edit role + const postDataHasura = { + id: roleId, + "param": { + "active": true, + "name": roleName, + "permissions": { + "role": roleName, + "action": [ + { + "pages": selectedTabsArr, + "module": selectedModuleName.value, + "sub-pages": [ + { + "name": "Rejected", + "action": [ + "read" + ] + }, + { + "name": "Approved", + "action": [ + "read", + "write" + ] + } + ] + } + ], + "module": moduleArr + } + } + }; + const editEditHasuraResp = await editRole(postDataHasura); + if (editEditHasuraResp.status !== 200) { + errorFlag = true; + } + if (!errorFlag) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Role updated successfully! It would take 1 hour to reflect the changes", + toastType: "success", + })); + navigation(ADMIN_ROUTE_MAP.adminModule.roleManagement.home); + } + } catch (error) { + // const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Failed to update role details.", + toastType: "error", + })); + } finally { + setSpinner(false); + } + } else { + // for create role + try { + setSpinner(true); + let reqBody = { + "object": { + "name": { + "_eq": roleName + } + }, + "offsetNo": 0, + "limit": 100 + } + + const checkIsRoleExistRes = await fetchAllUserRoles(reqBody); + console.log(checkIsRoleExistRes) + if (checkIsRoleExistRes.data + && (checkIsRoleExistRes.data.role.length)) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: 'Role exists in the system.', + toastType: "error", + })); + } else { + + const reqBody = { + object: { + "name": roleName, + "active": true, + "created_by": 1, + "updated_by": 1, + "permissions": { + "role": roleName, + "action": [ + { + "pages": selectedTabsArr, + "module": selectedModuleName.value, + "sub-pages": [ + { + "name": "Rejected", + "action": [ + "read" + ] + }, + { + "name": "Approved", + "action": [ + "read", + "write" + ] + } + ] + } + ], + "module": moduleArr + } + } + } + + createHasuraRole(reqBody) + } + + } catch (error) { + console.log(error) + // const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Failed to update role details.", + toastType: "error", + })); + } finally { + setSpinner(false); + } + } + + }; + + const createHasuraRole = async (reqBody) => { + + console.log(reqBody) + + try { + //Hasura API call + const hasuraRes = await createRole(reqBody); + if (hasuraRes.status === 200) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Role created successfully!", + toastType: "success", + })); + // sendAccountCreationNotification(user) + navigation(ADMIN_ROUTE_MAP.adminModule.roleManagement.home); + // removeCookie("access_token");; + } + + + } catch (error) { + //const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Failed to create new user role.", + toastType: "error", + })); + } + + } + + + const sendAccountCreationNotification = async (userDetails) => { + if (userDetails.email) { + let emailData = {} + if (userDetails.role === 'Assessor') { + const emailBody = messages.ACCOUNT_CREATED_PASSWORD_BASED_LOGIN_MAIL; + emailData = { + recipientEmail: [`${userDetails.email}`], + emailSubject: `${emailBody.SUBJECT}`, + emailBody: `${emailBody.BODY.part1}${userDetails.firstname} ${userDetails.lastname}${emailBody.BODY.part2}${userDetails.email}${emailBody.BODY.part3}${userDetails.phonenumber}${emailBody.BODY.part4}` + }; + } else { + const emailBody = messages.ACCOUNT_CREATED_OTP_BASED_LOGIN_MAIL; + emailData = { + recipientEmail: [`${userDetails.email}`], + emailSubject: `${emailBody.SUBJECT}`, + emailBody: `${emailBody.BODY.part1}${userDetails.firstname} ${userDetails.lastname}${emailBody.BODY.part2}${userDetails.email}${emailBody.BODY.part3}${userDetails.phonenumber}${emailBody.BODY.part4}` + }; + } + // sendEmailNotification(emailData) + } + } + + useEffect(() => { + console.log(roleId) + if (roleId) { + fetchRole(); + } else { + fetchAllAvailablePages(); + } + }, [roleId]); + + useEffect(() => { + console.log(callCheckVar) + if(callCheckVar){ + fetchAllAvailablePages(); + callCheckVar = false + } + }, [selectedTabsList]); + + useEffect(() => { + console.log(selectedModuleName?.value) + if(selectedModuleName?.value?.toLowerCase() === "assessor-app"){ + setHideSelectBox("none") + } else { + setHideSelectBox("initial") + } + }, [selectedModuleName]); + + + + + return ( + <> + {/* Breadcrum */} + {/* <Breadcrumb data={breadCrumbData} /> */} + <div className="h-[48px] bg-white flex justify-start drop-shadow-sm"> + <div className="container mx-auto flex px-3"> + <div className="flex flex-row font-bold gap-2 items-center"> + <Link to={ADMIN_ROUTE_MAP.adminModule.roleManagement.home}> + <span className="text-primary-400 cursor-pointer"> + Manage Roles + </span> + </Link> + <FaAngleRight className="text-gray-500 text-[16px]" /> + {/* <Link to={ADMIN_ROUTE_MAP.adminModule.manageUsers.home}> */} + <span className="text-gray-500">Create role</span> + {/* </Link> */} + {/* <FaAngleRight className="text-[16px]" /> + <span className="text-gray-500 uppercase">User details</span> */} + </div> + </div> + </div> + <div> + <div + className={`container m-auto min-h-[calc(100vh-148px)] px-3 py-12`} + > + <div className="flex flex-row mb-4 justify-between"> + <h1 className="text-2xl font-bold">Role details</h1> + + </div> + <div className="flex flex-row justify-between bg-white h-[800px] rounded-[4px] p-8 mx-auto"> + <div className="w-3/4"> + <h1 className="text-xl font-semibold">Role details</h1> + <div className="mt-8 grid grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6"> + <div className="sm:col-span-3"> + <Label + htmlFor="firstname" + text="Role name" + required + ></Label> + <div className="mt-2"> + <input + type="text" + placeholder="Type here" + value={roleName} + onChange={(e) => handleAlphaOnly(e.target.value)} + disabled={roleId ? true : false} + className="block w-full rounded-md border-0 p-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6" + /> + </div> + </div> + {/* <div className="sm:col-span-3"> + <Label htmlFor="lastname" text="Last name" required></Label> + <div className="mt-2"> + <input + type="text" + placeholder="Type here" + name="lastname" + id="lastname" + value={user.lastname} + onChange={(e) => + handleAlphaOnly(e.target.value, "lastname") + } + className="block w-full rounded-md border-0 p-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6" + // disabled={userId?true:false} + /> + </div> + </div> */} + </div> + + <div className="w-[230px] mt-9 grid grid-cols-1"> + + <Label + required + text="Module" + htmlFor="role" + moreClass="text-sm font-medium text-gray-900 dark:text-gray-400" + /> + {/* <select + required + value={user.role} + // disabled={roleId ? true : false} + name="role" + id="role" + onChange={(e) => handleChange("role", e.target.value)} + className="bg-white border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + > + <option value="">Select Module*</option> + <option value="Assessor">OGA Assessor App</option> + <option value="Desktop-Admin">Regulator Portal</option> + <option value="Desktop-Assessor">Applicant Portal</option> + </select> */} + <Select + name="modules" + label="Module" + value={selectedModuleName} + onChange={setSelectedModuleName} + options={modulesList} + className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-1 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + /> + </div> + <div className="mt-10 "> + <div className="w-[777px]" style={{ display: hideSelectBox }}> + + <div className="flex-parent-element"> + <div className="flex-child-element border border-gray-200"> + <p className="m-2"> Available Screens</p> + <hr /> + <Select + isMulti + + name="allTabsList" + label="Available tabs" + value={selectedAvailableOptions} + onChange={setSelectedAvailableOptions} + options={availableTabsList} + className="w-[380px] bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-1 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + /> + + </div> + <div className="w-[230px] flex-child-element green"> + <Button type="button" + onClick={() => { addToSelectedTabsList() }} + moreClass="border border-gray-200 bg-white text-blue-600 w-[120px]" + text=">" + ></Button> + + <Button + onClick={() => addToAvailableTabsList() + } + moreClass="mt-3 border border-gray-200 bg-white text-blue-600 w-[120px]" + text="<" + ></Button> + + {/* <Button + onClick={() => {refreshTabsList() + }} + moreClass="mt-3 border border-gray-200 bg-white text-blue-600 w-[120px]" + text="<" + ></Button> */} + {/* <NavLink + moreClass="border border-gray-200"> + <MdRefresh className="text-white text-xl ml-12 mt-2" + + onClick={() => {refreshTabsList() + }} + /> + </NavLink> */} + + </div> + + <div className="flex-child-element border border-gray-200"> + <p className="m-2"> Selected Screens</p> + <hr /> + <Select + isMulti + name="selectedTabsList" + label="Selected tabs" + value={chosenSelectedTabs} + onChange={setChosenSelectedTabs} + options={selectedTabsList} + className="w-[400px] bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-1 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" + /> + </div> + </div> + </div> + </div> + </div> + <div className="flex flex-col "> + <div className="footer flex flex-row gap-4 justify-end"> + <Button + onClick={() => { + navigation(ADMIN_ROUTE_MAP.adminModule.roleManagement.home); + }} + moreClass="border border-gray-200 bg-white text-blue-600 w-[120px]" + text="Cancel" + ></Button> + <Button + moreClass="border text-white w-[120px]" + text={!roleId ? "Submit" : "Save"} + otherProps={{ + disabled: !isFieldsValid(), + }} + onClick={submitRoleData} + ></Button> + </div> + </div> + + + </div> + + + </div> + </div> + </> + ); +} diff --git a/apps/wrapper/web-portal/src/pages/role-management/ManageRole.jsx b/apps/wrapper/web-portal/src/pages/role-management/ManageRole.jsx new file mode 100644 index 00000000..4b48c988 --- /dev/null +++ b/apps/wrapper/web-portal/src/pages/role-management/ManageRole.jsx @@ -0,0 +1,13 @@ +import React from 'react' +import { Outlet } from 'react-router-dom' +import Header from "../../components/Header"; +function ManageRole() { + return ( + <div > + <Header></Header> + <Outlet /> + </div> + ) +} + +export default ManageRole diff --git a/apps/wrapper/web-portal/src/pages/role-management/ManageRolesList.jsx b/apps/wrapper/web-portal/src/pages/role-management/ManageRolesList.jsx new file mode 100644 index 00000000..6c56341c --- /dev/null +++ b/apps/wrapper/web-portal/src/pages/role-management/ManageRolesList.jsx @@ -0,0 +1,622 @@ +import React, { useContext, useEffect, useState } from "react"; +import { useNavigate, Link } from "react-router-dom"; + +import { MdFileUpload, MdEdit, MdDelete, MdSwapHoriz } from "react-icons/md"; + +import { Button } from "../../components"; +import FilteringTable from "../../components/table/FilteringTable"; + +import { readableDate, removeCookie, setCookie } from "../../utils/common"; +import { + filterUsers, + getAllAssessors, + searchUsers, + handleActiveUser, + handleInctiveUser, + handleDeleteUser, + getAllRegulators, + sendEmailNotification, + fetchAllUserRoles, + handleActiveRegulatorUser, + updateRoleById +} from "../../api"; + +import { userService } from "../../api/userService"; + +import ADMIN_ROUTE_MAP from "../../routes/adminRouteMap"; + +//import DeleteUsersModal from "./DeleteUsers"; +import Nav from "../../components/Nav"; +//import BulkUploadUsersModal from "./BulkUploadUsersModal"; +import { + Menu, + MenuHandler, + MenuList, + MenuItem, +} from "@material-tailwind/react"; +import { ContextAPI } from "../../utils/ContextAPI"; +//import ViewScheduleModal from "./ViewScheduleModal"; +import data from "../../assets/json-files/messages.json"; + +export default function ManageRolesList({ + +}) { + const navigation = useNavigate(); + let resUserData = []; + const [deleteBulkUsersModel, setDeleteBulkUsersModel] = useState(false); + + // const[onRowSelected,setOnRowSelected] = useState([]) + const [deleteFlag, setDeleteFlag] = useState(false); + const [bulkDeleteFlag, setBulkDeleteFlag] = useState(false); + const [listArray, setListArray] = useState(); + + const [roleStatus, setRoleStatus] = useState(false); + const [userTableList, setUserTableList] = useState([]); + + const [invalidUserRowFlag] = useState(false); + const [selectedUserId, setSelectedUserId] = useState([{ userId: "" }]); + + + const [paginationInfo, setPaginationInfo] = useState({ + offsetNo: 0, + limit: 10, + totalCount: 0, + }); + + const [isSearchOpen, setIsSearchOpen] = useState(false); + const [isFilterOpen, setIsFilterOpen] = useState(false); + const { setSpinner, setToast } = useContext(ContextAPI); + let selectedRows = []; + + const COLUMNS = [ + { + Header: "Role name", + accessor: "full_name", + }, + { + Header: "Module", + accessor: "module", + }, + { + Header: "Pages", + accessor: "pages", + }, + { + Header: "Role Status", + accessor: "status", + }, + { + Header: "", + accessor: "more_actions", + }, + { + Header: "", + accessor: "isRowInvalid", + Cell: () => { + return invalidUserRowFlag; + }, + }, + ]; + + + const handleRoleStatusUpdate = async (role) => { + + try { + setSpinner(true); + + const reqBody = { + id: role?.id, + param: { + active: role.active ? false : true + } + } + console.log(reqBody.param.active) + const response = await updateRoleById(reqBody) + console.log(response.data.update_role.returning[0].active) + //let roleStatus1 = response.data.update_role.returning[0].active + setRoleStatus(roleStatus => !roleStatus) + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: response.data.update_role.returning[0].active ? "Role activated successfully" : "Role deactivated successfully" , + toastType: `success`, + })); + + + + } catch (error) { + const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage; + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: errorMessage, + toastType: "error", + })); + } finally { + setSpinner(false); + } + }; + + + const sendActivationStatusNotification = async (userDetails, status) => { + // let mailBody = require('./json-files/mail-body.json'); + if (userDetails.email) { + const emailBody = status === 'active' ? data.ACTIVATION_MAIL : data.INACTIVATION_MAIL; + const emailData = { + recipientEmail: [`${userDetails.email}`], + emailSubject: `${emailBody.SUBJECT}`, + emailBody: `${emailBody.BODY.part1}${userDetails.name}${emailBody.BODY.part2}` + }; + // sendEmailNotification(emailData) + + } + } + + + const setTableData = (e) => { + //console.log(e) + let pagesArr = [] + e.permissions?.action[0].pages.forEach(element => { + // console.log(element) + pagesArr.push(`<p>${element}</p>`) + + }); + + let usersData = { + full_name: e.fname || e.lname ? e.fname + " " + e.lname : e.name, + // pages: pagesArr.length ? `${pagesArr} , ` : "-", + pages: `${e.permissions?.action[0].pages} , ` || "ALL", + module: e.permissions?.module?.length ? `${e.permissions?.module}` : "-", + status: + e.active + ? "Active" + : !e.active + ? "Inactive" + : "-", + id: e.id, + more_actions: ( + <div className="flex flex-row text-2xl font-semibold"> + <Menu placement="bottom-end"> + <MenuHandler> + <button className="leading-3 relative top-[-8px]">...</button> + </MenuHandler> + <MenuList className="p-2"> + <MenuItem + onClick={() => + navigation( + `${ADMIN_ROUTE_MAP.adminModule.roleManagement.updateRole}/${e.id}` + ) + } + > + <div className="flex flex-row gap-4 p-1"> + <div> + <MdEdit /> + </div> + <div className="text-semibold"> + <span>Edit</span> + </div> + </div>{" "} + </MenuItem> + <MenuItem + onClick={() => handleRoleStatusUpdate(e) + } + > + <div className="flex flex-row gap-4 p-1"> + <div> + <MdSwapHoriz /> + </div> + <div className="text-semibold"> + <span> + {e?.active + ? "Deactivate" + : "Activate"} + </span> + </div> + </div>{" "} + </MenuItem> + + </MenuList> + </Menu> + </div> + ), + }; + resUserData.push(usersData); + }; + + + const getAllUserRoles = async () => { + //resUserData=[]; + const reqBody = { + object: { + }, + offsetNo: 0, + limit: 10 + } + + try { + setSpinner(true); + const res = await fetchAllUserRoles(reqBody); + setPaginationInfo((prevState) => ({ + ...prevState, + totalCount: res.data.role_aggregate.aggregate.count, + })); + + res?.data?.role.forEach(setTableData); + //console.log(resUserData); + setUserTableList(resUserData); + } catch (error) { + console.log("error - ", error); + } finally { + resUserData=[]; + setSpinner(false); + } + }; + + const searchApiCall = async (searchData) => { + const pagination = { + offsetNo: paginationInfo.offsetNo, + limit: paginationInfo.limit, + ...searchData, + }; + try { + setSpinner(true); + const res = await searchUsers(pagination); + setPaginationInfo((prevState) => ({ + ...prevState, + totalCount: res.data.assessors_aggregate.aggregate.totalCount, + })); + // setUsersList(res?.data?.assessors); + res?.data?.assessors.forEach(setTableData); + setUserTableList(resUserData); + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + } + }; + + const filterApiCall = async (filters) => { + const postData = { + offsetNo: paginationInfo.offsetNo, + limit: paginationInfo.limit, + ...filters, + }; + try { + setSpinner(true); + const res = await filterUsers(postData); + setPaginationInfo((prevState) => ({ + ...prevState, + totalCount: res?.data?.assessors_aggregate?.aggregate?.totalCount, + })); + // setUsersList(res?.data?.assessors); + const data = res?.data?.assessors; + data.forEach(setTableData); + setUserTableList(resUserData); + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + } + }; + + const handleDelete = async (userId) => { + const postData = { + request: { + userName: userId, + }, + }; + const hasuraPostData = { user_id: userId }; + try { + setSpinner(true); + let accessTokenObj = { + grant_type: "client_credentials", + client_id: "admin-api", + client_secret: "edd0e83d-56b9-4c01-8bf8-bad1870a084a", + }; + const accessTokenResponse = await userService.getAccessToken( + accessTokenObj + ); + setCookie( + "access_token", + "Bearer " + accessTokenResponse.data.access_token + ); + let hasuraResponse = {}; + const response = await userService.deleteUsers(postData); + if (response.status === 200) { + hasuraResponse = await handleDeleteUser(hasuraPostData); + } + + + setDeleteFlag(false); + setSelectedUserId([]); + + if (hasuraResponse.status === 200) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "User Deleted!", + toastType: "success", + })); + } + + removeCookie("access_token"); + } catch (error) { + const errorMessage = JSON.parse(error?.config?.data).regulators[0]?.user_id?.errorMessage + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: errorMessage, + toastType: "error", + })); + } finally { + setSpinner(false); + } + }; + + const setSelectedRows = (rowList) => { + let checkboxArr = []; + rowList.forEach((item) => { + let checkboxObj = {}; + checkboxObj.email = item.values.email; + checkboxObj.status = item.values.status; + checkboxObj.user_id = item.original.id; + checkboxArr.push(checkboxObj); + }); + selectedRows = checkboxArr; + setListArray(selectedRows.length); + }; + + const handleBulkDelete = async (bulkEmail) => { + const postData = bulkEmail; + try { + setSpinner(true); + let errorFlag = false; + let accessTokenObj = { + grant_type: "client_credentials", + client_id: "admin-api", + client_secret: "edd0e83d-56b9-4c01-8bf8-bad1870a084a", + }; + // const accessTokenResponse = await userService.getAccessToken( + // accessTokenObj + // ); + // if (accessTokenResponse.status !== 200) { + // errorFlag = true; + // } + // setCookie( + // "access_token", + // "Bearer " + accessTokenResponse.data.access_token + // ); + setCookie("access_token", process.env.REACT_APP_AUTH_TOKEN); + + // const res = await userService.deleteUsers(postData); + + postData.forEach(async (item) => { + { + const res = await userService.deleteUsers({ + request: { + userName: item?.user_id, + }, + }); + if (res.status !== 200) { + errorFlag = true; + } + } + }); + + if (!errorFlag) { + bulkEmail.map(async (item) => { + let bulkHasuraPostData = { user_id: item.user_id }; + const hasuraResponse = await handleDeleteUser(bulkHasuraPostData); + if (hasuraResponse.status !== 200) { + errorFlag = true; + } + }); + } + + // fetchAllAssessors(); + setBulkDeleteFlag(false); + setDeleteBulkUsersModel(false); + selectedRows = []; + if (!errorFlag) { + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Users Deleted!", + toastType: "success", + })); + } + + removeCookie("access_token"); + } catch (error) { + console.log("error - ", error); + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: "Error occured while deleting!", + toastType: "error", + })); + } finally { + setSpinner(false); + } + }; + const handleUserStatus = async (selectedRows) => { + for (let x in selectedRows) { + if (selectedRows[x].status.toLowerCase() === "active") { + const postData = { assessorId: selectedRows[x].user_id }; + const validResponse = await handleInctiveUser(postData); + + + } else if (selectedRows[x].status.toLowerCase() === "inactive") { + const postData = { assessorId: selectedRows[x].user_id }; + const validResponse = await handleActiveUser(postData); + + } + } + // await fetchAllAssessors(); + + }; + + useEffect(() => { + + getAllUserRoles(); + //setUserTableList(resUserData); + }, [roleStatus]); + + useEffect(() => { + if (bulkDeleteFlag) { + // handleDelete(selectedUserId); + handleBulkDelete(selectedRows); + } + }, [bulkDeleteFlag]); + + useEffect(() => { + if (!isSearchOpen && !isFilterOpen) { + getAllUserRoles(); + } + }, [paginationInfo.offsetNo, paginationInfo.limit]); + + + + return ( + <> + <Nav /> + + <div className={`container m-auto min-h-[calc(100vh-148px)] px-3 py-12`}> + <div className="flex flex-col justify-center align-center"> + <div className="flex flex-col justify-center align-center gap-4"> + <div className="flex flex-row"> + <div className="flex grow items-center"> + <h1 className="text-xl font-semibold">Manage User Roles</h1> + </div> + <div className="flex justify-end"> + <span className="flex gap-4"> + {/* {state.menu_selected === "Assessor" && ( + <Button + otherProps={{ + disabled: listArray == 0 ? true : false, + }} + moreClass={`${ + listArray == 0 + ? "cursor-not-allowed border border-gray-500 bg-white text-gray-200 px-8 h-[44px]" + : "px-8 text-white" + }`} + onClick={() => { + if (selectedRows.length > 0) { + handleUserStatus(selectedRows); + } + }} + text="Activate / Inactivate Role" + ></Button> + )} */} + {/* {<Button + // moreClass="text-white" + otherProps={{ + disabled: listArray == 0 ? true : false, + }} + moreClass={`${ + listArray == 0 + ? "cursor-not-allowed border border-gray-500 bg-white w-fit text-gray-200 px-8 h-fit" + : "px-8 text-white" + }`} + onClick={() => + selectedRows.length + ? setDeleteBulkUsersModel(true) + : setDeleteBulkUsersModel(false) + } + text="Delete Role" + ></Button>} */} + {/* <button + onClick={() => setBulkUploadUsersModel(true)} + className="flex flex-wrap items-center justify-center gap-2 border border-gray-500 text-gray-900 bg-white w-[200px] h-[45px] text-md font-medium rounded-[4px]" + > + Bulk upload users + <span className="text-xl"> + <MdFileUpload /> + </span> + </button> */} + <Button + moreClass="text-white" + text="Add Role" + onClick={() => + navigation( + `${ADMIN_ROUTE_MAP.adminModule.roleManagement.updateRole}` + ) + } + ></Button> + </span> + </div> + </div> + <div className="flex flex-col gap-4"> + {/* <ul className="flex flex-wrap gap-3 -mb-px"> + <li onClick={() => handleSelectMenu("Assessor")}> + <a + href="#" + className={`inline-block p-4 rounded-t-lg dark:text-blue-500 dark:border-blue-600 ${ + state.menu_selected === "Assessor" + ? "text-blue-600 border-b-2 border-blue-600" + : "" + }`} + > + Assessor + </a> + </li> + + + + </ul> */} + {/* filtering table here */} + + <div className="flex flex-col gap-3"> + <FilteringTable + dataList={userTableList} + columns={COLUMNS} + navigateFunc={() => { }} + showCheckbox={false} + paginationInfo={paginationInfo} + setPaginationInfo={setPaginationInfo} + setOnRowSelect={() => { }} + setSelectedRows={setSelectedRows} + showFilter={false} + showSearch={false} + pagination={true} + filterApiCall={filterApiCall} + searchApiCall={searchApiCall} + setIsSearchOpen={setIsSearchOpen} + setIsFilterOpen={setIsFilterOpen} + /> + </div> + </div> + </div> + </div> + </div> + + {/* {deleteUsersModel && ( + <DeleteUsersModal + setDeleteFlags={setDeleteFlag} + closeDeleteUsersModal={setDeleteUsersModel} + /> + )} */} + + {/* {deleteBulkUsersModel && ( + <DeleteUsersModal + setDeleteFlags={setBulkDeleteFlag} + closeDeleteUsersModal={setDeleteBulkUsersModel} + /> + )} */} + + {/* {bulkUploadUsersModel && ( + <BulkUploadUsersModal + closeBulkUploadUsersModal={setBulkUploadUsersModel} + setUsersCreated={setUsersCreated} + /> + )} */} + + {/* {viewScheduleModal && ( + <ViewScheduleModal + closeViewSchedulesModal={setViewScheduleModal} + scheduleUserData={scheduleUserData} + ></ViewScheduleModal> + )} */} + </> + ); +} diff --git a/apps/wrapper/web-portal/src/pages/schedule-management/ScheduleManagementList.jsx b/apps/wrapper/web-portal/src/pages/schedule-management/ScheduleManagementList.jsx index d283bb64..1b499655 100644 --- a/apps/wrapper/web-portal/src/pages/schedule-management/ScheduleManagementList.jsx +++ b/apps/wrapper/web-portal/src/pages/schedule-management/ScheduleManagementList.jsx @@ -7,6 +7,9 @@ import FilteringTable from "../../components/table/FilteringTable"; import { Button } from "../../components"; import Nav from "../../components/Nav"; import { ContextAPI } from "../../utils/ContextAPI"; +import * as XLSX from "xlsx"; +import { getCookie } from "../../utils/common"; + import { filterAssessments, @@ -16,13 +19,13 @@ import { deleteSchedule, getScheduledList, sendEmailNotification, + uploadAssessmentSchedule + } from "../../api"; import { setToLocalForage, - removeItemFromLocalForage, getFromLocalForage, } from "../../forms"; -import ADMIN_ROUTE_MAP from "../../routes/adminRouteMap"; import BulkUploadScheduleModal from "./BulkUploadScheduleModal"; import AlertModal from "../../components/AlertModal"; @@ -35,9 +38,8 @@ import { import { formatDate, readableDate } from "../../utils"; const ScheduleManagementList = () => { - let today = `${new Date().getFullYear()}-${ - new Date().getMonth() + 1 - }-${new Date().getDate()}`; + let today = `${new Date().getFullYear()}-${new Date().getMonth() + 1 + }-${new Date().getDate()}`; const navigation = useNavigate(); const { setSpinner, setToast, toast } = useContext(ContextAPI); var resUserData = []; @@ -64,6 +66,13 @@ const ScheduleManagementList = () => { }, }); + const hiddenFileInput = React.useRef(null); + + const [fileTypeError, setFileTypeError] = useState(false); + const [fileName, setFileName] = useState(""); + const [file, setFile] = useState({}); + const [jsonData, setJsonData] = useState(""); + const COLUMNS = [ { Header: "District", @@ -204,17 +213,15 @@ const ScheduleManagementList = () => { const emailData = { recipientEmail: [`${assessment[0]?.assessor?.email}`], emailSubject: `Inspection Scheduled for ${assessment[0]?.institute?.name} Cancelled!`, - emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${ - assessment[0]?.assessor?.name - },</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'> - This is to inform you that the inspection scheduled for ${ - assessment[0]?.institute?.name - } on ${readableDate( - assessment[0]?.date - )} is cancelled. We will keep you posted for the upcoming inspections. + emailBody: `<!DOCTYPE html><html><head><meta charset='utf-8'><title>Your Email Title</title><link href='https://fonts.googleapis.com/css2?family=Mulish:wght@400;600&display=swap' rel='stylesheet'></head><body style='font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;'><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 20px; text-align: center; background-color: #F5F5F5;'><img src='https://regulator.upsmfac.org/images/upsmf.png' alt='Logo' style='max-width: 360px;'></td></tr></table><table width='100%' bgcolor='#ffffff' cellpadding='0' cellspacing='0' border='0'><tr><td style='padding: 36px;'><p style='color: #555555; font-size: 18px; font-family: 'Mulish', Arial, sans-serif;'>Dear ${assessment[0]?.assessor?.name + },</p><p style='color: #555555; font-size: 18px; line-height: 1.6; font-family: 'Mulish', Arial, sans-serif;'> + This is to inform you that the inspection scheduled for ${assessment[0]?.institute?.name + } on ${readableDate( + assessment[0]?.date + )} is cancelled. We will keep you posted for the upcoming inspections. </p></td></tr></table></body></html>`, }; - sendEmailNotification(emailData); + // sendEmailNotification(emailData); fetchAllAssessmentSchedule(); } @@ -315,6 +322,83 @@ const ScheduleManagementList = () => { } }; + + const handleFileInputChange = (e) => { + const fileUploaded = e.target.files[0]; + console.log(fileUploaded) + if (!fileUploaded?.name?.includes(".xls") || fileUploaded?.size > 2000000) { + setFileTypeError(true); + } else { + setFileName( + fileUploaded.name.substring(0, fileUploaded.name.lastIndexOf(".")) + ); + setFileTypeError(false); + setFile(fileUploaded); + // showFileDataInTable(fileUploaded) + // handleFileUploadSubmit(); + } + }; + + + + const showFileDataInTable = (file) => { + if (file) { + const reader = new FileReader(); + reader.onload = (e) => { + const data = e.target.result; + const workbook = XLSX.read(data, { type: "binary" }); + const sheetName = workbook.SheetNames[0]; + const worksheet = workbook.Sheets[sheetName]; + const json = XLSX.utils.sheet_to_json(worksheet); + setJsonData(JSON.stringify(json, null, 2)); + }; + reader.readAsBinaryString(file); + console.log(jsonData) + } + + }; + + const handleFileInputClick = (e) => { + hiddenFileInput.current.click(); + }; + + const handleFileUploadSubmit = () => { + if(file){ + const formData = new FormData(); + formData.append("file", file); + formData.append("userId", getCookie("userData")?.id); + console.log(formData) + submitAssessmentSchedule(formData); + } + }; + + const submitAssessmentSchedule = async (postData) => { + let res = {}; + try { + setSpinner(true); + res = await uploadAssessmentSchedule(postData); + + } catch (error) { + console.log("error - ", error); + } finally { + setSpinner(false); + //setFile({}); + setFileName(""); + + setToast((prevState) => ({ + ...prevState, + toastOpen: true, + toastMsg: res.status === 200 ? "Schedule uploaded successfully! Please check your email after some time." : "Failed to upload schedule !!", + toastType: res.status === 200 ? "success" : "error" + })); + + setTimeout(() => { + window.location.reload(); + }, 2000); + + } + }; + useEffect(() => { if (!isSearchOpen && !isFilterOpen) { fetchAllAssessmentSchedule(); @@ -325,18 +409,78 @@ const ScheduleManagementList = () => { fetchAllScheduledList(); }, []); + useEffect(() => { + //console.log(jsonData) + }, [jsonData]); + + useEffect(() => { + //console.log(jsonData) + if(fileName === ""){ + setFile() + } + }, [fileName]); + + return ( <> {showAlert && ( <AlertModal showAlert={setShowAlert} {...state.alertContent} /> )} <Nav /> + <div className={`container m-auto min-h-[calc(100vh-148px)] px-3 py-12`}> + + <hr /> + <div className=" sm:col-span-3 flex justify-end"> + <input + type="file" + accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + ref={hiddenFileInput} + onChange={handleFileInputChange} + style={{ display: "none" }} + /> + + <Button + moreClass="m-4 text-white flex justify-center h-fit w-[300px] px-6" + text="Upload schedule ( xls files < 2MB ) " + onClick={handleFileInputClick} + />{" "} + {fileTypeError && ( + <div className="text-red-500"> + {"Only xls files accepted!(max size 2MB)"} + </div> + )} + </div> + + <div className="flex justify-end ml-4">{fileName}</div> + + <div className="footer flex flex-row justify-end "> + <button + onClick={() => { + setFileName(""); window.location.reload(); + }} + className="border border-blue-900 bg-white text-blue-900 w-[140px] h-[40px] font-medium rounded-[4px] m-3" + > + Cancel + </button> + <button + onClick={() => handleFileUploadSubmit()} + disabled={fileName && !fileTypeError ? false : true} + // className="border border-blue-900 text-white bg-blue-900 w-[140px] h-[40px] font-medium rounded-[4px]" + className={`${fileName && !fileTypeError + ? "border border-blue-900 text-white bg-blue-900 w-[140px] h-[40px] m-3 font-medium rounded-[4px]" + : "cursor-not-allowed border border-gray-500 bg-white text-gray-500 px-8 h-[44px] m-3" + }`} + > + Submit + </button> + </div> <div className="flex flex-col gap-8"> <div className="flex flex-col gap-4"> <div className="flex flex-row"> <div className="flex flex-grow items-center"> {/* <div className="text-xl font-semibold">Schedule Management</div> */} + </div> <div className="flex flex-grow justify-end"> {/* <span className="flex gap-4"> @@ -368,9 +512,9 @@ const ScheduleManagementList = () => { <FilteringTable dataList={scheduleTableList} columns={COLUMNS} - navigateFunc={() => {}} + navigateFunc={() => { }} filterApiCall={filterApiCall} - onRowSelect={() => {}} + onRowSelect={() => { }} pagination={true} showFilter={true} showSearch={true} diff --git a/apps/wrapper/web-portal/src/routes/adminRouteMap.js b/apps/wrapper/web-portal/src/routes/adminRouteMap.js index 6b96de14..4b67d1b5 100644 --- a/apps/wrapper/web-portal/src/routes/adminRouteMap.js +++ b/apps/wrapper/web-portal/src/routes/adminRouteMap.js @@ -1,4 +1,5 @@ let ADMIN_ROUTE_MAP = {}; +export const DA_ROUTE_MAP = {}; let MANAGE_USERS = "manage-users"; let CERTIFICATE_MANAGEMENT = "certificate-management" let GROUND_INSPECTION = "ground-inspection"; @@ -7,6 +8,7 @@ let DESKTOP_ANALYSIS = "desktop-analysis"; let SCHEDULE_MANAGEMENT = "schedule-management"; let NOTIFICATIONS = "notifications" let DASHBOARD = "dashboard" +const ROLE_MANAGEMENT = "role-management"; ADMIN_ROUTE_MAP.auth = "/auth"; ADMIN_ROUTE_MAP.loginModule = { @@ -55,6 +57,11 @@ ADMIN_ROUTE_MAP.adminModule = { }, dashboard: { home: `/${DASHBOARD}`, + }, + roleManagement: { + home: `/${ROLE_MANAGEMENT}`, + list: `/${ROLE_MANAGEMENT}/list`, + updateRole: `/${ROLE_MANAGEMENT}/create-update-role`, } }; diff --git a/apps/wrapper/web-portal/src/utils/common.js b/apps/wrapper/web-portal/src/utils/common.js index a6b38822..14575b99 100644 --- a/apps/wrapper/web-portal/src/utils/common.js +++ b/apps/wrapper/web-portal/src/utils/common.js @@ -58,7 +58,7 @@ export const readableDate = (dateStr) => { "Dec", ]; return ( - date.getDate() + " " + month[date.getMonth()] + " " + date.getFullYear() + date.getDate() + "-" + month[date.getMonth()] + "-" + date.getFullYear() ); }; -- GitLab