├── .gitignore ├── client ├── src │ ├── config.js │ ├── components │ │ ├── ui │ │ │ ├── Card.jsx │ │ │ ├── Message.jsx │ │ │ ├── Label.jsx │ │ │ ├── ButtonLink.jsx │ │ │ ├── Input.jsx │ │ │ ├── Button.jsx │ │ │ ├── index.js │ │ │ └── Textarea.jsx │ │ ├── tasks │ │ │ └── TaskCard.jsx │ │ └── Navbar.jsx │ ├── api │ │ ├── axios.js │ │ ├── auth.js │ │ └── tasks.js │ ├── index.css │ ├── setupTests.js │ ├── schemas │ │ ├── task.js │ │ └── auth.js │ ├── App.test.js │ ├── main.jsx │ ├── routes.jsx │ ├── reportWebVitals.js │ ├── App.css │ ├── pages │ │ ├── TasksPage.jsx │ │ ├── HomePage.jsx │ │ ├── LoginPage.jsx │ │ ├── TaskFormPage.jsx │ │ └── RegisterPage.jsx │ ├── App.jsx │ ├── context │ │ ├── tasksContext.jsx │ │ └── authContext.jsx │ └── assets │ │ └── react.svg ├── postcss.config.cjs ├── vite.config.js ├── tailwind.config.cjs ├── .gitignore ├── index.html ├── package.json ├── public │ └── vite.svg └── pnpm-lock.yaml ├── .env.template ├── docker-compose.yml ├── src ├── schemas │ ├── task.schema.js │ └── auth.schema.js ├── config.js ├── db.js ├── middlewares │ ├── validator.middleware.js │ └── auth.middleware.js ├── libs │ └── jwt.js ├── index.js ├── models │ ├── user.model.js │ └── task.model.js ├── routes │ ├── auth.routes.js │ └── tasks.routes.js ├── app.js └── controllers │ ├── tasks.controllers.js │ └── auth.controller.js ├── .vscode └── settings.json ├── README.md ├── requests ├── auth.http └── tasks.http ├── package.json └── pnpm-lock.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env -------------------------------------------------------------------------------- /client/src/config.js: -------------------------------------------------------------------------------- 1 | export const API_URL = import.meta.env.VITE_API_URL|| "http://localhost:4000/api"; 2 | -------------------------------------------------------------------------------- /client/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /.env.template: -------------------------------------------------------------------------------- 1 | PORT=4000 2 | MONGODB_URI=mongodb://localhost/mern-tasks 3 | TOKEN_SECRET=yoursecret 4 | FRONTEND_URL=http://localhost:5173 -------------------------------------------------------------------------------- /client/src/components/ui/Card.jsx: -------------------------------------------------------------------------------- 1 | export function Card({ children }) { 2 | return
{children}
; 3 | } 4 | -------------------------------------------------------------------------------- /client/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()] 7 | }) 8 | -------------------------------------------------------------------------------- /client/src/components/ui/Message.jsx: -------------------------------------------------------------------------------- 1 | export function Message({ message }) { 2 | return ( 3 |

4 | {message} 5 |

6 | ); 7 | } 8 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | 3 | services: 4 | tasksdb: 5 | image: mongo 6 | container_name: tasksdb 7 | restart: always 8 | ports: 9 | - 27017:27017 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /client/src/components/ui/Label.jsx: -------------------------------------------------------------------------------- 1 | export function Label({ htmlFor, children }) { 2 | return ( 3 | 6 | ); 7 | } 8 | -------------------------------------------------------------------------------- /client/tailwind.config.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | }; 9 | -------------------------------------------------------------------------------- /client/src/api/axios.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | import { API_URL } from "../config"; 3 | 4 | const instance = axios.create({ 5 | baseURL: API_URL, 6 | withCredentials: true, 7 | }); 8 | 9 | export default instance; 10 | -------------------------------------------------------------------------------- /client/src/components/ui/ButtonLink.jsx: -------------------------------------------------------------------------------- 1 | import { Link } from "react-router-dom"; 2 | 3 | export const ButtonLink = ({ to, children }) => ( 4 | 5 | {children} 6 | 7 | ); 8 | -------------------------------------------------------------------------------- /client/src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | background: #202020; 7 | color: white; 8 | } 9 | 10 | .content-container { 11 | height: calc(100vh - theme("spacing.20")); 12 | } 13 | -------------------------------------------------------------------------------- /client/src/components/ui/Input.jsx: -------------------------------------------------------------------------------- 1 | import { forwardRef } from "react"; 2 | 3 | export const Input = forwardRef((props, ref) => ( 4 | 9 | )); 10 | -------------------------------------------------------------------------------- /client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /client/src/schemas/task.js: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | 3 | export const taskSchema = z.object({ 4 | title: z.string({ 5 | required_error: "Title is required", 6 | }), 7 | description: z.string({ 8 | required_error: "Description is required", 9 | }), 10 | }); 11 | -------------------------------------------------------------------------------- /src/schemas/task.schema.js: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | 3 | export const createTaskSchema = z.object({ 4 | title: z.string({ 5 | required_error: "Title is required", 6 | }), 7 | description: z.string().optional(), 8 | date: z.string().datetime().optional(), 9 | }); 10 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "**/.git": true, 4 | "**/.svn": true, 5 | "**/.hg": true, 6 | "**/CVS": true, 7 | "**/.DS_Store": true, 8 | "**/Thumbs.db": true, 9 | "node_modules": true, 10 | "client/node_modules": true, 11 | } 12 | } -------------------------------------------------------------------------------- /client/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /client/src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root')).render( 7 | 8 | 9 | 10 | ) 11 | -------------------------------------------------------------------------------- /client/src/components/ui/Button.jsx: -------------------------------------------------------------------------------- 1 | export function Button({ onClick, children }) { 2 | return ( 3 | 9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /client/src/components/ui/index.js: -------------------------------------------------------------------------------- 1 | export { Button } from "./Button"; 2 | export { ButtonLink } from "./ButtonLink"; 3 | export { Card } from "./Card"; 4 | export { Input } from "./Input"; 5 | export { Message } from "./Message"; 6 | export { Label } from "./Label"; 7 | import { Textarea } from "./Textarea"; 8 | -------------------------------------------------------------------------------- /src/config.js: -------------------------------------------------------------------------------- 1 | export const PORT = process.env.PORT || 4000; 2 | export const MONGODB_URI = 3 | process.env.MONGODB_URI || "mongodb://localhost/mern-tasks"; 4 | export const TOKEN_SECRET = process.env.TOKEN_SECRET || "secret"; 5 | 6 | export const FRONTEND_URL = process.env.FRONTEND_URL || "http://localhost:5173"; -------------------------------------------------------------------------------- /client/src/api/auth.js: -------------------------------------------------------------------------------- 1 | import axios from "./axios"; 2 | 3 | export const registerRequest = async (user) => 4 | axios.post(`/auth/register`, user); 5 | 6 | export const loginRequest = async (user) => axios.post(`/auth/login`, user); 7 | 8 | export const verifyTokenRequest = async () => axios.get(`/auth/verify`); 9 | -------------------------------------------------------------------------------- /client/src/components/ui/Textarea.jsx: -------------------------------------------------------------------------------- 1 | import { forwardRef } from "react"; 2 | 3 | export const Textarea = forwardRef((props, ref, rows = 2) => ( 4 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | ); 89 | } 90 | -------------------------------------------------------------------------------- /client/src/context/authContext.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from "react"; 2 | import { createContext, useContext, useState } from "react"; 3 | import { loginRequest, registerRequest, verifyTokenRequest } from "../api/auth"; 4 | import Cookies from "js-cookie"; 5 | 6 | const AuthContext = createContext(); 7 | 8 | export const useAuth = () => { 9 | const context = useContext(AuthContext); 10 | if (!context) throw new Error("useAuth must be used within a AuthProvider"); 11 | return context; 12 | }; 13 | 14 | export const AuthProvider = ({ children }) => { 15 | const [user, setUser] = useState(null); 16 | const [isAuthenticated, setIsAuthenticated] = useState(false); 17 | const [errors, setErrors] = useState([]); 18 | const [loading, setLoading] = useState(true); 19 | 20 | // clear errors after 5 seconds 21 | useEffect(() => { 22 | if (errors.length > 0) { 23 | const timer = setTimeout(() => { 24 | setErrors([]); 25 | }, 5000); 26 | return () => clearTimeout(timer); 27 | } 28 | }, [errors]); 29 | 30 | const signup = async (user) => { 31 | try { 32 | const res = await registerRequest(user); 33 | if (res.status === 200) { 34 | setUser(res.data); 35 | setIsAuthenticated(true); 36 | } 37 | } catch (error) { 38 | console.log(error.response.data); 39 | setErrors(error.response.data.message); 40 | } 41 | }; 42 | 43 | const signin = async (user) => { 44 | try { 45 | const res = await loginRequest(user); 46 | setUser(res.data); 47 | setIsAuthenticated(true); 48 | } catch (error) { 49 | console.log(error); 50 | // setErrors(error.response.data.message); 51 | } 52 | }; 53 | 54 | const logout = () => { 55 | Cookies.remove("token"); 56 | setUser(null); 57 | setIsAuthenticated(false); 58 | }; 59 | 60 | useEffect(() => { 61 | const checkLogin = async () => { 62 | const cookies = Cookies.get(); 63 | if (!cookies.token) { 64 | setIsAuthenticated(false); 65 | setLoading(false); 66 | return; 67 | } 68 | 69 | try { 70 | const res = await verifyTokenRequest(cookies.token); 71 | console.log(res); 72 | if (!res.data) return setIsAuthenticated(false); 73 | setIsAuthenticated(true); 74 | setUser(res.data); 75 | setLoading(false); 76 | } catch (error) { 77 | setIsAuthenticated(false); 78 | setLoading(false); 79 | } 80 | }; 81 | checkLogin(); 82 | }, []); 83 | 84 | return ( 85 | 96 | {children} 97 | 98 | ); 99 | }; 100 | 101 | export default AuthContext; 102 | -------------------------------------------------------------------------------- /client/src/pages/RegisterPage.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from "react"; 2 | import { useAuth } from "../context/authContext"; 3 | import { Link, useNavigate } from "react-router-dom"; 4 | import { Card, Message, Button, Input, Label } from "../components/ui"; 5 | import { useForm } from "react-hook-form"; 6 | import { registerSchema } from "../schemas/auth"; 7 | import { zodResolver } from "@hookform/resolvers/zod"; 8 | 9 | function Register() { 10 | const { signup, errors: registerErrors, isAuthenticated } = useAuth(); 11 | const { 12 | register, 13 | handleSubmit, 14 | formState: { errors }, 15 | } = useForm({ 16 | resolver: zodResolver(registerSchema), 17 | }); 18 | const navigate = useNavigate(); 19 | 20 | const onSubmit = async (value) => { 21 | await signup(value); 22 | }; 23 | 24 | useEffect(() => { 25 | if (isAuthenticated) navigate("/tasks"); 26 | }, [isAuthenticated]); 27 | 28 | return ( 29 |
30 | 31 | {registerErrors.map((error, i) => ( 32 | 33 | ))} 34 |

Register

35 |
36 | 37 | 44 | {errors.username?.message && ( 45 |

{errors.username?.message}

46 | )} 47 | 48 | 49 | 54 | {errors.email?.message && ( 55 |

{errors.email?.message}

56 | )} 57 | 58 | 59 | 65 | {errors.password?.message && ( 66 |

{errors.password?.message}

67 | )} 68 | 69 | 70 | 76 | {errors.confirmPassword?.message && ( 77 |

{errors.confirmPassword?.message}

78 | )} 79 | 80 |
81 |

82 | Already Have an Account? 83 | 84 | Login 85 | 86 |

87 |
88 |
89 | ); 90 | } 91 | 92 | export default Register; 93 | -------------------------------------------------------------------------------- /src/controllers/auth.controller.js: -------------------------------------------------------------------------------- 1 | import User from "../models/user.model.js"; 2 | import jwt from "jsonwebtoken"; 3 | import bcrypt from "bcryptjs"; 4 | import { TOKEN_SECRET } from "../config.js"; 5 | import { createAccessToken } from "../libs/jwt.js"; 6 | 7 | export const register = async (req, res) => { 8 | try { 9 | const { username, email, password } = req.body; 10 | 11 | const userFound = await User.findOne({ email }); 12 | 13 | if (userFound) 14 | return res.status(400).json({ 15 | message: ["The email is already in use"], 16 | }); 17 | 18 | // hashing the password 19 | const passwordHash = await bcrypt.hash(password, 10); 20 | 21 | // creating the user 22 | const newUser = new User({ 23 | username, 24 | email, 25 | password: passwordHash, 26 | }); 27 | 28 | // saving the user in the database 29 | const userSaved = await newUser.save(); 30 | 31 | // create access token 32 | const token = await createAccessToken({ 33 | id: userSaved._id, 34 | }); 35 | 36 | res.cookie("token", token, { 37 | httpOnly: process.env.NODE_ENV !== "development", 38 | secure: true, 39 | sameSite: "none", 40 | }); 41 | 42 | res.json({ 43 | id: userSaved._id, 44 | username: userSaved.username, 45 | email: userSaved.email, 46 | }); 47 | } catch (error) { 48 | res.status(500).json({ message: error.message }); 49 | } 50 | }; 51 | 52 | export const login = async (req, res) => { 53 | try { 54 | const { email, password } = req.body; 55 | const userFound = await User.findOne({ email }); 56 | 57 | if (!userFound) 58 | return res.status(400).json({ 59 | message: ["The email does not exist"], 60 | }); 61 | 62 | const isMatch = await bcrypt.compare(password, userFound.password); 63 | if (!isMatch) { 64 | return res.status(400).json({ 65 | message: ["The password is incorrect"], 66 | }); 67 | } 68 | 69 | const token = await createAccessToken({ 70 | id: userFound._id, 71 | username: userFound.username, 72 | }); 73 | 74 | res.cookie("token", token, { 75 | httpOnly: process.env.NODE_ENV !== "development", 76 | secure: true, 77 | sameSite: "none", 78 | }); 79 | 80 | res.json({ 81 | id: userFound._id, 82 | username: userFound.username, 83 | email: userFound.email, 84 | }); 85 | } catch (error) { 86 | return res.status(500).json({ message: error.message }); 87 | } 88 | }; 89 | 90 | export const verifyToken = async (req, res) => { 91 | const { token } = req.cookies; 92 | if (!token) return res.send(false); 93 | 94 | jwt.verify(token, TOKEN_SECRET, async (error, user) => { 95 | if (error) return res.sendStatus(401); 96 | 97 | const userFound = await User.findById(user.id); 98 | if (!userFound) return res.sendStatus(401); 99 | 100 | return res.json({ 101 | id: userFound._id, 102 | username: userFound.username, 103 | email: userFound.email, 104 | }); 105 | }); 106 | }; 107 | 108 | export const logout = async (req, res) => { 109 | res.cookie("token", "", { 110 | httpOnly: true, 111 | secure: true, 112 | expires: new Date(0), 113 | }); 114 | return res.sendStatus(200); 115 | }; 116 | -------------------------------------------------------------------------------- /client/src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | dependencies: 4 | bcryptjs: 5 | specifier: ^2.4.3 6 | version: 2.4.3 7 | cookie-parser: 8 | specifier: ^1.4.6 9 | version: 1.4.6 10 | cors: 11 | specifier: ^2.8.5 12 | version: 2.8.5 13 | express: 14 | specifier: ^4.18.2 15 | version: 4.18.2 16 | jsonwebtoken: 17 | specifier: ^9.0.0 18 | version: 9.0.0 19 | mongoose: 20 | specifier: ^7.2.2 21 | version: 7.2.2 22 | morgan: 23 | specifier: ^1.10.0 24 | version: 1.10.0 25 | zod: 26 | specifier: ^3.21.4 27 | version: 3.21.4 28 | 29 | devDependencies: 30 | cross-env: 31 | specifier: ^7.0.3 32 | version: 7.0.3 33 | dotenv: 34 | specifier: ^16.1.3 35 | version: 16.1.3 36 | nodemon: 37 | specifier: ^2.0.22 38 | version: 2.0.22 39 | 40 | packages: 41 | 42 | /@types/node@18.13.0: 43 | resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==} 44 | dev: false 45 | 46 | /@types/webidl-conversions@7.0.0: 47 | resolution: {integrity: sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==} 48 | dev: false 49 | 50 | /@types/whatwg-url@8.2.2: 51 | resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} 52 | dependencies: 53 | '@types/node': 18.13.0 54 | '@types/webidl-conversions': 7.0.0 55 | dev: false 56 | 57 | /abbrev@1.1.1: 58 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} 59 | dev: true 60 | 61 | /accepts@1.3.8: 62 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 63 | engines: {node: '>= 0.6'} 64 | dependencies: 65 | mime-types: 2.1.35 66 | negotiator: 0.6.3 67 | dev: false 68 | 69 | /anymatch@3.1.3: 70 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 71 | engines: {node: '>= 8'} 72 | dependencies: 73 | normalize-path: 3.0.0 74 | picomatch: 2.3.1 75 | dev: true 76 | 77 | /array-flatten@1.1.1: 78 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 79 | dev: false 80 | 81 | /balanced-match@1.0.2: 82 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 83 | dev: true 84 | 85 | /basic-auth@2.0.1: 86 | resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} 87 | engines: {node: '>= 0.8'} 88 | dependencies: 89 | safe-buffer: 5.1.2 90 | dev: false 91 | 92 | /bcryptjs@2.4.3: 93 | resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} 94 | dev: false 95 | 96 | /binary-extensions@2.2.0: 97 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 98 | engines: {node: '>=8'} 99 | dev: true 100 | 101 | /body-parser@1.20.1: 102 | resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} 103 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 104 | dependencies: 105 | bytes: 3.1.2 106 | content-type: 1.0.5 107 | debug: 2.6.9 108 | depd: 2.0.0 109 | destroy: 1.2.0 110 | http-errors: 2.0.0 111 | iconv-lite: 0.4.24 112 | on-finished: 2.4.1 113 | qs: 6.11.0 114 | raw-body: 2.5.1 115 | type-is: 1.6.18 116 | unpipe: 1.0.0 117 | transitivePeerDependencies: 118 | - supports-color 119 | dev: false 120 | 121 | /brace-expansion@1.1.11: 122 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 123 | dependencies: 124 | balanced-match: 1.0.2 125 | concat-map: 0.0.1 126 | dev: true 127 | 128 | /braces@3.0.2: 129 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 130 | engines: {node: '>=8'} 131 | dependencies: 132 | fill-range: 7.0.1 133 | dev: true 134 | 135 | /bson@5.3.0: 136 | resolution: {integrity: sha512-ukmCZMneMlaC5ebPHXIkP8YJzNl5DC41N5MAIvKDqLggdao342t4McltoJBQfQya/nHBWAcSsYRqlXPoQkTJag==} 137 | engines: {node: '>=14.20.1'} 138 | dev: false 139 | 140 | /buffer-equal-constant-time@1.0.1: 141 | resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} 142 | dev: false 143 | 144 | /bytes@3.1.2: 145 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 146 | engines: {node: '>= 0.8'} 147 | dev: false 148 | 149 | /call-bind@1.0.2: 150 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 151 | dependencies: 152 | function-bind: 1.1.1 153 | get-intrinsic: 1.2.0 154 | dev: false 155 | 156 | /chokidar@3.5.3: 157 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 158 | engines: {node: '>= 8.10.0'} 159 | dependencies: 160 | anymatch: 3.1.3 161 | braces: 3.0.2 162 | glob-parent: 5.1.2 163 | is-binary-path: 2.1.0 164 | is-glob: 4.0.3 165 | normalize-path: 3.0.0 166 | readdirp: 3.6.0 167 | optionalDependencies: 168 | fsevents: 2.3.2 169 | dev: true 170 | 171 | /concat-map@0.0.1: 172 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 173 | dev: true 174 | 175 | /content-disposition@0.5.4: 176 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 177 | engines: {node: '>= 0.6'} 178 | dependencies: 179 | safe-buffer: 5.2.1 180 | dev: false 181 | 182 | /content-type@1.0.5: 183 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 184 | engines: {node: '>= 0.6'} 185 | dev: false 186 | 187 | /cookie-parser@1.4.6: 188 | resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==} 189 | engines: {node: '>= 0.8.0'} 190 | dependencies: 191 | cookie: 0.4.1 192 | cookie-signature: 1.0.6 193 | dev: false 194 | 195 | /cookie-signature@1.0.6: 196 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 197 | dev: false 198 | 199 | /cookie@0.4.1: 200 | resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} 201 | engines: {node: '>= 0.6'} 202 | dev: false 203 | 204 | /cookie@0.5.0: 205 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 206 | engines: {node: '>= 0.6'} 207 | dev: false 208 | 209 | /cors@2.8.5: 210 | resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} 211 | engines: {node: '>= 0.10'} 212 | dependencies: 213 | object-assign: 4.1.1 214 | vary: 1.1.2 215 | dev: false 216 | 217 | /cross-env@7.0.3: 218 | resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} 219 | engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} 220 | hasBin: true 221 | dependencies: 222 | cross-spawn: 7.0.3 223 | dev: true 224 | 225 | /cross-spawn@7.0.3: 226 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 227 | engines: {node: '>= 8'} 228 | dependencies: 229 | path-key: 3.1.1 230 | shebang-command: 2.0.0 231 | which: 2.0.2 232 | dev: true 233 | 234 | /debug@2.6.9: 235 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 236 | peerDependencies: 237 | supports-color: '*' 238 | peerDependenciesMeta: 239 | supports-color: 240 | optional: true 241 | dependencies: 242 | ms: 2.0.0 243 | dev: false 244 | 245 | /debug@3.2.7(supports-color@5.5.0): 246 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 247 | peerDependencies: 248 | supports-color: '*' 249 | peerDependenciesMeta: 250 | supports-color: 251 | optional: true 252 | dependencies: 253 | ms: 2.1.3 254 | supports-color: 5.5.0 255 | dev: true 256 | 257 | /debug@4.3.4: 258 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 259 | engines: {node: '>=6.0'} 260 | peerDependencies: 261 | supports-color: '*' 262 | peerDependenciesMeta: 263 | supports-color: 264 | optional: true 265 | dependencies: 266 | ms: 2.1.2 267 | dev: false 268 | 269 | /depd@2.0.0: 270 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 271 | engines: {node: '>= 0.8'} 272 | dev: false 273 | 274 | /destroy@1.2.0: 275 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 276 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 277 | dev: false 278 | 279 | /dotenv@16.1.3: 280 | resolution: {integrity: sha512-FYssxsmCTtKL72fGBSvb1K9dRz0/VZeWqFme/vSb7r7323x4CRaHu4LvQ5JG3+s6yt2YPbBrkpiEODktfyjI9A==} 281 | engines: {node: '>=12'} 282 | dev: true 283 | 284 | /ecdsa-sig-formatter@1.0.11: 285 | resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} 286 | dependencies: 287 | safe-buffer: 5.2.1 288 | dev: false 289 | 290 | /ee-first@1.1.1: 291 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 292 | dev: false 293 | 294 | /encodeurl@1.0.2: 295 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 296 | engines: {node: '>= 0.8'} 297 | dev: false 298 | 299 | /escape-html@1.0.3: 300 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 301 | dev: false 302 | 303 | /etag@1.8.1: 304 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 305 | engines: {node: '>= 0.6'} 306 | dev: false 307 | 308 | /express@4.18.2: 309 | resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} 310 | engines: {node: '>= 0.10.0'} 311 | dependencies: 312 | accepts: 1.3.8 313 | array-flatten: 1.1.1 314 | body-parser: 1.20.1 315 | content-disposition: 0.5.4 316 | content-type: 1.0.5 317 | cookie: 0.5.0 318 | cookie-signature: 1.0.6 319 | debug: 2.6.9 320 | depd: 2.0.0 321 | encodeurl: 1.0.2 322 | escape-html: 1.0.3 323 | etag: 1.8.1 324 | finalhandler: 1.2.0 325 | fresh: 0.5.2 326 | http-errors: 2.0.0 327 | merge-descriptors: 1.0.1 328 | methods: 1.1.2 329 | on-finished: 2.4.1 330 | parseurl: 1.3.3 331 | path-to-regexp: 0.1.7 332 | proxy-addr: 2.0.7 333 | qs: 6.11.0 334 | range-parser: 1.2.1 335 | safe-buffer: 5.2.1 336 | send: 0.18.0 337 | serve-static: 1.15.0 338 | setprototypeof: 1.2.0 339 | statuses: 2.0.1 340 | type-is: 1.6.18 341 | utils-merge: 1.0.1 342 | vary: 1.1.2 343 | transitivePeerDependencies: 344 | - supports-color 345 | dev: false 346 | 347 | /fill-range@7.0.1: 348 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 349 | engines: {node: '>=8'} 350 | dependencies: 351 | to-regex-range: 5.0.1 352 | dev: true 353 | 354 | /finalhandler@1.2.0: 355 | resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} 356 | engines: {node: '>= 0.8'} 357 | dependencies: 358 | debug: 2.6.9 359 | encodeurl: 1.0.2 360 | escape-html: 1.0.3 361 | on-finished: 2.4.1 362 | parseurl: 1.3.3 363 | statuses: 2.0.1 364 | unpipe: 1.0.0 365 | transitivePeerDependencies: 366 | - supports-color 367 | dev: false 368 | 369 | /forwarded@0.2.0: 370 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 371 | engines: {node: '>= 0.6'} 372 | dev: false 373 | 374 | /fresh@0.5.2: 375 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 376 | engines: {node: '>= 0.6'} 377 | dev: false 378 | 379 | /fsevents@2.3.2: 380 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 381 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 382 | os: [darwin] 383 | requiresBuild: true 384 | dev: true 385 | optional: true 386 | 387 | /function-bind@1.1.1: 388 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 389 | dev: false 390 | 391 | /get-intrinsic@1.2.0: 392 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 393 | dependencies: 394 | function-bind: 1.1.1 395 | has: 1.0.3 396 | has-symbols: 1.0.3 397 | dev: false 398 | 399 | /glob-parent@5.1.2: 400 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 401 | engines: {node: '>= 6'} 402 | dependencies: 403 | is-glob: 4.0.3 404 | dev: true 405 | 406 | /has-flag@3.0.0: 407 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 408 | engines: {node: '>=4'} 409 | dev: true 410 | 411 | /has-symbols@1.0.3: 412 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 413 | engines: {node: '>= 0.4'} 414 | dev: false 415 | 416 | /has@1.0.3: 417 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 418 | engines: {node: '>= 0.4.0'} 419 | dependencies: 420 | function-bind: 1.1.1 421 | dev: false 422 | 423 | /http-errors@2.0.0: 424 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 425 | engines: {node: '>= 0.8'} 426 | dependencies: 427 | depd: 2.0.0 428 | inherits: 2.0.4 429 | setprototypeof: 1.2.0 430 | statuses: 2.0.1 431 | toidentifier: 1.0.1 432 | dev: false 433 | 434 | /iconv-lite@0.4.24: 435 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 436 | engines: {node: '>=0.10.0'} 437 | dependencies: 438 | safer-buffer: 2.1.2 439 | dev: false 440 | 441 | /ignore-by-default@1.0.1: 442 | resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} 443 | dev: true 444 | 445 | /inherits@2.0.4: 446 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 447 | dev: false 448 | 449 | /ip@2.0.0: 450 | resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} 451 | dev: false 452 | 453 | /ipaddr.js@1.9.1: 454 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 455 | engines: {node: '>= 0.10'} 456 | dev: false 457 | 458 | /is-binary-path@2.1.0: 459 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 460 | engines: {node: '>=8'} 461 | dependencies: 462 | binary-extensions: 2.2.0 463 | dev: true 464 | 465 | /is-extglob@2.1.1: 466 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 467 | engines: {node: '>=0.10.0'} 468 | dev: true 469 | 470 | /is-glob@4.0.3: 471 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 472 | engines: {node: '>=0.10.0'} 473 | dependencies: 474 | is-extglob: 2.1.1 475 | dev: true 476 | 477 | /is-number@7.0.0: 478 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 479 | engines: {node: '>=0.12.0'} 480 | dev: true 481 | 482 | /isexe@2.0.0: 483 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 484 | dev: true 485 | 486 | /jsonwebtoken@9.0.0: 487 | resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} 488 | engines: {node: '>=12', npm: '>=6'} 489 | dependencies: 490 | jws: 3.2.2 491 | lodash: 4.17.21 492 | ms: 2.1.3 493 | semver: 7.3.8 494 | dev: false 495 | 496 | /jwa@1.4.1: 497 | resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} 498 | dependencies: 499 | buffer-equal-constant-time: 1.0.1 500 | ecdsa-sig-formatter: 1.0.11 501 | safe-buffer: 5.2.1 502 | dev: false 503 | 504 | /jws@3.2.2: 505 | resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} 506 | dependencies: 507 | jwa: 1.4.1 508 | safe-buffer: 5.2.1 509 | dev: false 510 | 511 | /kareem@2.5.1: 512 | resolution: {integrity: sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==} 513 | engines: {node: '>=12.0.0'} 514 | dev: false 515 | 516 | /lodash@4.17.21: 517 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 518 | dev: false 519 | 520 | /lru-cache@6.0.0: 521 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 522 | engines: {node: '>=10'} 523 | dependencies: 524 | yallist: 4.0.0 525 | dev: false 526 | 527 | /media-typer@0.3.0: 528 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 529 | engines: {node: '>= 0.6'} 530 | dev: false 531 | 532 | /memory-pager@1.5.0: 533 | resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} 534 | dev: false 535 | optional: true 536 | 537 | /merge-descriptors@1.0.1: 538 | resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} 539 | dev: false 540 | 541 | /methods@1.1.2: 542 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 543 | engines: {node: '>= 0.6'} 544 | dev: false 545 | 546 | /mime-db@1.52.0: 547 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 548 | engines: {node: '>= 0.6'} 549 | dev: false 550 | 551 | /mime-types@2.1.35: 552 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 553 | engines: {node: '>= 0.6'} 554 | dependencies: 555 | mime-db: 1.52.0 556 | dev: false 557 | 558 | /mime@1.6.0: 559 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 560 | engines: {node: '>=4'} 561 | hasBin: true 562 | dev: false 563 | 564 | /minimatch@3.1.2: 565 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 566 | dependencies: 567 | brace-expansion: 1.1.11 568 | dev: true 569 | 570 | /mongodb-connection-string-url@2.6.0: 571 | resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==} 572 | dependencies: 573 | '@types/whatwg-url': 8.2.2 574 | whatwg-url: 11.0.0 575 | dev: false 576 | 577 | /mongodb@5.5.0: 578 | resolution: {integrity: sha512-XgrkUgAAdfnZKQfk5AsYL8j7O99WHd4YXPxYxnh8dZxD+ekYWFRA3JktUsBnfg+455Smf75/+asoU/YLwNGoQQ==} 579 | engines: {node: '>=14.20.1'} 580 | peerDependencies: 581 | '@aws-sdk/credential-providers': ^3.201.0 582 | mongodb-client-encryption: '>=2.3.0 <3' 583 | snappy: ^7.2.2 584 | peerDependenciesMeta: 585 | '@aws-sdk/credential-providers': 586 | optional: true 587 | mongodb-client-encryption: 588 | optional: true 589 | snappy: 590 | optional: true 591 | dependencies: 592 | bson: 5.3.0 593 | mongodb-connection-string-url: 2.6.0 594 | socks: 2.7.1 595 | optionalDependencies: 596 | saslprep: 1.0.3 597 | dev: false 598 | 599 | /mongoose@7.2.2: 600 | resolution: {integrity: sha512-JPBMTF+oYfLGVFWbHSZ/H+f1GajNanGLYH6c/P0nE3bNJfwGhX573vieGR0kNlNhj3cZk8WCPrnVsTNeUmFUag==} 601 | engines: {node: '>=14.20.1'} 602 | dependencies: 603 | bson: 5.3.0 604 | kareem: 2.5.1 605 | mongodb: 5.5.0 606 | mpath: 0.9.0 607 | mquery: 5.0.0 608 | ms: 2.1.3 609 | sift: 16.0.1 610 | transitivePeerDependencies: 611 | - '@aws-sdk/credential-providers' 612 | - mongodb-client-encryption 613 | - snappy 614 | - supports-color 615 | dev: false 616 | 617 | /morgan@1.10.0: 618 | resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} 619 | engines: {node: '>= 0.8.0'} 620 | dependencies: 621 | basic-auth: 2.0.1 622 | debug: 2.6.9 623 | depd: 2.0.0 624 | on-finished: 2.3.0 625 | on-headers: 1.0.2 626 | transitivePeerDependencies: 627 | - supports-color 628 | dev: false 629 | 630 | /mpath@0.9.0: 631 | resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==} 632 | engines: {node: '>=4.0.0'} 633 | dev: false 634 | 635 | /mquery@5.0.0: 636 | resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} 637 | engines: {node: '>=14.0.0'} 638 | dependencies: 639 | debug: 4.3.4 640 | transitivePeerDependencies: 641 | - supports-color 642 | dev: false 643 | 644 | /ms@2.0.0: 645 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 646 | dev: false 647 | 648 | /ms@2.1.2: 649 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 650 | dev: false 651 | 652 | /ms@2.1.3: 653 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 654 | 655 | /negotiator@0.6.3: 656 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 657 | engines: {node: '>= 0.6'} 658 | dev: false 659 | 660 | /nodemon@2.0.22: 661 | resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} 662 | engines: {node: '>=8.10.0'} 663 | hasBin: true 664 | dependencies: 665 | chokidar: 3.5.3 666 | debug: 3.2.7(supports-color@5.5.0) 667 | ignore-by-default: 1.0.1 668 | minimatch: 3.1.2 669 | pstree.remy: 1.1.8 670 | semver: 5.7.1 671 | simple-update-notifier: 1.1.0 672 | supports-color: 5.5.0 673 | touch: 3.1.0 674 | undefsafe: 2.0.5 675 | dev: true 676 | 677 | /nopt@1.0.10: 678 | resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} 679 | hasBin: true 680 | dependencies: 681 | abbrev: 1.1.1 682 | dev: true 683 | 684 | /normalize-path@3.0.0: 685 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 686 | engines: {node: '>=0.10.0'} 687 | dev: true 688 | 689 | /object-assign@4.1.1: 690 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 691 | engines: {node: '>=0.10.0'} 692 | dev: false 693 | 694 | /object-inspect@1.12.3: 695 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 696 | dev: false 697 | 698 | /on-finished@2.3.0: 699 | resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} 700 | engines: {node: '>= 0.8'} 701 | dependencies: 702 | ee-first: 1.1.1 703 | dev: false 704 | 705 | /on-finished@2.4.1: 706 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 707 | engines: {node: '>= 0.8'} 708 | dependencies: 709 | ee-first: 1.1.1 710 | dev: false 711 | 712 | /on-headers@1.0.2: 713 | resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} 714 | engines: {node: '>= 0.8'} 715 | dev: false 716 | 717 | /parseurl@1.3.3: 718 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 719 | engines: {node: '>= 0.8'} 720 | dev: false 721 | 722 | /path-key@3.1.1: 723 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 724 | engines: {node: '>=8'} 725 | dev: true 726 | 727 | /path-to-regexp@0.1.7: 728 | resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} 729 | dev: false 730 | 731 | /picomatch@2.3.1: 732 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 733 | engines: {node: '>=8.6'} 734 | dev: true 735 | 736 | /proxy-addr@2.0.7: 737 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 738 | engines: {node: '>= 0.10'} 739 | dependencies: 740 | forwarded: 0.2.0 741 | ipaddr.js: 1.9.1 742 | dev: false 743 | 744 | /pstree.remy@1.1.8: 745 | resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} 746 | dev: true 747 | 748 | /punycode@2.3.0: 749 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 750 | engines: {node: '>=6'} 751 | dev: false 752 | 753 | /qs@6.11.0: 754 | resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} 755 | engines: {node: '>=0.6'} 756 | dependencies: 757 | side-channel: 1.0.4 758 | dev: false 759 | 760 | /range-parser@1.2.1: 761 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 762 | engines: {node: '>= 0.6'} 763 | dev: false 764 | 765 | /raw-body@2.5.1: 766 | resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} 767 | engines: {node: '>= 0.8'} 768 | dependencies: 769 | bytes: 3.1.2 770 | http-errors: 2.0.0 771 | iconv-lite: 0.4.24 772 | unpipe: 1.0.0 773 | dev: false 774 | 775 | /readdirp@3.6.0: 776 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 777 | engines: {node: '>=8.10.0'} 778 | dependencies: 779 | picomatch: 2.3.1 780 | dev: true 781 | 782 | /safe-buffer@5.1.2: 783 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 784 | dev: false 785 | 786 | /safe-buffer@5.2.1: 787 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 788 | dev: false 789 | 790 | /safer-buffer@2.1.2: 791 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 792 | dev: false 793 | 794 | /saslprep@1.0.3: 795 | resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==} 796 | engines: {node: '>=6'} 797 | requiresBuild: true 798 | dependencies: 799 | sparse-bitfield: 3.0.3 800 | dev: false 801 | optional: true 802 | 803 | /semver@5.7.1: 804 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 805 | hasBin: true 806 | dev: true 807 | 808 | /semver@7.0.0: 809 | resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} 810 | hasBin: true 811 | dev: true 812 | 813 | /semver@7.3.8: 814 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 815 | engines: {node: '>=10'} 816 | hasBin: true 817 | dependencies: 818 | lru-cache: 6.0.0 819 | dev: false 820 | 821 | /send@0.18.0: 822 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 823 | engines: {node: '>= 0.8.0'} 824 | dependencies: 825 | debug: 2.6.9 826 | depd: 2.0.0 827 | destroy: 1.2.0 828 | encodeurl: 1.0.2 829 | escape-html: 1.0.3 830 | etag: 1.8.1 831 | fresh: 0.5.2 832 | http-errors: 2.0.0 833 | mime: 1.6.0 834 | ms: 2.1.3 835 | on-finished: 2.4.1 836 | range-parser: 1.2.1 837 | statuses: 2.0.1 838 | transitivePeerDependencies: 839 | - supports-color 840 | dev: false 841 | 842 | /serve-static@1.15.0: 843 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} 844 | engines: {node: '>= 0.8.0'} 845 | dependencies: 846 | encodeurl: 1.0.2 847 | escape-html: 1.0.3 848 | parseurl: 1.3.3 849 | send: 0.18.0 850 | transitivePeerDependencies: 851 | - supports-color 852 | dev: false 853 | 854 | /setprototypeof@1.2.0: 855 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 856 | dev: false 857 | 858 | /shebang-command@2.0.0: 859 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 860 | engines: {node: '>=8'} 861 | dependencies: 862 | shebang-regex: 3.0.0 863 | dev: true 864 | 865 | /shebang-regex@3.0.0: 866 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 867 | engines: {node: '>=8'} 868 | dev: true 869 | 870 | /side-channel@1.0.4: 871 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 872 | dependencies: 873 | call-bind: 1.0.2 874 | get-intrinsic: 1.2.0 875 | object-inspect: 1.12.3 876 | dev: false 877 | 878 | /sift@16.0.1: 879 | resolution: {integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==} 880 | dev: false 881 | 882 | /simple-update-notifier@1.1.0: 883 | resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} 884 | engines: {node: '>=8.10.0'} 885 | dependencies: 886 | semver: 7.0.0 887 | dev: true 888 | 889 | /smart-buffer@4.2.0: 890 | resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} 891 | engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} 892 | dev: false 893 | 894 | /socks@2.7.1: 895 | resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} 896 | engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} 897 | dependencies: 898 | ip: 2.0.0 899 | smart-buffer: 4.2.0 900 | dev: false 901 | 902 | /sparse-bitfield@3.0.3: 903 | resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} 904 | dependencies: 905 | memory-pager: 1.5.0 906 | dev: false 907 | optional: true 908 | 909 | /statuses@2.0.1: 910 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 911 | engines: {node: '>= 0.8'} 912 | dev: false 913 | 914 | /supports-color@5.5.0: 915 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 916 | engines: {node: '>=4'} 917 | dependencies: 918 | has-flag: 3.0.0 919 | dev: true 920 | 921 | /to-regex-range@5.0.1: 922 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 923 | engines: {node: '>=8.0'} 924 | dependencies: 925 | is-number: 7.0.0 926 | dev: true 927 | 928 | /toidentifier@1.0.1: 929 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 930 | engines: {node: '>=0.6'} 931 | dev: false 932 | 933 | /touch@3.1.0: 934 | resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} 935 | hasBin: true 936 | dependencies: 937 | nopt: 1.0.10 938 | dev: true 939 | 940 | /tr46@3.0.0: 941 | resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} 942 | engines: {node: '>=12'} 943 | dependencies: 944 | punycode: 2.3.0 945 | dev: false 946 | 947 | /type-is@1.6.18: 948 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 949 | engines: {node: '>= 0.6'} 950 | dependencies: 951 | media-typer: 0.3.0 952 | mime-types: 2.1.35 953 | dev: false 954 | 955 | /undefsafe@2.0.5: 956 | resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} 957 | dev: true 958 | 959 | /unpipe@1.0.0: 960 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 961 | engines: {node: '>= 0.8'} 962 | dev: false 963 | 964 | /utils-merge@1.0.1: 965 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 966 | engines: {node: '>= 0.4.0'} 967 | dev: false 968 | 969 | /vary@1.1.2: 970 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 971 | engines: {node: '>= 0.8'} 972 | dev: false 973 | 974 | /webidl-conversions@7.0.0: 975 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 976 | engines: {node: '>=12'} 977 | dev: false 978 | 979 | /whatwg-url@11.0.0: 980 | resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} 981 | engines: {node: '>=12'} 982 | dependencies: 983 | tr46: 3.0.0 984 | webidl-conversions: 7.0.0 985 | dev: false 986 | 987 | /which@2.0.2: 988 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 989 | engines: {node: '>= 8'} 990 | hasBin: true 991 | dependencies: 992 | isexe: 2.0.0 993 | dev: true 994 | 995 | /yallist@4.0.0: 996 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 997 | dev: false 998 | 999 | /zod@3.21.4: 1000 | resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} 1001 | dev: false 1002 | -------------------------------------------------------------------------------- /client/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | dependencies: 4 | '@hookform/resolvers': 5 | specifier: ^3.1.0 6 | version: 3.1.0(react-hook-form@7.44.3) 7 | axios: 8 | specifier: ^1.4.0 9 | version: 1.4.0 10 | dayjs: 11 | specifier: ^1.11.7 12 | version: 1.11.7 13 | dayjs-plugin-utc: 14 | specifier: ^0.1.2 15 | version: 0.1.2 16 | js-cookie: 17 | specifier: ^3.0.5 18 | version: 3.0.5 19 | react: 20 | specifier: ^18.2.0 21 | version: 18.2.0 22 | react-dom: 23 | specifier: ^18.2.0 24 | version: 18.2.0(react@18.2.0) 25 | react-hook-form: 26 | specifier: ^7.44.3 27 | version: 7.44.3(react@18.2.0) 28 | react-icons: 29 | specifier: ^4.9.0 30 | version: 4.9.0(react@18.2.0) 31 | react-router-dom: 32 | specifier: ^6.11.2 33 | version: 6.11.2(react-dom@18.2.0)(react@18.2.0) 34 | zod: 35 | specifier: ^3.21.4 36 | version: 3.21.4 37 | 38 | devDependencies: 39 | '@types/react': 40 | specifier: ^18.2.8 41 | version: 18.2.8 42 | '@types/react-dom': 43 | specifier: ^18.2.4 44 | version: 18.2.4 45 | '@vitejs/plugin-react': 46 | specifier: ^4.0.0 47 | version: 4.0.0(vite@4.3.9) 48 | autoprefixer: 49 | specifier: ^10.4.14 50 | version: 10.4.14(postcss@8.4.24) 51 | postcss: 52 | specifier: ^8.4.24 53 | version: 8.4.24 54 | tailwindcss: 55 | specifier: ^3.3.2 56 | version: 3.3.2 57 | vite: 58 | specifier: ^4.3.9 59 | version: 4.3.9 60 | 61 | packages: 62 | 63 | /@alloc/quick-lru@5.2.0: 64 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 65 | engines: {node: '>=10'} 66 | dev: true 67 | 68 | /@ampproject/remapping@2.2.0: 69 | resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} 70 | engines: {node: '>=6.0.0'} 71 | dependencies: 72 | '@jridgewell/gen-mapping': 0.1.1 73 | '@jridgewell/trace-mapping': 0.3.17 74 | dev: true 75 | 76 | /@babel/code-frame@7.21.4: 77 | resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} 78 | engines: {node: '>=6.9.0'} 79 | dependencies: 80 | '@babel/highlight': 7.18.6 81 | dev: true 82 | 83 | /@babel/compat-data@7.22.3: 84 | resolution: {integrity: sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==} 85 | engines: {node: '>=6.9.0'} 86 | dev: true 87 | 88 | /@babel/core@7.22.1: 89 | resolution: {integrity: sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==} 90 | engines: {node: '>=6.9.0'} 91 | dependencies: 92 | '@ampproject/remapping': 2.2.0 93 | '@babel/code-frame': 7.21.4 94 | '@babel/generator': 7.22.3 95 | '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) 96 | '@babel/helper-module-transforms': 7.22.1 97 | '@babel/helpers': 7.22.3 98 | '@babel/parser': 7.22.4 99 | '@babel/template': 7.21.9 100 | '@babel/traverse': 7.22.4 101 | '@babel/types': 7.22.4 102 | convert-source-map: 1.9.0 103 | debug: 4.3.4 104 | gensync: 1.0.0-beta.2 105 | json5: 2.2.3 106 | semver: 6.3.0 107 | transitivePeerDependencies: 108 | - supports-color 109 | dev: true 110 | 111 | /@babel/generator@7.22.3: 112 | resolution: {integrity: sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==} 113 | engines: {node: '>=6.9.0'} 114 | dependencies: 115 | '@babel/types': 7.22.4 116 | '@jridgewell/gen-mapping': 0.3.2 117 | '@jridgewell/trace-mapping': 0.3.17 118 | jsesc: 2.5.2 119 | dev: true 120 | 121 | /@babel/helper-compilation-targets@7.22.1(@babel/core@7.22.1): 122 | resolution: {integrity: sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==} 123 | engines: {node: '>=6.9.0'} 124 | peerDependencies: 125 | '@babel/core': ^7.0.0 126 | dependencies: 127 | '@babel/compat-data': 7.22.3 128 | '@babel/core': 7.22.1 129 | '@babel/helper-validator-option': 7.21.0 130 | browserslist: 4.21.5 131 | lru-cache: 5.1.1 132 | semver: 6.3.0 133 | dev: true 134 | 135 | /@babel/helper-environment-visitor@7.22.1: 136 | resolution: {integrity: sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==} 137 | engines: {node: '>=6.9.0'} 138 | dev: true 139 | 140 | /@babel/helper-function-name@7.21.0: 141 | resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} 142 | engines: {node: '>=6.9.0'} 143 | dependencies: 144 | '@babel/template': 7.21.9 145 | '@babel/types': 7.22.4 146 | dev: true 147 | 148 | /@babel/helper-hoist-variables@7.18.6: 149 | resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} 150 | engines: {node: '>=6.9.0'} 151 | dependencies: 152 | '@babel/types': 7.22.4 153 | dev: true 154 | 155 | /@babel/helper-module-imports@7.21.4: 156 | resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} 157 | engines: {node: '>=6.9.0'} 158 | dependencies: 159 | '@babel/types': 7.22.4 160 | dev: true 161 | 162 | /@babel/helper-module-transforms@7.22.1: 163 | resolution: {integrity: sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==} 164 | engines: {node: '>=6.9.0'} 165 | dependencies: 166 | '@babel/helper-environment-visitor': 7.22.1 167 | '@babel/helper-module-imports': 7.21.4 168 | '@babel/helper-simple-access': 7.21.5 169 | '@babel/helper-split-export-declaration': 7.18.6 170 | '@babel/helper-validator-identifier': 7.19.1 171 | '@babel/template': 7.21.9 172 | '@babel/traverse': 7.22.4 173 | '@babel/types': 7.22.4 174 | transitivePeerDependencies: 175 | - supports-color 176 | dev: true 177 | 178 | /@babel/helper-plugin-utils@7.20.2: 179 | resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} 180 | engines: {node: '>=6.9.0'} 181 | dev: true 182 | 183 | /@babel/helper-simple-access@7.21.5: 184 | resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} 185 | engines: {node: '>=6.9.0'} 186 | dependencies: 187 | '@babel/types': 7.22.4 188 | dev: true 189 | 190 | /@babel/helper-split-export-declaration@7.18.6: 191 | resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} 192 | engines: {node: '>=6.9.0'} 193 | dependencies: 194 | '@babel/types': 7.22.4 195 | dev: true 196 | 197 | /@babel/helper-string-parser@7.21.5: 198 | resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} 199 | engines: {node: '>=6.9.0'} 200 | dev: true 201 | 202 | /@babel/helper-validator-identifier@7.19.1: 203 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 204 | engines: {node: '>=6.9.0'} 205 | dev: true 206 | 207 | /@babel/helper-validator-option@7.21.0: 208 | resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} 209 | engines: {node: '>=6.9.0'} 210 | dev: true 211 | 212 | /@babel/helpers@7.22.3: 213 | resolution: {integrity: sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==} 214 | engines: {node: '>=6.9.0'} 215 | dependencies: 216 | '@babel/template': 7.21.9 217 | '@babel/traverse': 7.22.4 218 | '@babel/types': 7.22.4 219 | transitivePeerDependencies: 220 | - supports-color 221 | dev: true 222 | 223 | /@babel/highlight@7.18.6: 224 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 225 | engines: {node: '>=6.9.0'} 226 | dependencies: 227 | '@babel/helper-validator-identifier': 7.19.1 228 | chalk: 2.4.2 229 | js-tokens: 4.0.0 230 | dev: true 231 | 232 | /@babel/parser@7.22.4: 233 | resolution: {integrity: sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==} 234 | engines: {node: '>=6.0.0'} 235 | hasBin: true 236 | dependencies: 237 | '@babel/types': 7.22.4 238 | dev: true 239 | 240 | /@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.22.1): 241 | resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} 242 | engines: {node: '>=6.9.0'} 243 | peerDependencies: 244 | '@babel/core': ^7.0.0-0 245 | dependencies: 246 | '@babel/core': 7.22.1 247 | '@babel/helper-plugin-utils': 7.20.2 248 | dev: true 249 | 250 | /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.22.1): 251 | resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} 252 | engines: {node: '>=6.9.0'} 253 | peerDependencies: 254 | '@babel/core': ^7.0.0-0 255 | dependencies: 256 | '@babel/core': 7.22.1 257 | '@babel/helper-plugin-utils': 7.20.2 258 | dev: true 259 | 260 | /@babel/template@7.21.9: 261 | resolution: {integrity: sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==} 262 | engines: {node: '>=6.9.0'} 263 | dependencies: 264 | '@babel/code-frame': 7.21.4 265 | '@babel/parser': 7.22.4 266 | '@babel/types': 7.22.4 267 | dev: true 268 | 269 | /@babel/traverse@7.22.4: 270 | resolution: {integrity: sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==} 271 | engines: {node: '>=6.9.0'} 272 | dependencies: 273 | '@babel/code-frame': 7.21.4 274 | '@babel/generator': 7.22.3 275 | '@babel/helper-environment-visitor': 7.22.1 276 | '@babel/helper-function-name': 7.21.0 277 | '@babel/helper-hoist-variables': 7.18.6 278 | '@babel/helper-split-export-declaration': 7.18.6 279 | '@babel/parser': 7.22.4 280 | '@babel/types': 7.22.4 281 | debug: 4.3.4 282 | globals: 11.12.0 283 | transitivePeerDependencies: 284 | - supports-color 285 | dev: true 286 | 287 | /@babel/types@7.22.4: 288 | resolution: {integrity: sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==} 289 | engines: {node: '>=6.9.0'} 290 | dependencies: 291 | '@babel/helper-string-parser': 7.21.5 292 | '@babel/helper-validator-identifier': 7.19.1 293 | to-fast-properties: 2.0.0 294 | dev: true 295 | 296 | /@esbuild/android-arm64@0.17.19: 297 | resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 298 | engines: {node: '>=12'} 299 | cpu: [arm64] 300 | os: [android] 301 | requiresBuild: true 302 | dev: true 303 | optional: true 304 | 305 | /@esbuild/android-arm@0.17.19: 306 | resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 307 | engines: {node: '>=12'} 308 | cpu: [arm] 309 | os: [android] 310 | requiresBuild: true 311 | dev: true 312 | optional: true 313 | 314 | /@esbuild/android-x64@0.17.19: 315 | resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 316 | engines: {node: '>=12'} 317 | cpu: [x64] 318 | os: [android] 319 | requiresBuild: true 320 | dev: true 321 | optional: true 322 | 323 | /@esbuild/darwin-arm64@0.17.19: 324 | resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 325 | engines: {node: '>=12'} 326 | cpu: [arm64] 327 | os: [darwin] 328 | requiresBuild: true 329 | dev: true 330 | optional: true 331 | 332 | /@esbuild/darwin-x64@0.17.19: 333 | resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 334 | engines: {node: '>=12'} 335 | cpu: [x64] 336 | os: [darwin] 337 | requiresBuild: true 338 | dev: true 339 | optional: true 340 | 341 | /@esbuild/freebsd-arm64@0.17.19: 342 | resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 343 | engines: {node: '>=12'} 344 | cpu: [arm64] 345 | os: [freebsd] 346 | requiresBuild: true 347 | dev: true 348 | optional: true 349 | 350 | /@esbuild/freebsd-x64@0.17.19: 351 | resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 352 | engines: {node: '>=12'} 353 | cpu: [x64] 354 | os: [freebsd] 355 | requiresBuild: true 356 | dev: true 357 | optional: true 358 | 359 | /@esbuild/linux-arm64@0.17.19: 360 | resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 361 | engines: {node: '>=12'} 362 | cpu: [arm64] 363 | os: [linux] 364 | requiresBuild: true 365 | dev: true 366 | optional: true 367 | 368 | /@esbuild/linux-arm@0.17.19: 369 | resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 370 | engines: {node: '>=12'} 371 | cpu: [arm] 372 | os: [linux] 373 | requiresBuild: true 374 | dev: true 375 | optional: true 376 | 377 | /@esbuild/linux-ia32@0.17.19: 378 | resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 379 | engines: {node: '>=12'} 380 | cpu: [ia32] 381 | os: [linux] 382 | requiresBuild: true 383 | dev: true 384 | optional: true 385 | 386 | /@esbuild/linux-loong64@0.17.19: 387 | resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 388 | engines: {node: '>=12'} 389 | cpu: [loong64] 390 | os: [linux] 391 | requiresBuild: true 392 | dev: true 393 | optional: true 394 | 395 | /@esbuild/linux-mips64el@0.17.19: 396 | resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 397 | engines: {node: '>=12'} 398 | cpu: [mips64el] 399 | os: [linux] 400 | requiresBuild: true 401 | dev: true 402 | optional: true 403 | 404 | /@esbuild/linux-ppc64@0.17.19: 405 | resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 406 | engines: {node: '>=12'} 407 | cpu: [ppc64] 408 | os: [linux] 409 | requiresBuild: true 410 | dev: true 411 | optional: true 412 | 413 | /@esbuild/linux-riscv64@0.17.19: 414 | resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 415 | engines: {node: '>=12'} 416 | cpu: [riscv64] 417 | os: [linux] 418 | requiresBuild: true 419 | dev: true 420 | optional: true 421 | 422 | /@esbuild/linux-s390x@0.17.19: 423 | resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 424 | engines: {node: '>=12'} 425 | cpu: [s390x] 426 | os: [linux] 427 | requiresBuild: true 428 | dev: true 429 | optional: true 430 | 431 | /@esbuild/linux-x64@0.17.19: 432 | resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 433 | engines: {node: '>=12'} 434 | cpu: [x64] 435 | os: [linux] 436 | requiresBuild: true 437 | dev: true 438 | optional: true 439 | 440 | /@esbuild/netbsd-x64@0.17.19: 441 | resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 442 | engines: {node: '>=12'} 443 | cpu: [x64] 444 | os: [netbsd] 445 | requiresBuild: true 446 | dev: true 447 | optional: true 448 | 449 | /@esbuild/openbsd-x64@0.17.19: 450 | resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 451 | engines: {node: '>=12'} 452 | cpu: [x64] 453 | os: [openbsd] 454 | requiresBuild: true 455 | dev: true 456 | optional: true 457 | 458 | /@esbuild/sunos-x64@0.17.19: 459 | resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 460 | engines: {node: '>=12'} 461 | cpu: [x64] 462 | os: [sunos] 463 | requiresBuild: true 464 | dev: true 465 | optional: true 466 | 467 | /@esbuild/win32-arm64@0.17.19: 468 | resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 469 | engines: {node: '>=12'} 470 | cpu: [arm64] 471 | os: [win32] 472 | requiresBuild: true 473 | dev: true 474 | optional: true 475 | 476 | /@esbuild/win32-ia32@0.17.19: 477 | resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 478 | engines: {node: '>=12'} 479 | cpu: [ia32] 480 | os: [win32] 481 | requiresBuild: true 482 | dev: true 483 | optional: true 484 | 485 | /@esbuild/win32-x64@0.17.19: 486 | resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 487 | engines: {node: '>=12'} 488 | cpu: [x64] 489 | os: [win32] 490 | requiresBuild: true 491 | dev: true 492 | optional: true 493 | 494 | /@hookform/resolvers@3.1.0(react-hook-form@7.44.3): 495 | resolution: {integrity: sha512-z0A8K+Nxq+f83Whm/ajlwE6VtQlp/yPHZnXw7XWVPIGm1Vx0QV8KThU3BpbBRfAZ7/dYqCKKBNnQh85BkmBKkA==} 496 | peerDependencies: 497 | react-hook-form: ^7.0.0 498 | dependencies: 499 | react-hook-form: 7.44.3(react@18.2.0) 500 | dev: false 501 | 502 | /@jridgewell/gen-mapping@0.1.1: 503 | resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} 504 | engines: {node: '>=6.0.0'} 505 | dependencies: 506 | '@jridgewell/set-array': 1.1.2 507 | '@jridgewell/sourcemap-codec': 1.4.14 508 | dev: true 509 | 510 | /@jridgewell/gen-mapping@0.3.2: 511 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} 512 | engines: {node: '>=6.0.0'} 513 | dependencies: 514 | '@jridgewell/set-array': 1.1.2 515 | '@jridgewell/sourcemap-codec': 1.4.14 516 | '@jridgewell/trace-mapping': 0.3.17 517 | dev: true 518 | 519 | /@jridgewell/resolve-uri@3.1.0: 520 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 521 | engines: {node: '>=6.0.0'} 522 | dev: true 523 | 524 | /@jridgewell/set-array@1.1.2: 525 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 526 | engines: {node: '>=6.0.0'} 527 | dev: true 528 | 529 | /@jridgewell/sourcemap-codec@1.4.14: 530 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 531 | dev: true 532 | 533 | /@jridgewell/trace-mapping@0.3.17: 534 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} 535 | dependencies: 536 | '@jridgewell/resolve-uri': 3.1.0 537 | '@jridgewell/sourcemap-codec': 1.4.14 538 | dev: true 539 | 540 | /@nodelib/fs.scandir@2.1.5: 541 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 542 | engines: {node: '>= 8'} 543 | dependencies: 544 | '@nodelib/fs.stat': 2.0.5 545 | run-parallel: 1.2.0 546 | dev: true 547 | 548 | /@nodelib/fs.stat@2.0.5: 549 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 550 | engines: {node: '>= 8'} 551 | dev: true 552 | 553 | /@nodelib/fs.walk@1.2.8: 554 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 555 | engines: {node: '>= 8'} 556 | dependencies: 557 | '@nodelib/fs.scandir': 2.1.5 558 | fastq: 1.15.0 559 | dev: true 560 | 561 | /@remix-run/router@1.6.2: 562 | resolution: {integrity: sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==} 563 | engines: {node: '>=14'} 564 | dev: false 565 | 566 | /@types/prop-types@15.7.5: 567 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 568 | dev: true 569 | 570 | /@types/react-dom@18.2.4: 571 | resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==} 572 | dependencies: 573 | '@types/react': 18.2.8 574 | dev: true 575 | 576 | /@types/react@18.2.8: 577 | resolution: {integrity: sha512-lTyWUNrd8ntVkqycEEplasWy2OxNlShj3zqS0LuB1ENUGis5HodmhM7DtCoUGbxj3VW/WsGA0DUhpG6XrM7gPA==} 578 | dependencies: 579 | '@types/prop-types': 15.7.5 580 | '@types/scheduler': 0.16.2 581 | csstype: 3.1.1 582 | dev: true 583 | 584 | /@types/scheduler@0.16.2: 585 | resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} 586 | dev: true 587 | 588 | /@vitejs/plugin-react@4.0.0(vite@4.3.9): 589 | resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} 590 | engines: {node: ^14.18.0 || >=16.0.0} 591 | peerDependencies: 592 | vite: ^4.2.0 593 | dependencies: 594 | '@babel/core': 7.22.1 595 | '@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.22.1) 596 | '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.22.1) 597 | react-refresh: 0.14.0 598 | vite: 4.3.9 599 | transitivePeerDependencies: 600 | - supports-color 601 | dev: true 602 | 603 | /ansi-styles@3.2.1: 604 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 605 | engines: {node: '>=4'} 606 | dependencies: 607 | color-convert: 1.9.3 608 | dev: true 609 | 610 | /any-promise@1.3.0: 611 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 612 | dev: true 613 | 614 | /anymatch@3.1.3: 615 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 616 | engines: {node: '>= 8'} 617 | dependencies: 618 | normalize-path: 3.0.0 619 | picomatch: 2.3.1 620 | dev: true 621 | 622 | /arg@5.0.2: 623 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 624 | dev: true 625 | 626 | /asynckit@0.4.0: 627 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 628 | dev: false 629 | 630 | /autoprefixer@10.4.14(postcss@8.4.24): 631 | resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} 632 | engines: {node: ^10 || ^12 || >=14} 633 | hasBin: true 634 | peerDependencies: 635 | postcss: ^8.1.0 636 | dependencies: 637 | browserslist: 4.21.5 638 | caniuse-lite: 1.0.30001492 639 | fraction.js: 4.2.0 640 | normalize-range: 0.1.2 641 | picocolors: 1.0.0 642 | postcss: 8.4.24 643 | postcss-value-parser: 4.2.0 644 | dev: true 645 | 646 | /axios@1.4.0: 647 | resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==} 648 | dependencies: 649 | follow-redirects: 1.15.2 650 | form-data: 4.0.0 651 | proxy-from-env: 1.1.0 652 | transitivePeerDependencies: 653 | - debug 654 | dev: false 655 | 656 | /balanced-match@1.0.2: 657 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 658 | dev: true 659 | 660 | /binary-extensions@2.2.0: 661 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 662 | engines: {node: '>=8'} 663 | dev: true 664 | 665 | /brace-expansion@1.1.11: 666 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 667 | dependencies: 668 | balanced-match: 1.0.2 669 | concat-map: 0.0.1 670 | dev: true 671 | 672 | /braces@3.0.2: 673 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 674 | engines: {node: '>=8'} 675 | dependencies: 676 | fill-range: 7.0.1 677 | dev: true 678 | 679 | /browserslist@4.21.5: 680 | resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} 681 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 682 | hasBin: true 683 | dependencies: 684 | caniuse-lite: 1.0.30001492 685 | electron-to-chromium: 1.4.295 686 | node-releases: 2.0.10 687 | update-browserslist-db: 1.0.10(browserslist@4.21.5) 688 | dev: true 689 | 690 | /camelcase-css@2.0.1: 691 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 692 | engines: {node: '>= 6'} 693 | dev: true 694 | 695 | /caniuse-lite@1.0.30001492: 696 | resolution: {integrity: sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==} 697 | dev: true 698 | 699 | /chalk@2.4.2: 700 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 701 | engines: {node: '>=4'} 702 | dependencies: 703 | ansi-styles: 3.2.1 704 | escape-string-regexp: 1.0.5 705 | supports-color: 5.5.0 706 | dev: true 707 | 708 | /chokidar@3.5.3: 709 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 710 | engines: {node: '>= 8.10.0'} 711 | dependencies: 712 | anymatch: 3.1.3 713 | braces: 3.0.2 714 | glob-parent: 5.1.2 715 | is-binary-path: 2.1.0 716 | is-glob: 4.0.3 717 | normalize-path: 3.0.0 718 | readdirp: 3.6.0 719 | optionalDependencies: 720 | fsevents: 2.3.2 721 | dev: true 722 | 723 | /color-convert@1.9.3: 724 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 725 | dependencies: 726 | color-name: 1.1.3 727 | dev: true 728 | 729 | /color-name@1.1.3: 730 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 731 | dev: true 732 | 733 | /combined-stream@1.0.8: 734 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 735 | engines: {node: '>= 0.8'} 736 | dependencies: 737 | delayed-stream: 1.0.0 738 | dev: false 739 | 740 | /commander@4.1.1: 741 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 742 | engines: {node: '>= 6'} 743 | dev: true 744 | 745 | /concat-map@0.0.1: 746 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 747 | dev: true 748 | 749 | /convert-source-map@1.9.0: 750 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 751 | dev: true 752 | 753 | /cssesc@3.0.0: 754 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 755 | engines: {node: '>=4'} 756 | hasBin: true 757 | dev: true 758 | 759 | /csstype@3.1.1: 760 | resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} 761 | dev: true 762 | 763 | /dayjs-plugin-utc@0.1.2: 764 | resolution: {integrity: sha512-ExERH5o3oo6jFOdkvMP3gytTCQ9Ksi5PtylclJWghr7k7m3o2U5QrwtdiJkOxLOH4ghr0EKhpqGefzGz1VvVJg==} 765 | dev: false 766 | 767 | /dayjs@1.11.7: 768 | resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} 769 | dev: false 770 | 771 | /debug@4.3.4: 772 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 773 | engines: {node: '>=6.0'} 774 | peerDependencies: 775 | supports-color: '*' 776 | peerDependenciesMeta: 777 | supports-color: 778 | optional: true 779 | dependencies: 780 | ms: 2.1.2 781 | dev: true 782 | 783 | /delayed-stream@1.0.0: 784 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 785 | engines: {node: '>=0.4.0'} 786 | dev: false 787 | 788 | /didyoumean@1.2.2: 789 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 790 | dev: true 791 | 792 | /dlv@1.1.3: 793 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 794 | dev: true 795 | 796 | /electron-to-chromium@1.4.295: 797 | resolution: {integrity: sha512-lEO94zqf1bDA3aepxwnWoHUjA8sZ+2owgcSZjYQy0+uOSEclJX0VieZC+r+wLpSxUHRd6gG32znTWmr+5iGzFw==} 798 | dev: true 799 | 800 | /esbuild@0.17.19: 801 | resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 802 | engines: {node: '>=12'} 803 | hasBin: true 804 | requiresBuild: true 805 | optionalDependencies: 806 | '@esbuild/android-arm': 0.17.19 807 | '@esbuild/android-arm64': 0.17.19 808 | '@esbuild/android-x64': 0.17.19 809 | '@esbuild/darwin-arm64': 0.17.19 810 | '@esbuild/darwin-x64': 0.17.19 811 | '@esbuild/freebsd-arm64': 0.17.19 812 | '@esbuild/freebsd-x64': 0.17.19 813 | '@esbuild/linux-arm': 0.17.19 814 | '@esbuild/linux-arm64': 0.17.19 815 | '@esbuild/linux-ia32': 0.17.19 816 | '@esbuild/linux-loong64': 0.17.19 817 | '@esbuild/linux-mips64el': 0.17.19 818 | '@esbuild/linux-ppc64': 0.17.19 819 | '@esbuild/linux-riscv64': 0.17.19 820 | '@esbuild/linux-s390x': 0.17.19 821 | '@esbuild/linux-x64': 0.17.19 822 | '@esbuild/netbsd-x64': 0.17.19 823 | '@esbuild/openbsd-x64': 0.17.19 824 | '@esbuild/sunos-x64': 0.17.19 825 | '@esbuild/win32-arm64': 0.17.19 826 | '@esbuild/win32-ia32': 0.17.19 827 | '@esbuild/win32-x64': 0.17.19 828 | dev: true 829 | 830 | /escalade@3.1.1: 831 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 832 | engines: {node: '>=6'} 833 | dev: true 834 | 835 | /escape-string-regexp@1.0.5: 836 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 837 | engines: {node: '>=0.8.0'} 838 | dev: true 839 | 840 | /fast-glob@3.2.12: 841 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 842 | engines: {node: '>=8.6.0'} 843 | dependencies: 844 | '@nodelib/fs.stat': 2.0.5 845 | '@nodelib/fs.walk': 1.2.8 846 | glob-parent: 5.1.2 847 | merge2: 1.4.1 848 | micromatch: 4.0.5 849 | dev: true 850 | 851 | /fastq@1.15.0: 852 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 853 | dependencies: 854 | reusify: 1.0.4 855 | dev: true 856 | 857 | /fill-range@7.0.1: 858 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 859 | engines: {node: '>=8'} 860 | dependencies: 861 | to-regex-range: 5.0.1 862 | dev: true 863 | 864 | /follow-redirects@1.15.2: 865 | resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} 866 | engines: {node: '>=4.0'} 867 | peerDependencies: 868 | debug: '*' 869 | peerDependenciesMeta: 870 | debug: 871 | optional: true 872 | dev: false 873 | 874 | /form-data@4.0.0: 875 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 876 | engines: {node: '>= 6'} 877 | dependencies: 878 | asynckit: 0.4.0 879 | combined-stream: 1.0.8 880 | mime-types: 2.1.35 881 | dev: false 882 | 883 | /fraction.js@4.2.0: 884 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 885 | dev: true 886 | 887 | /fs.realpath@1.0.0: 888 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 889 | dev: true 890 | 891 | /fsevents@2.3.2: 892 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 893 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 894 | os: [darwin] 895 | requiresBuild: true 896 | dev: true 897 | optional: true 898 | 899 | /function-bind@1.1.1: 900 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 901 | dev: true 902 | 903 | /gensync@1.0.0-beta.2: 904 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 905 | engines: {node: '>=6.9.0'} 906 | dev: true 907 | 908 | /glob-parent@5.1.2: 909 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 910 | engines: {node: '>= 6'} 911 | dependencies: 912 | is-glob: 4.0.3 913 | dev: true 914 | 915 | /glob-parent@6.0.2: 916 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 917 | engines: {node: '>=10.13.0'} 918 | dependencies: 919 | is-glob: 4.0.3 920 | dev: true 921 | 922 | /glob@7.1.6: 923 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 924 | dependencies: 925 | fs.realpath: 1.0.0 926 | inflight: 1.0.6 927 | inherits: 2.0.4 928 | minimatch: 3.1.2 929 | once: 1.4.0 930 | path-is-absolute: 1.0.1 931 | dev: true 932 | 933 | /globals@11.12.0: 934 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 935 | engines: {node: '>=4'} 936 | dev: true 937 | 938 | /has-flag@3.0.0: 939 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 940 | engines: {node: '>=4'} 941 | dev: true 942 | 943 | /has@1.0.3: 944 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 945 | engines: {node: '>= 0.4.0'} 946 | dependencies: 947 | function-bind: 1.1.1 948 | dev: true 949 | 950 | /inflight@1.0.6: 951 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 952 | dependencies: 953 | once: 1.4.0 954 | wrappy: 1.0.2 955 | dev: true 956 | 957 | /inherits@2.0.4: 958 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 959 | dev: true 960 | 961 | /is-binary-path@2.1.0: 962 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 963 | engines: {node: '>=8'} 964 | dependencies: 965 | binary-extensions: 2.2.0 966 | dev: true 967 | 968 | /is-core-module@2.11.0: 969 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 970 | dependencies: 971 | has: 1.0.3 972 | dev: true 973 | 974 | /is-extglob@2.1.1: 975 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 976 | engines: {node: '>=0.10.0'} 977 | dev: true 978 | 979 | /is-glob@4.0.3: 980 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 981 | engines: {node: '>=0.10.0'} 982 | dependencies: 983 | is-extglob: 2.1.1 984 | dev: true 985 | 986 | /is-number@7.0.0: 987 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 988 | engines: {node: '>=0.12.0'} 989 | dev: true 990 | 991 | /jiti@1.18.2: 992 | resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} 993 | hasBin: true 994 | dev: true 995 | 996 | /js-cookie@3.0.5: 997 | resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} 998 | engines: {node: '>=14'} 999 | dev: false 1000 | 1001 | /js-tokens@4.0.0: 1002 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1003 | 1004 | /jsesc@2.5.2: 1005 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1006 | engines: {node: '>=4'} 1007 | hasBin: true 1008 | dev: true 1009 | 1010 | /json5@2.2.3: 1011 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1012 | engines: {node: '>=6'} 1013 | hasBin: true 1014 | dev: true 1015 | 1016 | /lilconfig@2.1.0: 1017 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1018 | engines: {node: '>=10'} 1019 | dev: true 1020 | 1021 | /lines-and-columns@1.2.4: 1022 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1023 | dev: true 1024 | 1025 | /loose-envify@1.4.0: 1026 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1027 | hasBin: true 1028 | dependencies: 1029 | js-tokens: 4.0.0 1030 | dev: false 1031 | 1032 | /lru-cache@5.1.1: 1033 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1034 | dependencies: 1035 | yallist: 3.1.1 1036 | dev: true 1037 | 1038 | /merge2@1.4.1: 1039 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1040 | engines: {node: '>= 8'} 1041 | dev: true 1042 | 1043 | /micromatch@4.0.5: 1044 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1045 | engines: {node: '>=8.6'} 1046 | dependencies: 1047 | braces: 3.0.2 1048 | picomatch: 2.3.1 1049 | dev: true 1050 | 1051 | /mime-db@1.52.0: 1052 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1053 | engines: {node: '>= 0.6'} 1054 | dev: false 1055 | 1056 | /mime-types@2.1.35: 1057 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1058 | engines: {node: '>= 0.6'} 1059 | dependencies: 1060 | mime-db: 1.52.0 1061 | dev: false 1062 | 1063 | /minimatch@3.1.2: 1064 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1065 | dependencies: 1066 | brace-expansion: 1.1.11 1067 | dev: true 1068 | 1069 | /ms@2.1.2: 1070 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1071 | dev: true 1072 | 1073 | /mz@2.7.0: 1074 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1075 | dependencies: 1076 | any-promise: 1.3.0 1077 | object-assign: 4.1.1 1078 | thenify-all: 1.6.0 1079 | dev: true 1080 | 1081 | /nanoid@3.3.6: 1082 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 1083 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1084 | hasBin: true 1085 | dev: true 1086 | 1087 | /node-releases@2.0.10: 1088 | resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} 1089 | dev: true 1090 | 1091 | /normalize-path@3.0.0: 1092 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1093 | engines: {node: '>=0.10.0'} 1094 | dev: true 1095 | 1096 | /normalize-range@0.1.2: 1097 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1098 | engines: {node: '>=0.10.0'} 1099 | dev: true 1100 | 1101 | /object-assign@4.1.1: 1102 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1103 | engines: {node: '>=0.10.0'} 1104 | dev: true 1105 | 1106 | /object-hash@3.0.0: 1107 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1108 | engines: {node: '>= 6'} 1109 | dev: true 1110 | 1111 | /once@1.4.0: 1112 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1113 | dependencies: 1114 | wrappy: 1.0.2 1115 | dev: true 1116 | 1117 | /path-is-absolute@1.0.1: 1118 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1119 | engines: {node: '>=0.10.0'} 1120 | dev: true 1121 | 1122 | /path-parse@1.0.7: 1123 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1124 | dev: true 1125 | 1126 | /picocolors@1.0.0: 1127 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1128 | dev: true 1129 | 1130 | /picomatch@2.3.1: 1131 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1132 | engines: {node: '>=8.6'} 1133 | dev: true 1134 | 1135 | /pify@2.3.0: 1136 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1137 | engines: {node: '>=0.10.0'} 1138 | dev: true 1139 | 1140 | /pirates@4.0.5: 1141 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} 1142 | engines: {node: '>= 6'} 1143 | dev: true 1144 | 1145 | /postcss-import@15.1.0(postcss@8.4.24): 1146 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 1147 | engines: {node: '>=14.0.0'} 1148 | peerDependencies: 1149 | postcss: ^8.0.0 1150 | dependencies: 1151 | postcss: 8.4.24 1152 | postcss-value-parser: 4.2.0 1153 | read-cache: 1.0.0 1154 | resolve: 1.22.2 1155 | dev: true 1156 | 1157 | /postcss-js@4.0.1(postcss@8.4.24): 1158 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1159 | engines: {node: ^12 || ^14 || >= 16} 1160 | peerDependencies: 1161 | postcss: ^8.4.21 1162 | dependencies: 1163 | camelcase-css: 2.0.1 1164 | postcss: 8.4.24 1165 | dev: true 1166 | 1167 | /postcss-load-config@4.0.1(postcss@8.4.24): 1168 | resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} 1169 | engines: {node: '>= 14'} 1170 | peerDependencies: 1171 | postcss: '>=8.0.9' 1172 | ts-node: '>=9.0.0' 1173 | peerDependenciesMeta: 1174 | postcss: 1175 | optional: true 1176 | ts-node: 1177 | optional: true 1178 | dependencies: 1179 | lilconfig: 2.1.0 1180 | postcss: 8.4.24 1181 | yaml: 2.3.1 1182 | dev: true 1183 | 1184 | /postcss-nested@6.0.1(postcss@8.4.24): 1185 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 1186 | engines: {node: '>=12.0'} 1187 | peerDependencies: 1188 | postcss: ^8.2.14 1189 | dependencies: 1190 | postcss: 8.4.24 1191 | postcss-selector-parser: 6.0.11 1192 | dev: true 1193 | 1194 | /postcss-selector-parser@6.0.11: 1195 | resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} 1196 | engines: {node: '>=4'} 1197 | dependencies: 1198 | cssesc: 3.0.0 1199 | util-deprecate: 1.0.2 1200 | dev: true 1201 | 1202 | /postcss-value-parser@4.2.0: 1203 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1204 | dev: true 1205 | 1206 | /postcss@8.4.24: 1207 | resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} 1208 | engines: {node: ^10 || ^12 || >=14} 1209 | dependencies: 1210 | nanoid: 3.3.6 1211 | picocolors: 1.0.0 1212 | source-map-js: 1.0.2 1213 | dev: true 1214 | 1215 | /proxy-from-env@1.1.0: 1216 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 1217 | dev: false 1218 | 1219 | /queue-microtask@1.2.3: 1220 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1221 | dev: true 1222 | 1223 | /react-dom@18.2.0(react@18.2.0): 1224 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 1225 | peerDependencies: 1226 | react: ^18.2.0 1227 | dependencies: 1228 | loose-envify: 1.4.0 1229 | react: 18.2.0 1230 | scheduler: 0.23.0 1231 | dev: false 1232 | 1233 | /react-hook-form@7.44.3(react@18.2.0): 1234 | resolution: {integrity: sha512-/tHId6p2ViAka1wECMw8FEPn/oz/w226zehHrJyQ1oIzCBNMIJCaj6ZkQcv+MjDxYh9MWR7RQic7Qqwe4a5nkw==} 1235 | engines: {node: '>=12.22.0'} 1236 | peerDependencies: 1237 | react: ^16.8.0 || ^17 || ^18 1238 | dependencies: 1239 | react: 18.2.0 1240 | dev: false 1241 | 1242 | /react-icons@4.9.0(react@18.2.0): 1243 | resolution: {integrity: sha512-ijUnFr//ycebOqujtqtV9PFS7JjhWg0QU6ykURVHuL4cbofvRCf3f6GMn9+fBktEFQOIVZnuAYLZdiyadRQRFg==} 1244 | peerDependencies: 1245 | react: '*' 1246 | dependencies: 1247 | react: 18.2.0 1248 | dev: false 1249 | 1250 | /react-refresh@0.14.0: 1251 | resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} 1252 | engines: {node: '>=0.10.0'} 1253 | dev: true 1254 | 1255 | /react-router-dom@6.11.2(react-dom@18.2.0)(react@18.2.0): 1256 | resolution: {integrity: sha512-JNbKtAeh1VSJQnH6RvBDNhxNwemRj7KxCzc5jb7zvDSKRnPWIFj9pO+eXqjM69gQJ0r46hSz1x4l9y0651DKWw==} 1257 | engines: {node: '>=14'} 1258 | peerDependencies: 1259 | react: '>=16.8' 1260 | react-dom: '>=16.8' 1261 | dependencies: 1262 | '@remix-run/router': 1.6.2 1263 | react: 18.2.0 1264 | react-dom: 18.2.0(react@18.2.0) 1265 | react-router: 6.11.2(react@18.2.0) 1266 | dev: false 1267 | 1268 | /react-router@6.11.2(react@18.2.0): 1269 | resolution: {integrity: sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==} 1270 | engines: {node: '>=14'} 1271 | peerDependencies: 1272 | react: '>=16.8' 1273 | dependencies: 1274 | '@remix-run/router': 1.6.2 1275 | react: 18.2.0 1276 | dev: false 1277 | 1278 | /react@18.2.0: 1279 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 1280 | engines: {node: '>=0.10.0'} 1281 | dependencies: 1282 | loose-envify: 1.4.0 1283 | dev: false 1284 | 1285 | /read-cache@1.0.0: 1286 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1287 | dependencies: 1288 | pify: 2.3.0 1289 | dev: true 1290 | 1291 | /readdirp@3.6.0: 1292 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1293 | engines: {node: '>=8.10.0'} 1294 | dependencies: 1295 | picomatch: 2.3.1 1296 | dev: true 1297 | 1298 | /resolve@1.22.2: 1299 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} 1300 | hasBin: true 1301 | dependencies: 1302 | is-core-module: 2.11.0 1303 | path-parse: 1.0.7 1304 | supports-preserve-symlinks-flag: 1.0.0 1305 | dev: true 1306 | 1307 | /reusify@1.0.4: 1308 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1309 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1310 | dev: true 1311 | 1312 | /rollup@3.23.0: 1313 | resolution: {integrity: sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==} 1314 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1315 | hasBin: true 1316 | optionalDependencies: 1317 | fsevents: 2.3.2 1318 | dev: true 1319 | 1320 | /run-parallel@1.2.0: 1321 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1322 | dependencies: 1323 | queue-microtask: 1.2.3 1324 | dev: true 1325 | 1326 | /scheduler@0.23.0: 1327 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 1328 | dependencies: 1329 | loose-envify: 1.4.0 1330 | dev: false 1331 | 1332 | /semver@6.3.0: 1333 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 1334 | hasBin: true 1335 | dev: true 1336 | 1337 | /source-map-js@1.0.2: 1338 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1339 | engines: {node: '>=0.10.0'} 1340 | dev: true 1341 | 1342 | /sucrase@3.32.0: 1343 | resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} 1344 | engines: {node: '>=8'} 1345 | hasBin: true 1346 | dependencies: 1347 | '@jridgewell/gen-mapping': 0.3.2 1348 | commander: 4.1.1 1349 | glob: 7.1.6 1350 | lines-and-columns: 1.2.4 1351 | mz: 2.7.0 1352 | pirates: 4.0.5 1353 | ts-interface-checker: 0.1.13 1354 | dev: true 1355 | 1356 | /supports-color@5.5.0: 1357 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1358 | engines: {node: '>=4'} 1359 | dependencies: 1360 | has-flag: 3.0.0 1361 | dev: true 1362 | 1363 | /supports-preserve-symlinks-flag@1.0.0: 1364 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1365 | engines: {node: '>= 0.4'} 1366 | dev: true 1367 | 1368 | /tailwindcss@3.3.2: 1369 | resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} 1370 | engines: {node: '>=14.0.0'} 1371 | hasBin: true 1372 | dependencies: 1373 | '@alloc/quick-lru': 5.2.0 1374 | arg: 5.0.2 1375 | chokidar: 3.5.3 1376 | didyoumean: 1.2.2 1377 | dlv: 1.1.3 1378 | fast-glob: 3.2.12 1379 | glob-parent: 6.0.2 1380 | is-glob: 4.0.3 1381 | jiti: 1.18.2 1382 | lilconfig: 2.1.0 1383 | micromatch: 4.0.5 1384 | normalize-path: 3.0.0 1385 | object-hash: 3.0.0 1386 | picocolors: 1.0.0 1387 | postcss: 8.4.24 1388 | postcss-import: 15.1.0(postcss@8.4.24) 1389 | postcss-js: 4.0.1(postcss@8.4.24) 1390 | postcss-load-config: 4.0.1(postcss@8.4.24) 1391 | postcss-nested: 6.0.1(postcss@8.4.24) 1392 | postcss-selector-parser: 6.0.11 1393 | postcss-value-parser: 4.2.0 1394 | resolve: 1.22.2 1395 | sucrase: 3.32.0 1396 | transitivePeerDependencies: 1397 | - ts-node 1398 | dev: true 1399 | 1400 | /thenify-all@1.6.0: 1401 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1402 | engines: {node: '>=0.8'} 1403 | dependencies: 1404 | thenify: 3.3.1 1405 | dev: true 1406 | 1407 | /thenify@3.3.1: 1408 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1409 | dependencies: 1410 | any-promise: 1.3.0 1411 | dev: true 1412 | 1413 | /to-fast-properties@2.0.0: 1414 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1415 | engines: {node: '>=4'} 1416 | dev: true 1417 | 1418 | /to-regex-range@5.0.1: 1419 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1420 | engines: {node: '>=8.0'} 1421 | dependencies: 1422 | is-number: 7.0.0 1423 | dev: true 1424 | 1425 | /ts-interface-checker@0.1.13: 1426 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1427 | dev: true 1428 | 1429 | /update-browserslist-db@1.0.10(browserslist@4.21.5): 1430 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 1431 | hasBin: true 1432 | peerDependencies: 1433 | browserslist: '>= 4.21.0' 1434 | dependencies: 1435 | browserslist: 4.21.5 1436 | escalade: 3.1.1 1437 | picocolors: 1.0.0 1438 | dev: true 1439 | 1440 | /util-deprecate@1.0.2: 1441 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1442 | dev: true 1443 | 1444 | /vite@4.3.9: 1445 | resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} 1446 | engines: {node: ^14.18.0 || >=16.0.0} 1447 | hasBin: true 1448 | peerDependencies: 1449 | '@types/node': '>= 14' 1450 | less: '*' 1451 | sass: '*' 1452 | stylus: '*' 1453 | sugarss: '*' 1454 | terser: ^5.4.0 1455 | peerDependenciesMeta: 1456 | '@types/node': 1457 | optional: true 1458 | less: 1459 | optional: true 1460 | sass: 1461 | optional: true 1462 | stylus: 1463 | optional: true 1464 | sugarss: 1465 | optional: true 1466 | terser: 1467 | optional: true 1468 | dependencies: 1469 | esbuild: 0.17.19 1470 | postcss: 8.4.24 1471 | rollup: 3.23.0 1472 | optionalDependencies: 1473 | fsevents: 2.3.2 1474 | dev: true 1475 | 1476 | /wrappy@1.0.2: 1477 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1478 | dev: true 1479 | 1480 | /yallist@3.1.1: 1481 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1482 | dev: true 1483 | 1484 | /yaml@2.3.1: 1485 | resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} 1486 | engines: {node: '>= 14'} 1487 | dev: true 1488 | 1489 | /zod@3.21.4: 1490 | resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} 1491 | dev: false 1492 | --------------------------------------------------------------------------------