├── .gitignore ├── client ├── public │ ├── favicon.ico │ ├── logo192.png │ ├── logo512.png │ ├── robots.txt │ ├── manifest.json │ └── index.html ├── src │ ├── Layout.js │ ├── setupTests.js │ ├── App.test.js │ ├── UserContext.js │ ├── index.css │ ├── reportWebVitals.js │ ├── pages │ │ ├── IndexPage.js │ │ ├── RegisterPage.js │ │ ├── LoginPage.js │ │ ├── CreatePost.js │ │ ├── PostPage.js │ │ └── EditPost.js │ ├── Editor.js │ ├── index.js │ ├── Post.js │ ├── App.js │ ├── Header.js │ ├── logo.svg │ └── App.css ├── .gitignore ├── package.json └── README.md ├── package.json ├── api ├── models │ ├── User.js │ └── Post.js └── index.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | api/uploads/* 4 | -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dejwid/mern-blog/HEAD/client/public/favicon.ico -------------------------------------------------------------------------------- /client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dejwid/mern-blog/HEAD/client/public/logo192.png -------------------------------------------------------------------------------- /client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dejwid/mern-blog/HEAD/client/public/logo512.png -------------------------------------------------------------------------------- /client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /client/src/Layout.js: -------------------------------------------------------------------------------- 1 | import Header from "./Header"; 2 | import {Outlet} from "react-router-dom"; 3 | 4 | export default function Layout() { 5 | return ( 6 |
7 |
8 | 9 |
10 | ); 11 | } -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "bcryptjs": "^2.4.3", 4 | "cookie-parser": "^1.4.6", 5 | "cors": "^2.8.5", 6 | "express": "^4.18.2", 7 | "jsonwebtoken": "^9.0.0", 8 | "mongoose": "^6.8.2", 9 | "multer": "^1.4.5-lts.1", 10 | "react-router-dom": "^6.6.1" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /api/models/User.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const {Schema, model} = mongoose; 3 | 4 | const UserSchema = new Schema({ 5 | username: {type: String, required: true, min: 4, unique: true}, 6 | password: {type: String, required: true}, 7 | }); 8 | 9 | const UserModel = model('User', UserSchema); 10 | 11 | module.exports = UserModel; -------------------------------------------------------------------------------- /client/src/UserContext.js: -------------------------------------------------------------------------------- 1 | import {createContext, useState} from "react"; 2 | 3 | export const UserContext = createContext({}); 4 | 5 | export function UserContextProvider({children}) { 6 | const [userInfo,setUserInfo] = useState({}); 7 | return ( 8 | 9 | {children} 10 | 11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /api/models/Post.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const {Schema,model} = mongoose; 3 | 4 | const PostSchema = new Schema({ 5 | title:String, 6 | summary:String, 7 | content:String, 8 | cover:String, 9 | author:{type:Schema.Types.ObjectId, ref:'User'}, 10 | }, { 11 | timestamps: true, 12 | }); 13 | 14 | const PostModel = model('Post', PostSchema); 15 | 16 | module.exports = PostModel; -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /client/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /client/src/pages/IndexPage.js: -------------------------------------------------------------------------------- 1 | import Post from "../Post"; 2 | import {useEffect, useState} from "react"; 3 | 4 | export default function IndexPage() { 5 | const [posts,setPosts] = useState([]); 6 | useEffect(() => { 7 | fetch('http://localhost:4000/post').then(response => { 8 | response.json().then(posts => { 9 | setPosts(posts); 10 | }); 11 | }); 12 | }, []); 13 | return ( 14 | <> 15 | {posts.length > 0 && posts.map(post => ( 16 | 17 | ))} 18 | 19 | ); 20 | } -------------------------------------------------------------------------------- /client/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /client/src/Editor.js: -------------------------------------------------------------------------------- 1 | import ReactQuill from "react-quill"; 2 | 3 | export default function Editor({value,onChange}) { 4 | const modules = { 5 | toolbar: [ 6 | [{ header: [1, 2, false] }], 7 | ['bold', 'italic', 'underline', 'strike', 'blockquote'], 8 | [ 9 | { list: 'ordered' }, 10 | { list: 'bullet' }, 11 | { indent: '-1' }, 12 | { indent: '+1' }, 13 | ], 14 | ['link', 'image'], 15 | ['clean'], 16 | ], 17 | }; 18 | return ( 19 |
20 | 25 |
26 | ); 27 | } 28 | -------------------------------------------------------------------------------- /client/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import './index.css'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | import {BrowserRouter} from "react-router-dom"; 7 | 8 | const root = ReactDOM.createRoot(document.getElementById('root')); 9 | root.render( 10 | 11 | 12 | 13 | 14 | 15 | ); 16 | 17 | // If you want to start measuring performance in your app, pass a function 18 | // to log results (for example: reportWebVitals(console.log)) 19 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 20 | reportWebVitals(); 21 | -------------------------------------------------------------------------------- /client/src/Post.js: -------------------------------------------------------------------------------- 1 | import {formatISO9075} from "date-fns"; 2 | import {Link} from "react-router-dom"; 3 | 4 | export default function Post({_id,title,summary,cover,content,createdAt,author}) { 5 | 6 | return ( 7 |
8 |
9 | 10 | 11 | 12 |
13 |
14 | 15 |

{title}

16 | 17 |

18 | {author.username} 19 | 20 |

21 |

{summary}

22 |
23 |
24 | ); 25 | } -------------------------------------------------------------------------------- /client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "client", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@testing-library/jest-dom": "^5.14.1", 7 | "@testing-library/react": "^13.0.0", 8 | "@testing-library/user-event": "^13.2.1", 9 | "date-fns": "^2.29.3", 10 | "react": "^18.2.0", 11 | "react-dom": "^18.2.0", 12 | "react-quill": "^2.0.0", 13 | "react-scripts": "5.0.1", 14 | "web-vitals": "^2.1.0" 15 | }, 16 | "scripts": { 17 | "start": "react-scripts start", 18 | "build": "react-scripts build", 19 | "test": "react-scripts test", 20 | "eject": "react-scripts eject" 21 | }, 22 | "eslintConfig": { 23 | "extends": [ 24 | "react-app", 25 | "react-app/jest" 26 | ] 27 | }, 28 | "browserslist": { 29 | "production": [ 30 | ">0.2%", 31 | "not dead", 32 | "not op_mini all" 33 | ], 34 | "development": [ 35 | "last 1 chrome version", 36 | "last 1 firefox version", 37 | "last 1 safari version" 38 | ] 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /client/src/App.js: -------------------------------------------------------------------------------- 1 | import './App.css'; 2 | import Post from "./Post"; 3 | import Header from "./Header"; 4 | import {Route, Routes} from "react-router-dom"; 5 | import Layout from "./Layout"; 6 | import IndexPage from "./pages/IndexPage"; 7 | import LoginPage from "./pages/LoginPage"; 8 | import RegisterPage from "./pages/RegisterPage"; 9 | import {UserContextProvider} from "./UserContext"; 10 | import CreatePost from "./pages/CreatePost"; 11 | import PostPage from "./pages/PostPage"; 12 | import EditPost from "./pages/EditPost"; 13 | 14 | function App() { 15 | return ( 16 | 17 | 18 | }> 19 | } /> 20 | } /> 21 | } /> 22 | } /> 23 | } /> 24 | } /> 25 | 26 | 27 | 28 | ); 29 | } 30 | 31 | export default App; 32 | -------------------------------------------------------------------------------- /client/src/pages/RegisterPage.js: -------------------------------------------------------------------------------- 1 | import {useState} from "react"; 2 | 3 | export default function RegisterPage() { 4 | const [username, setUsername] = useState(''); 5 | const [password, setPassword] = useState(''); 6 | async function register(ev) { 7 | ev.preventDefault(); 8 | const response = await fetch('http://localhost:4000/register', { 9 | method: 'POST', 10 | body: JSON.stringify({username,password}), 11 | headers: {'Content-Type':'application/json'}, 12 | }); 13 | if (response.status === 200) { 14 | alert('registration successful'); 15 | } else { 16 | alert('registration failed'); 17 | } 18 | } 19 | return ( 20 |
21 |

Register

22 | setUsername(ev.target.value)}/> 26 | setPassword(ev.target.value)}/> 30 | 31 |
32 | ); 33 | } -------------------------------------------------------------------------------- /client/src/Header.js: -------------------------------------------------------------------------------- 1 | import {Link} from "react-router-dom"; 2 | import {useContext, useEffect, useState} from "react"; 3 | import {UserContext} from "./UserContext"; 4 | 5 | export default function Header() { 6 | const {setUserInfo,userInfo} = useContext(UserContext); 7 | useEffect(() => { 8 | fetch('http://localhost:4000/profile', { 9 | credentials: 'include', 10 | }).then(response => { 11 | response.json().then(userInfo => { 12 | setUserInfo(userInfo); 13 | }); 14 | }); 15 | }, []); 16 | 17 | function logout() { 18 | fetch('http://localhost:4000/logout', { 19 | credentials: 'include', 20 | method: 'POST', 21 | }); 22 | setUserInfo(null); 23 | } 24 | 25 | const username = userInfo?.username; 26 | 27 | return ( 28 |
29 | MyBlog 30 | 44 |
45 | ); 46 | } 47 | -------------------------------------------------------------------------------- /client/src/pages/LoginPage.js: -------------------------------------------------------------------------------- 1 | import {useContext, useState} from "react"; 2 | import {Navigate} from "react-router-dom"; 3 | import {UserContext} from "../UserContext"; 4 | 5 | export default function LoginPage() { 6 | const [username,setUsername] = useState(''); 7 | const [password,setPassword] = useState(''); 8 | const [redirect,setRedirect] = useState(false); 9 | const {setUserInfo} = useContext(UserContext); 10 | async function login(ev) { 11 | ev.preventDefault(); 12 | const response = await fetch('http://localhost:4000/login', { 13 | method: 'POST', 14 | body: JSON.stringify({username, password}), 15 | headers: {'Content-Type':'application/json'}, 16 | credentials: 'include', 17 | }); 18 | if (response.ok) { 19 | response.json().then(userInfo => { 20 | setUserInfo(userInfo); 21 | setRedirect(true); 22 | }); 23 | } else { 24 | alert('wrong credentials'); 25 | } 26 | } 27 | 28 | if (redirect) { 29 | return 30 | } 31 | return ( 32 |
33 |

Login

34 | setUsername(ev.target.value)}/> 38 | setPassword(ev.target.value)}/> 42 | 43 |
44 | ); 45 | } -------------------------------------------------------------------------------- /client/src/pages/CreatePost.js: -------------------------------------------------------------------------------- 1 | import ReactQuill from "react-quill"; 2 | import 'react-quill/dist/quill.snow.css'; 3 | import {useState} from "react"; 4 | import {Navigate} from "react-router-dom"; 5 | import Editor from "../Editor"; 6 | 7 | export default function CreatePost() { 8 | const [title,setTitle] = useState(''); 9 | const [summary,setSummary] = useState(''); 10 | const [content,setContent] = useState(''); 11 | const [files, setFiles] = useState(''); 12 | const [redirect, setRedirect] = useState(false); 13 | async function createNewPost(ev) { 14 | const data = new FormData(); 15 | data.set('title', title); 16 | data.set('summary', summary); 17 | data.set('content', content); 18 | data.set('file', files[0]); 19 | ev.preventDefault(); 20 | const response = await fetch('http://localhost:4000/post', { 21 | method: 'POST', 22 | body: data, 23 | credentials: 'include', 24 | }); 25 | if (response.ok) { 26 | setRedirect(true); 27 | } 28 | } 29 | 30 | if (redirect) { 31 | return 32 | } 33 | return ( 34 |
35 | setTitle(ev.target.value)} /> 39 | setSummary(ev.target.value)} /> 43 | setFiles(ev.target.files)} /> 45 | 46 | 47 | 48 | ); 49 | } -------------------------------------------------------------------------------- /client/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | React App 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /client/src/pages/PostPage.js: -------------------------------------------------------------------------------- 1 | import {useContext, useEffect, useState} from "react"; 2 | import {useParams} from "react-router-dom"; 3 | import {formatISO9075} from "date-fns"; 4 | import {UserContext} from "../UserContext"; 5 | import {Link} from 'react-router-dom'; 6 | 7 | export default function PostPage() { 8 | const [postInfo,setPostInfo] = useState(null); 9 | const {userInfo} = useContext(UserContext); 10 | const {id} = useParams(); 11 | useEffect(() => { 12 | fetch(`http://localhost:4000/post/${id}`) 13 | .then(response => { 14 | response.json().then(postInfo => { 15 | setPostInfo(postInfo); 16 | }); 17 | }); 18 | }, []); 19 | 20 | if (!postInfo) return ''; 21 | 22 | return ( 23 |
24 |

{postInfo.title}

25 | 26 |
by @{postInfo.author.username}
27 | {userInfo.id === postInfo.author._id && ( 28 |
29 | 30 | 31 | 32 | 33 | Edit this post 34 | 35 |
36 | )} 37 |
38 | 39 |
40 |
41 |
42 | ); 43 | } -------------------------------------------------------------------------------- /client/src/pages/EditPost.js: -------------------------------------------------------------------------------- 1 | import {useEffect, useState} from "react"; 2 | import {Navigate, useParams} from "react-router-dom"; 3 | import Editor from "../Editor"; 4 | 5 | export default function EditPost() { 6 | const {id} = useParams(); 7 | const [title,setTitle] = useState(''); 8 | const [summary,setSummary] = useState(''); 9 | const [content,setContent] = useState(''); 10 | const [files, setFiles] = useState(''); 11 | const [redirect,setRedirect] = useState(false); 12 | 13 | useEffect(() => { 14 | fetch('http://localhost:4000/post/'+id) 15 | .then(response => { 16 | response.json().then(postInfo => { 17 | setTitle(postInfo.title); 18 | setContent(postInfo.content); 19 | setSummary(postInfo.summary); 20 | }); 21 | }); 22 | }, []); 23 | 24 | async function updatePost(ev) { 25 | ev.preventDefault(); 26 | const data = new FormData(); 27 | data.set('title', title); 28 | data.set('summary', summary); 29 | data.set('content', content); 30 | data.set('id', id); 31 | if (files?.[0]) { 32 | data.set('file', files?.[0]); 33 | } 34 | const response = await fetch('http://localhost:4000/post', { 35 | method: 'PUT', 36 | body: data, 37 | credentials: 'include', 38 | }); 39 | if (response.ok) { 40 | setRedirect(true); 41 | } 42 | } 43 | 44 | if (redirect) { 45 | return 46 | } 47 | 48 | return ( 49 |
50 | setTitle(ev.target.value)} /> 54 | setSummary(ev.target.value)} /> 58 | setFiles(ev.target.files)} /> 60 | 61 | 62 | 63 | ); 64 | } -------------------------------------------------------------------------------- /client/src/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/src/App.css: -------------------------------------------------------------------------------- 1 | *{ 2 | box-sizing: border-box; 3 | } 4 | a{ 5 | cursor: pointer; 6 | } 7 | body{ 8 | color: #222; 9 | } 10 | img{ 11 | max-width: 100%; 12 | } 13 | main{ 14 | padding: 10px; 15 | max-width: 960px; 16 | margin: 0 auto; 17 | } 18 | header{ 19 | display:flex; 20 | justify-content:space-between; 21 | margin-top: 20px; 22 | margin-bottom: 50px; 23 | align-items: center; 24 | } 25 | header a{ 26 | text-decoration:none; 27 | color: inherit; 28 | } 29 | header a.logo{ 30 | font-weight: bold; 31 | font-size: 1.5rem; 32 | } 33 | header nav{ 34 | display:flex; 35 | gap: 24px; 36 | } 37 | 38 | div.post{ 39 | display: grid; 40 | grid-template-columns: 1fr; 41 | gap: 20px; 42 | margin-bottom: 30px; 43 | } 44 | @media screen and (min-width: 700px) { 45 | div.post{ 46 | grid-template-columns: .9fr 1.1fr; 47 | } 48 | } 49 | 50 | div.post div.texts h2{ 51 | margin:0; 52 | font-size: 2rem; 53 | } 54 | div.post div.texts a{ 55 | text-decoration:none; 56 | color: inherit; 57 | } 58 | div.post p.info{ 59 | margin:24px 0; 60 | color: #888; 61 | font-size:1rem; 62 | font-weight: bold; 63 | display: flex; 64 | gap: 10px; 65 | } 66 | div.post p.info a.author{ 67 | color:#333; 68 | } 69 | div.post p.summary{ 70 | margin:10px 0; 71 | line-height: 1.8rem; 72 | } 73 | 74 | form.login, form.register{ 75 | max-width: 400px; 76 | margin: 0 auto; 77 | } 78 | input{ 79 | display: block; 80 | margin-bottom: 5px; 81 | width: 100%; 82 | padding: 5px 7px; 83 | border: 2px solid #ddd; 84 | border-radius: 5px; 85 | background-color: #fff; 86 | } 87 | button{ 88 | cursor: pointer; 89 | width: 100%; 90 | display: block; 91 | background-color: #555; 92 | border:0; 93 | color: #fff; 94 | border-radius: 5px; 95 | padding: 7px 0; 96 | } 97 | form.login h1, form.register h1{ 98 | text-align: center; 99 | } 100 | 101 | div.post-page div.image{ 102 | max-height:300px; 103 | display: flex; 104 | overflow:hidden; 105 | } 106 | div.post-page div.image img{ 107 | object-fit: cover; 108 | object-position: center center; 109 | width: 100%; 110 | } 111 | div.post-page a{ 112 | color:#333; 113 | text-decoration: underline; 114 | } 115 | div.post-page h1{ 116 | text-align: center; 117 | margin: 10px 0 5px; 118 | } 119 | div.post-page time{ 120 | text-align: center; 121 | display: block; 122 | font-size:1rem; 123 | color:#aaa; 124 | margin: 10px 0; 125 | } 126 | div.post-page div.author{ 127 | text-align: center; 128 | margin-bottom: 20px; 129 | font-size: .7rem; 130 | font-weight: bold; 131 | } 132 | div.content p{ 133 | line-height: 1.7rem; 134 | margin: 30px 0; 135 | } 136 | div.content li{ 137 | margin-bottom: 10px; 138 | } 139 | div.edit-row{ 140 | text-align: center; 141 | margin-bottom: 20px; 142 | } 143 | div.post-page a.edit-btn{ 144 | background-color: #333; 145 | display: inline-flex; 146 | align-items: center; 147 | gap: 5px; 148 | color: #fff; 149 | padding:15px 30px; 150 | border-radius: 5px; 151 | text-decoration: none; 152 | } 153 | a svg{ 154 | height:20px; 155 | } 156 | -------------------------------------------------------------------------------- /client/README.md: -------------------------------------------------------------------------------- 1 | # Getting Started with Create React App 2 | 3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 4 | 5 | ## Available Scripts 6 | 7 | In the project directory, you can run: 8 | 9 | ### `yarn start` 10 | 11 | Runs the app in the development mode.\ 12 | Open [http://localhost:3000](http://localhost:3000) to view it in your browser. 13 | 14 | The page will reload when you make changes.\ 15 | You may also see any lint errors in the console. 16 | 17 | ### `yarn test` 18 | 19 | Launches the test runner in the interactive watch mode.\ 20 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 21 | 22 | ### `yarn build` 23 | 24 | Builds the app for production to the `build` folder.\ 25 | It correctly bundles React in production mode and optimizes the build for the best performance. 26 | 27 | The build is minified and the filenames include the hashes.\ 28 | Your app is ready to be deployed! 29 | 30 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 31 | 32 | ### `yarn eject` 33 | 34 | **Note: this is a one-way operation. Once you `eject`, you can't go back!** 35 | 36 | If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. 37 | 38 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. 39 | 40 | You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. 41 | 42 | ## Learn More 43 | 44 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 45 | 46 | To learn React, check out the [React documentation](https://reactjs.org/). 47 | 48 | ### Code Splitting 49 | 50 | This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) 51 | 52 | ### Analyzing the Bundle Size 53 | 54 | This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) 55 | 56 | ### Making a Progressive Web App 57 | 58 | This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) 59 | 60 | ### Advanced Configuration 61 | 62 | This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) 63 | 64 | ### Deployment 65 | 66 | This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) 67 | 68 | ### `yarn build` fails to minify 69 | 70 | This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) 71 | -------------------------------------------------------------------------------- /api/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const cors = require('cors'); 3 | const mongoose = require("mongoose"); 4 | const User = require('./models/User'); 5 | const Post = require('./models/Post'); 6 | const bcrypt = require('bcryptjs'); 7 | const app = express(); 8 | const jwt = require('jsonwebtoken'); 9 | const cookieParser = require('cookie-parser'); 10 | const multer = require('multer'); 11 | const uploadMiddleware = multer({ dest: 'uploads/' }); 12 | const fs = require('fs'); 13 | 14 | const salt = bcrypt.genSaltSync(10); 15 | const secret = 'asdfe45we45w345wegw345werjktjwertkj'; 16 | 17 | app.use(cors({credentials:true,origin:'http://localhost:3000'})); 18 | app.use(express.json()); 19 | app.use(cookieParser()); 20 | app.use('/uploads', express.static(__dirname + '/uploads')); 21 | 22 | mongoose.connect('mongodb+srv://blog:RD8paskYC8Ayj09u@cluster0.pflplid.mongodb.net/?retryWrites=true&w=majority'); 23 | 24 | app.post('/register', async (req,res) => { 25 | const {username,password} = req.body; 26 | try{ 27 | const userDoc = await User.create({ 28 | username, 29 | password:bcrypt.hashSync(password,salt), 30 | }); 31 | res.json(userDoc); 32 | } catch(e) { 33 | console.log(e); 34 | res.status(400).json(e); 35 | } 36 | }); 37 | 38 | app.post('/login', async (req,res) => { 39 | const {username,password} = req.body; 40 | const userDoc = await User.findOne({username}); 41 | const passOk = bcrypt.compareSync(password, userDoc.password); 42 | if (passOk) { 43 | // logged in 44 | jwt.sign({username,id:userDoc._id}, secret, {}, (err,token) => { 45 | if (err) throw err; 46 | res.cookie('token', token).json({ 47 | id:userDoc._id, 48 | username, 49 | }); 50 | }); 51 | } else { 52 | res.status(400).json('wrong credentials'); 53 | } 54 | }); 55 | 56 | app.get('/profile', (req,res) => { 57 | const {token} = req.cookies; 58 | jwt.verify(token, secret, {}, (err,info) => { 59 | if (err) throw err; 60 | res.json(info); 61 | }); 62 | }); 63 | 64 | app.post('/logout', (req,res) => { 65 | res.cookie('token', '').json('ok'); 66 | }); 67 | 68 | app.post('/post', uploadMiddleware.single('file'), async (req,res) => { 69 | const {originalname,path} = req.file; 70 | const parts = originalname.split('.'); 71 | const ext = parts[parts.length - 1]; 72 | const newPath = path+'.'+ext; 73 | fs.renameSync(path, newPath); 74 | 75 | const {token} = req.cookies; 76 | jwt.verify(token, secret, {}, async (err,info) => { 77 | if (err) throw err; 78 | const {title,summary,content} = req.body; 79 | const postDoc = await Post.create({ 80 | title, 81 | summary, 82 | content, 83 | cover:newPath, 84 | author:info.id, 85 | }); 86 | res.json(postDoc); 87 | }); 88 | 89 | }); 90 | 91 | app.put('/post',uploadMiddleware.single('file'), async (req,res) => { 92 | let newPath = null; 93 | if (req.file) { 94 | const {originalname,path} = req.file; 95 | const parts = originalname.split('.'); 96 | const ext = parts[parts.length - 1]; 97 | newPath = path+'.'+ext; 98 | fs.renameSync(path, newPath); 99 | } 100 | 101 | const {token} = req.cookies; 102 | jwt.verify(token, secret, {}, async (err,info) => { 103 | if (err) throw err; 104 | const {id,title,summary,content} = req.body; 105 | const postDoc = await Post.findById(id); 106 | const isAuthor = JSON.stringify(postDoc.author) === JSON.stringify(info.id); 107 | if (!isAuthor) { 108 | return res.status(400).json('you are not the author'); 109 | } 110 | await postDoc.update({ 111 | title, 112 | summary, 113 | content, 114 | cover: newPath ? newPath : postDoc.cover, 115 | }); 116 | 117 | res.json(postDoc); 118 | }); 119 | 120 | }); 121 | 122 | app.get('/post', async (req,res) => { 123 | res.json( 124 | await Post.find() 125 | .populate('author', ['username']) 126 | .sort({createdAt: -1}) 127 | .limit(20) 128 | ); 129 | }); 130 | 131 | app.get('/post/:id', async (req, res) => { 132 | const {id} = req.params; 133 | const postDoc = await Post.findById(id).populate('author', ['username']); 134 | res.json(postDoc); 135 | }) 136 | 137 | app.listen(4000); 138 | // -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@aws-crypto/ie11-detection@^2.0.0": 6 | version "2.0.2" 7 | resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz#9c39f4a5558196636031a933ec1b4792de959d6a" 8 | integrity sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw== 9 | dependencies: 10 | tslib "^1.11.1" 11 | 12 | "@aws-crypto/sha256-browser@2.0.0": 13 | version "2.0.0" 14 | resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz#741c9024df55ec59b51e5b1f5d806a4852699fb5" 15 | integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A== 16 | dependencies: 17 | "@aws-crypto/ie11-detection" "^2.0.0" 18 | "@aws-crypto/sha256-js" "^2.0.0" 19 | "@aws-crypto/supports-web-crypto" "^2.0.0" 20 | "@aws-crypto/util" "^2.0.0" 21 | "@aws-sdk/types" "^3.1.0" 22 | "@aws-sdk/util-locate-window" "^3.0.0" 23 | "@aws-sdk/util-utf8-browser" "^3.0.0" 24 | tslib "^1.11.1" 25 | 26 | "@aws-crypto/sha256-js@2.0.0": 27 | version "2.0.0" 28 | resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz#f1f936039bdebd0b9e2dd834d65afdc2aac4efcb" 29 | integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig== 30 | dependencies: 31 | "@aws-crypto/util" "^2.0.0" 32 | "@aws-sdk/types" "^3.1.0" 33 | tslib "^1.11.1" 34 | 35 | "@aws-crypto/sha256-js@^2.0.0": 36 | version "2.0.2" 37 | resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.2.tgz#c81e5d378b8a74ff1671b58632779986e50f4c99" 38 | integrity sha512-iXLdKH19qPmIC73fVCrHWCSYjN/sxaAvZ3jNNyw6FclmHyjLKg0f69WlC9KTnyElxCR5MO9SKaG00VwlJwyAkQ== 39 | dependencies: 40 | "@aws-crypto/util" "^2.0.2" 41 | "@aws-sdk/types" "^3.110.0" 42 | tslib "^1.11.1" 43 | 44 | "@aws-crypto/supports-web-crypto@^2.0.0": 45 | version "2.0.2" 46 | resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz#9f02aafad8789cac9c0ab5faaebb1ab8aa841338" 47 | integrity sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ== 48 | dependencies: 49 | tslib "^1.11.1" 50 | 51 | "@aws-crypto/util@^2.0.0", "@aws-crypto/util@^2.0.2": 52 | version "2.0.2" 53 | resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.2.tgz#adf5ff5dfbc7713082f897f1d01e551ce0edb9c0" 54 | integrity sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA== 55 | dependencies: 56 | "@aws-sdk/types" "^3.110.0" 57 | "@aws-sdk/util-utf8-browser" "^3.0.0" 58 | tslib "^1.11.1" 59 | 60 | "@aws-sdk/abort-controller@3.226.0": 61 | version "3.226.0" 62 | resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.226.0.tgz#3adffb8ee5af57ddb154e8544a8eeec76ad32271" 63 | integrity sha512-cJVzr1xxPBd08voknXvR0RLgtZKGKt6WyDpH/BaPCu3rfSqWCDZKzwqe940eqosjmKrxC6pUZNKASIqHOQ8xxQ== 64 | dependencies: 65 | "@aws-sdk/types" "3.226.0" 66 | tslib "^2.3.1" 67 | 68 | "@aws-sdk/client-cognito-identity@3.245.0": 69 | version "3.245.0" 70 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.245.0.tgz#b0cd78ae73457aa1bd2a7146921e55c82ab344d6" 71 | integrity sha512-c5briTS05rAioO5b84bVng9M1KyAXcxJtDHeuoeAAZBuU+Dd0Scg3vyXyAFlGI+TsNyxqHAqqRdAoG4WNxJo/Q== 72 | dependencies: 73 | "@aws-crypto/sha256-browser" "2.0.0" 74 | "@aws-crypto/sha256-js" "2.0.0" 75 | "@aws-sdk/client-sts" "3.245.0" 76 | "@aws-sdk/config-resolver" "3.234.0" 77 | "@aws-sdk/credential-provider-node" "3.245.0" 78 | "@aws-sdk/fetch-http-handler" "3.226.0" 79 | "@aws-sdk/hash-node" "3.226.0" 80 | "@aws-sdk/invalid-dependency" "3.226.0" 81 | "@aws-sdk/middleware-content-length" "3.226.0" 82 | "@aws-sdk/middleware-endpoint" "3.226.0" 83 | "@aws-sdk/middleware-host-header" "3.226.0" 84 | "@aws-sdk/middleware-logger" "3.226.0" 85 | "@aws-sdk/middleware-recursion-detection" "3.226.0" 86 | "@aws-sdk/middleware-retry" "3.235.0" 87 | "@aws-sdk/middleware-serde" "3.226.0" 88 | "@aws-sdk/middleware-signing" "3.226.0" 89 | "@aws-sdk/middleware-stack" "3.226.0" 90 | "@aws-sdk/middleware-user-agent" "3.226.0" 91 | "@aws-sdk/node-config-provider" "3.226.0" 92 | "@aws-sdk/node-http-handler" "3.226.0" 93 | "@aws-sdk/protocol-http" "3.226.0" 94 | "@aws-sdk/smithy-client" "3.234.0" 95 | "@aws-sdk/types" "3.226.0" 96 | "@aws-sdk/url-parser" "3.226.0" 97 | "@aws-sdk/util-base64" "3.208.0" 98 | "@aws-sdk/util-body-length-browser" "3.188.0" 99 | "@aws-sdk/util-body-length-node" "3.208.0" 100 | "@aws-sdk/util-defaults-mode-browser" "3.234.0" 101 | "@aws-sdk/util-defaults-mode-node" "3.234.0" 102 | "@aws-sdk/util-endpoints" "3.245.0" 103 | "@aws-sdk/util-retry" "3.229.0" 104 | "@aws-sdk/util-user-agent-browser" "3.226.0" 105 | "@aws-sdk/util-user-agent-node" "3.226.0" 106 | "@aws-sdk/util-utf8-browser" "3.188.0" 107 | "@aws-sdk/util-utf8-node" "3.208.0" 108 | tslib "^2.3.1" 109 | 110 | "@aws-sdk/client-sso-oidc@3.245.0": 111 | version "3.245.0" 112 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.245.0.tgz#3235c856c7bd2ceddf9ac1bda6d599465b8e3dd7" 113 | integrity sha512-0pGPA00kEsu2Yq1Ul+OwftHxws5YVllm4iZrPtGnqmXr7wmf6B9lOtrMQF44y7Tfw53po6+bKz08OKTEWkkjUA== 114 | dependencies: 115 | "@aws-crypto/sha256-browser" "2.0.0" 116 | "@aws-crypto/sha256-js" "2.0.0" 117 | "@aws-sdk/config-resolver" "3.234.0" 118 | "@aws-sdk/fetch-http-handler" "3.226.0" 119 | "@aws-sdk/hash-node" "3.226.0" 120 | "@aws-sdk/invalid-dependency" "3.226.0" 121 | "@aws-sdk/middleware-content-length" "3.226.0" 122 | "@aws-sdk/middleware-endpoint" "3.226.0" 123 | "@aws-sdk/middleware-host-header" "3.226.0" 124 | "@aws-sdk/middleware-logger" "3.226.0" 125 | "@aws-sdk/middleware-recursion-detection" "3.226.0" 126 | "@aws-sdk/middleware-retry" "3.235.0" 127 | "@aws-sdk/middleware-serde" "3.226.0" 128 | "@aws-sdk/middleware-stack" "3.226.0" 129 | "@aws-sdk/middleware-user-agent" "3.226.0" 130 | "@aws-sdk/node-config-provider" "3.226.0" 131 | "@aws-sdk/node-http-handler" "3.226.0" 132 | "@aws-sdk/protocol-http" "3.226.0" 133 | "@aws-sdk/smithy-client" "3.234.0" 134 | "@aws-sdk/types" "3.226.0" 135 | "@aws-sdk/url-parser" "3.226.0" 136 | "@aws-sdk/util-base64" "3.208.0" 137 | "@aws-sdk/util-body-length-browser" "3.188.0" 138 | "@aws-sdk/util-body-length-node" "3.208.0" 139 | "@aws-sdk/util-defaults-mode-browser" "3.234.0" 140 | "@aws-sdk/util-defaults-mode-node" "3.234.0" 141 | "@aws-sdk/util-endpoints" "3.245.0" 142 | "@aws-sdk/util-retry" "3.229.0" 143 | "@aws-sdk/util-user-agent-browser" "3.226.0" 144 | "@aws-sdk/util-user-agent-node" "3.226.0" 145 | "@aws-sdk/util-utf8-browser" "3.188.0" 146 | "@aws-sdk/util-utf8-node" "3.208.0" 147 | tslib "^2.3.1" 148 | 149 | "@aws-sdk/client-sso@3.245.0": 150 | version "3.245.0" 151 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.245.0.tgz#91ee2973c9cc052cc3afcecd789cd53ffc9a1950" 152 | integrity sha512-dxzRwRo55ZNQ4hQigC+cishxLSWlBrbr3iszG0FLviavLDOlnVG5UUxWpOIGvwr8pYiSfM4jnfMxiwYwiCLg1g== 153 | dependencies: 154 | "@aws-crypto/sha256-browser" "2.0.0" 155 | "@aws-crypto/sha256-js" "2.0.0" 156 | "@aws-sdk/config-resolver" "3.234.0" 157 | "@aws-sdk/fetch-http-handler" "3.226.0" 158 | "@aws-sdk/hash-node" "3.226.0" 159 | "@aws-sdk/invalid-dependency" "3.226.0" 160 | "@aws-sdk/middleware-content-length" "3.226.0" 161 | "@aws-sdk/middleware-endpoint" "3.226.0" 162 | "@aws-sdk/middleware-host-header" "3.226.0" 163 | "@aws-sdk/middleware-logger" "3.226.0" 164 | "@aws-sdk/middleware-recursion-detection" "3.226.0" 165 | "@aws-sdk/middleware-retry" "3.235.0" 166 | "@aws-sdk/middleware-serde" "3.226.0" 167 | "@aws-sdk/middleware-stack" "3.226.0" 168 | "@aws-sdk/middleware-user-agent" "3.226.0" 169 | "@aws-sdk/node-config-provider" "3.226.0" 170 | "@aws-sdk/node-http-handler" "3.226.0" 171 | "@aws-sdk/protocol-http" "3.226.0" 172 | "@aws-sdk/smithy-client" "3.234.0" 173 | "@aws-sdk/types" "3.226.0" 174 | "@aws-sdk/url-parser" "3.226.0" 175 | "@aws-sdk/util-base64" "3.208.0" 176 | "@aws-sdk/util-body-length-browser" "3.188.0" 177 | "@aws-sdk/util-body-length-node" "3.208.0" 178 | "@aws-sdk/util-defaults-mode-browser" "3.234.0" 179 | "@aws-sdk/util-defaults-mode-node" "3.234.0" 180 | "@aws-sdk/util-endpoints" "3.245.0" 181 | "@aws-sdk/util-retry" "3.229.0" 182 | "@aws-sdk/util-user-agent-browser" "3.226.0" 183 | "@aws-sdk/util-user-agent-node" "3.226.0" 184 | "@aws-sdk/util-utf8-browser" "3.188.0" 185 | "@aws-sdk/util-utf8-node" "3.208.0" 186 | tslib "^2.3.1" 187 | 188 | "@aws-sdk/client-sts@3.245.0": 189 | version "3.245.0" 190 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.245.0.tgz#c1c46ca94d11786cf67a5f5adb6a44cd35d73546" 191 | integrity sha512-E+7v2sy34TLni/Dmz6bTU20NWvbHYH9sVUHKQ9kHhmFopUWrs4Nt77f85PbuiKJz/irjUh9ppT5q1odJNRKRVQ== 192 | dependencies: 193 | "@aws-crypto/sha256-browser" "2.0.0" 194 | "@aws-crypto/sha256-js" "2.0.0" 195 | "@aws-sdk/config-resolver" "3.234.0" 196 | "@aws-sdk/credential-provider-node" "3.245.0" 197 | "@aws-sdk/fetch-http-handler" "3.226.0" 198 | "@aws-sdk/hash-node" "3.226.0" 199 | "@aws-sdk/invalid-dependency" "3.226.0" 200 | "@aws-sdk/middleware-content-length" "3.226.0" 201 | "@aws-sdk/middleware-endpoint" "3.226.0" 202 | "@aws-sdk/middleware-host-header" "3.226.0" 203 | "@aws-sdk/middleware-logger" "3.226.0" 204 | "@aws-sdk/middleware-recursion-detection" "3.226.0" 205 | "@aws-sdk/middleware-retry" "3.235.0" 206 | "@aws-sdk/middleware-sdk-sts" "3.226.0" 207 | "@aws-sdk/middleware-serde" "3.226.0" 208 | "@aws-sdk/middleware-signing" "3.226.0" 209 | "@aws-sdk/middleware-stack" "3.226.0" 210 | "@aws-sdk/middleware-user-agent" "3.226.0" 211 | "@aws-sdk/node-config-provider" "3.226.0" 212 | "@aws-sdk/node-http-handler" "3.226.0" 213 | "@aws-sdk/protocol-http" "3.226.0" 214 | "@aws-sdk/smithy-client" "3.234.0" 215 | "@aws-sdk/types" "3.226.0" 216 | "@aws-sdk/url-parser" "3.226.0" 217 | "@aws-sdk/util-base64" "3.208.0" 218 | "@aws-sdk/util-body-length-browser" "3.188.0" 219 | "@aws-sdk/util-body-length-node" "3.208.0" 220 | "@aws-sdk/util-defaults-mode-browser" "3.234.0" 221 | "@aws-sdk/util-defaults-mode-node" "3.234.0" 222 | "@aws-sdk/util-endpoints" "3.245.0" 223 | "@aws-sdk/util-retry" "3.229.0" 224 | "@aws-sdk/util-user-agent-browser" "3.226.0" 225 | "@aws-sdk/util-user-agent-node" "3.226.0" 226 | "@aws-sdk/util-utf8-browser" "3.188.0" 227 | "@aws-sdk/util-utf8-node" "3.208.0" 228 | fast-xml-parser "4.0.11" 229 | tslib "^2.3.1" 230 | 231 | "@aws-sdk/config-resolver@3.234.0": 232 | version "3.234.0" 233 | resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.234.0.tgz#29d8936b713b7ee59b26b335d4f6715d644fc089" 234 | integrity sha512-uZxy4wzllfvgCQxVc+Iqhde0NGAnfmV2hWR6ejadJaAFTuYNvQiRg9IqJy3pkyDPqXySiJ8Bom5PoJfgn55J/A== 235 | dependencies: 236 | "@aws-sdk/signature-v4" "3.226.0" 237 | "@aws-sdk/types" "3.226.0" 238 | "@aws-sdk/util-config-provider" "3.208.0" 239 | "@aws-sdk/util-middleware" "3.226.0" 240 | tslib "^2.3.1" 241 | 242 | "@aws-sdk/credential-provider-cognito-identity@3.245.0": 243 | version "3.245.0" 244 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.245.0.tgz#420cbb3c682c7647ddf44d8eb02bb06a26ebe364" 245 | integrity sha512-DkiPv7Yb9iw3yAzvWUAkXrI23F1+kV8grdXzlSzob5suqv/dVON5pFXK9Siz62WwWsa2FeCEpgEF7RA0mrWLtA== 246 | dependencies: 247 | "@aws-sdk/client-cognito-identity" "3.245.0" 248 | "@aws-sdk/property-provider" "3.226.0" 249 | "@aws-sdk/types" "3.226.0" 250 | tslib "^2.3.1" 251 | 252 | "@aws-sdk/credential-provider-env@3.226.0": 253 | version "3.226.0" 254 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.226.0.tgz#0bcb89a9abc166b3a48f5c255b9fcabc4cb80daf" 255 | integrity sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA== 256 | dependencies: 257 | "@aws-sdk/property-provider" "3.226.0" 258 | "@aws-sdk/types" "3.226.0" 259 | tslib "^2.3.1" 260 | 261 | "@aws-sdk/credential-provider-imds@3.226.0": 262 | version "3.226.0" 263 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.226.0.tgz#0a4558449eb261412b0490ea1c3242eb91659759" 264 | integrity sha512-//z/COQm2AjYFI1Lb0wKHTQSrvLFTyuKLFQGPJsKS7DPoxGOCKB7hmYerlbl01IDoCxTdyL//TyyPxbZEOQD5Q== 265 | dependencies: 266 | "@aws-sdk/node-config-provider" "3.226.0" 267 | "@aws-sdk/property-provider" "3.226.0" 268 | "@aws-sdk/types" "3.226.0" 269 | "@aws-sdk/url-parser" "3.226.0" 270 | tslib "^2.3.1" 271 | 272 | "@aws-sdk/credential-provider-ini@3.245.0": 273 | version "3.245.0" 274 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.245.0.tgz#6d2b35603c831366cb66f7c651a75c3afd54ad24" 275 | integrity sha512-1SjfVc5Wg0lLRUvwMrfjGgFkl+zfxn74gnkPr6by1QyMAoTzmeUkalPLAIqd+uHtFom9e3K633BQtX7zVPZ5XQ== 276 | dependencies: 277 | "@aws-sdk/credential-provider-env" "3.226.0" 278 | "@aws-sdk/credential-provider-imds" "3.226.0" 279 | "@aws-sdk/credential-provider-process" "3.226.0" 280 | "@aws-sdk/credential-provider-sso" "3.245.0" 281 | "@aws-sdk/credential-provider-web-identity" "3.226.0" 282 | "@aws-sdk/property-provider" "3.226.0" 283 | "@aws-sdk/shared-ini-file-loader" "3.226.0" 284 | "@aws-sdk/types" "3.226.0" 285 | tslib "^2.3.1" 286 | 287 | "@aws-sdk/credential-provider-node@3.245.0": 288 | version "3.245.0" 289 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.245.0.tgz#3df89fa2668940902b4c16c28df3d4e30b907ad2" 290 | integrity sha512-Dwv8zmRLTDLeEkGrK/sLNFZSC+ahXZxr07CuID054QKACIdUEvkqYlnalRiTeXngiHGQ54u8wU7f0D32R2oL0g== 291 | dependencies: 292 | "@aws-sdk/credential-provider-env" "3.226.0" 293 | "@aws-sdk/credential-provider-imds" "3.226.0" 294 | "@aws-sdk/credential-provider-ini" "3.245.0" 295 | "@aws-sdk/credential-provider-process" "3.226.0" 296 | "@aws-sdk/credential-provider-sso" "3.245.0" 297 | "@aws-sdk/credential-provider-web-identity" "3.226.0" 298 | "@aws-sdk/property-provider" "3.226.0" 299 | "@aws-sdk/shared-ini-file-loader" "3.226.0" 300 | "@aws-sdk/types" "3.226.0" 301 | tslib "^2.3.1" 302 | 303 | "@aws-sdk/credential-provider-process@3.226.0": 304 | version "3.226.0" 305 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.226.0.tgz#bcd73a6d31d1b3181917d56e54aacbee242b077f" 306 | integrity sha512-iUDMdnrTvbvaCFhWwqyXrhvQ9+ojPqPqXhwZtY1X/Qaz+73S9gXBPJHZaZb2Ke0yKE1Ql3bJbKvmmxC/qLQMng== 307 | dependencies: 308 | "@aws-sdk/property-provider" "3.226.0" 309 | "@aws-sdk/shared-ini-file-loader" "3.226.0" 310 | "@aws-sdk/types" "3.226.0" 311 | tslib "^2.3.1" 312 | 313 | "@aws-sdk/credential-provider-sso@3.245.0": 314 | version "3.245.0" 315 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.245.0.tgz#e5ea2db3d94e0bcc1af276c42363a9855294d812" 316 | integrity sha512-txWrJc0WNBhXMi7q+twjx7cs/qzgTfbQ+vbag5idRmdoUeiR8rfLvihCab2NaGg50xhh+TaoUCXrgJp3E/XjYQ== 317 | dependencies: 318 | "@aws-sdk/client-sso" "3.245.0" 319 | "@aws-sdk/property-provider" "3.226.0" 320 | "@aws-sdk/shared-ini-file-loader" "3.226.0" 321 | "@aws-sdk/token-providers" "3.245.0" 322 | "@aws-sdk/types" "3.226.0" 323 | tslib "^2.3.1" 324 | 325 | "@aws-sdk/credential-provider-web-identity@3.226.0": 326 | version "3.226.0" 327 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.226.0.tgz#2b7d20f93a40e2243c7e3857f54b103d19a946fb" 328 | integrity sha512-CCpv847rLB0SFOHz2igvUMFAzeT2fD3YnY4C8jltuJoEkn0ITn1Hlgt13nTJ5BUuvyti2mvyXZHmNzhMIMrIlw== 329 | dependencies: 330 | "@aws-sdk/property-provider" "3.226.0" 331 | "@aws-sdk/types" "3.226.0" 332 | tslib "^2.3.1" 333 | 334 | "@aws-sdk/credential-providers@^3.186.0": 335 | version "3.245.0" 336 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.245.0.tgz#5c2f8c1a1809daa98728bf8e1fac079656eed76b" 337 | integrity sha512-6Uhsxk6MOuWplejhPJf7XDhegHmcZfj8hwnF4mXFJ6u4b2RxWPQCnqPcA0+VoAzIMUqbjqvkSzmVjQelGFtjNg== 338 | dependencies: 339 | "@aws-sdk/client-cognito-identity" "3.245.0" 340 | "@aws-sdk/client-sso" "3.245.0" 341 | "@aws-sdk/client-sts" "3.245.0" 342 | "@aws-sdk/credential-provider-cognito-identity" "3.245.0" 343 | "@aws-sdk/credential-provider-env" "3.226.0" 344 | "@aws-sdk/credential-provider-imds" "3.226.0" 345 | "@aws-sdk/credential-provider-ini" "3.245.0" 346 | "@aws-sdk/credential-provider-node" "3.245.0" 347 | "@aws-sdk/credential-provider-process" "3.226.0" 348 | "@aws-sdk/credential-provider-sso" "3.245.0" 349 | "@aws-sdk/credential-provider-web-identity" "3.226.0" 350 | "@aws-sdk/property-provider" "3.226.0" 351 | "@aws-sdk/shared-ini-file-loader" "3.226.0" 352 | "@aws-sdk/types" "3.226.0" 353 | tslib "^2.3.1" 354 | 355 | "@aws-sdk/fetch-http-handler@3.226.0": 356 | version "3.226.0" 357 | resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.226.0.tgz#350f78fc18fe9cb0a889ef4870838a8fcfa8855c" 358 | integrity sha512-JewZPMNEBXfi1xVnRa7pVtK/zgZD8/lQ/YnD8pq79WuMa2cwyhDtr8oqCoqsPW+WJT5ScXoMtuHxN78l8eKWgg== 359 | dependencies: 360 | "@aws-sdk/protocol-http" "3.226.0" 361 | "@aws-sdk/querystring-builder" "3.226.0" 362 | "@aws-sdk/types" "3.226.0" 363 | "@aws-sdk/util-base64" "3.208.0" 364 | tslib "^2.3.1" 365 | 366 | "@aws-sdk/hash-node@3.226.0": 367 | version "3.226.0" 368 | resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.226.0.tgz#252d98bcbb1e13c8f26d9d416db03cf8cceac185" 369 | integrity sha512-MdlJhJ9/Espwd0+gUXdZRsHuostB2WxEVAszWxobP0FTT9PnicqnfK7ExmW+DUAc0ywxtEbR3e0UND65rlSTVw== 370 | dependencies: 371 | "@aws-sdk/types" "3.226.0" 372 | "@aws-sdk/util-buffer-from" "3.208.0" 373 | tslib "^2.3.1" 374 | 375 | "@aws-sdk/invalid-dependency@3.226.0": 376 | version "3.226.0" 377 | resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.226.0.tgz#74586f60859ed1813985e3d642066cc46d2e9d40" 378 | integrity sha512-QXOYFmap8g9QzRjumcRCIo2GEZkdCwd7ePQW0OABWPhKHzlJ74vvBxywjU3s39EEBEluWXtZ7Iufg6GxZM4ifw== 379 | dependencies: 380 | "@aws-sdk/types" "3.226.0" 381 | tslib "^2.3.1" 382 | 383 | "@aws-sdk/is-array-buffer@3.201.0": 384 | version "3.201.0" 385 | resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz#06e557adc284fac2f26071c2944ae01f61b95854" 386 | integrity sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg== 387 | dependencies: 388 | tslib "^2.3.1" 389 | 390 | "@aws-sdk/middleware-content-length@3.226.0": 391 | version "3.226.0" 392 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.226.0.tgz#6cc952049f6e3cdc3a3778c9dce9f2aee942b5fe" 393 | integrity sha512-ksUzlHJN2JMuyavjA46a4sctvnrnITqt2tbGGWWrAuXY1mel2j+VbgnmJUiwHKUO6bTFBBeft5Vd1TSOb4JmiA== 394 | dependencies: 395 | "@aws-sdk/protocol-http" "3.226.0" 396 | "@aws-sdk/types" "3.226.0" 397 | tslib "^2.3.1" 398 | 399 | "@aws-sdk/middleware-endpoint@3.226.0": 400 | version "3.226.0" 401 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.226.0.tgz#d776480be4b5a9534c2805b7425be05497f840b7" 402 | integrity sha512-EvLFafjtUxTT0AC9p3aBQu1/fjhWdIeK58jIXaNFONfZ3F8QbEYUPuF/SqZvJM6cWfOO9qwYKkRDbCSTYhprIg== 403 | dependencies: 404 | "@aws-sdk/middleware-serde" "3.226.0" 405 | "@aws-sdk/protocol-http" "3.226.0" 406 | "@aws-sdk/signature-v4" "3.226.0" 407 | "@aws-sdk/types" "3.226.0" 408 | "@aws-sdk/url-parser" "3.226.0" 409 | "@aws-sdk/util-config-provider" "3.208.0" 410 | "@aws-sdk/util-middleware" "3.226.0" 411 | tslib "^2.3.1" 412 | 413 | "@aws-sdk/middleware-host-header@3.226.0": 414 | version "3.226.0" 415 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.226.0.tgz#1e1ecb034929e0dbc532ae501fd93781438f9a24" 416 | integrity sha512-haVkWVh6BUPwKgWwkL6sDvTkcZWvJjv8AgC8jiQuSl8GLZdzHTB8Qhi3IsfFta9HAuoLjxheWBE5Z/L0UrfhLA== 417 | dependencies: 418 | "@aws-sdk/protocol-http" "3.226.0" 419 | "@aws-sdk/types" "3.226.0" 420 | tslib "^2.3.1" 421 | 422 | "@aws-sdk/middleware-logger@3.226.0": 423 | version "3.226.0" 424 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.226.0.tgz#37fd0e62f555befd526b03748c3aab60dcefecf3" 425 | integrity sha512-m9gtLrrYnpN6yckcQ09rV7ExWOLMuq8mMPF/K3DbL/YL0TuILu9i2T1W+JuxSX+K9FMG2HrLAKivE/kMLr55xA== 426 | dependencies: 427 | "@aws-sdk/types" "3.226.0" 428 | tslib "^2.3.1" 429 | 430 | "@aws-sdk/middleware-recursion-detection@3.226.0": 431 | version "3.226.0" 432 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.226.0.tgz#e149b9138e94d2fa70e7752ba6b1ccb537009706" 433 | integrity sha512-mwRbdKEUeuNH5TEkyZ5FWxp6bL2UC1WbY+LDv6YjHxmSMKpAoOueEdtU34PqDOLrpXXxIGHDFmjeGeMfktyEcA== 434 | dependencies: 435 | "@aws-sdk/protocol-http" "3.226.0" 436 | "@aws-sdk/types" "3.226.0" 437 | tslib "^2.3.1" 438 | 439 | "@aws-sdk/middleware-retry@3.235.0": 440 | version "3.235.0" 441 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.235.0.tgz#c0d938db85a771812204ed5e981eaf5eef6b580b" 442 | integrity sha512-50WHbJGpD3SNp9763MAlHqIhXil++JdQbKejNpHg7HsJne/ao3ub+fDOfx//mMBjpzBV25BGd5UlfL6blrClSg== 443 | dependencies: 444 | "@aws-sdk/protocol-http" "3.226.0" 445 | "@aws-sdk/service-error-classification" "3.229.0" 446 | "@aws-sdk/types" "3.226.0" 447 | "@aws-sdk/util-middleware" "3.226.0" 448 | "@aws-sdk/util-retry" "3.229.0" 449 | tslib "^2.3.1" 450 | uuid "^8.3.2" 451 | 452 | "@aws-sdk/middleware-sdk-sts@3.226.0": 453 | version "3.226.0" 454 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.226.0.tgz#e8a8cf42bba8963259546120cde1e408628863f9" 455 | integrity sha512-NN9T/qoSD1kZvAT+VLny3NnlqgylYQcsgV3rvi/8lYzw/G/2s8VS6sm/VTWGGZhx08wZRv20MWzYu3bftcyqUg== 456 | dependencies: 457 | "@aws-sdk/middleware-signing" "3.226.0" 458 | "@aws-sdk/property-provider" "3.226.0" 459 | "@aws-sdk/protocol-http" "3.226.0" 460 | "@aws-sdk/signature-v4" "3.226.0" 461 | "@aws-sdk/types" "3.226.0" 462 | tslib "^2.3.1" 463 | 464 | "@aws-sdk/middleware-serde@3.226.0": 465 | version "3.226.0" 466 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.226.0.tgz#c837ef33b34bec2af19a1c177a0c02a1ae20da5e" 467 | integrity sha512-nPuOOAkSfx9TxzdKFx0X2bDlinOxGrqD7iof926K/AEflxGD1DBdcaDdjlYlPDW2CVE8LV/rAgbYuLxh/E/1VA== 468 | dependencies: 469 | "@aws-sdk/types" "3.226.0" 470 | tslib "^2.3.1" 471 | 472 | "@aws-sdk/middleware-signing@3.226.0": 473 | version "3.226.0" 474 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz#ebb1d142ac2767466f2e464bb7dba9837143b4d1" 475 | integrity sha512-E6HmtPcl+IjYDDzi1xI2HpCbBq2avNWcjvCriMZWuTAtRVpnA6XDDGW5GY85IfS3A8G8vuWqEVPr8JcYUcjfew== 476 | dependencies: 477 | "@aws-sdk/property-provider" "3.226.0" 478 | "@aws-sdk/protocol-http" "3.226.0" 479 | "@aws-sdk/signature-v4" "3.226.0" 480 | "@aws-sdk/types" "3.226.0" 481 | "@aws-sdk/util-middleware" "3.226.0" 482 | tslib "^2.3.1" 483 | 484 | "@aws-sdk/middleware-stack@3.226.0": 485 | version "3.226.0" 486 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz#b0408370270188103987c457c758f9cf7651754f" 487 | integrity sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug== 488 | dependencies: 489 | tslib "^2.3.1" 490 | 491 | "@aws-sdk/middleware-user-agent@3.226.0": 492 | version "3.226.0" 493 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz#26653189f3e8da86514f77688a80d0ad445c0799" 494 | integrity sha512-N1WnfzCW1Y5yWhVAphf8OPGTe8Df3vmV7/LdsoQfmpkCZgLZeK2o0xITkUQhRj1mbw7yp8tVFLFV3R2lMurdAQ== 495 | dependencies: 496 | "@aws-sdk/protocol-http" "3.226.0" 497 | "@aws-sdk/types" "3.226.0" 498 | tslib "^2.3.1" 499 | 500 | "@aws-sdk/node-config-provider@3.226.0": 501 | version "3.226.0" 502 | resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.226.0.tgz#a9e21512ef824142bb928a0b2f85b39a75b8964d" 503 | integrity sha512-B8lQDqiRk7X5izFEUMXmi8CZLOKCTWQJU9HQf3ako+sF0gexo4nHN3jhoRWyLtcgC5S3on/2jxpAcqtm7kuY3w== 504 | dependencies: 505 | "@aws-sdk/property-provider" "3.226.0" 506 | "@aws-sdk/shared-ini-file-loader" "3.226.0" 507 | "@aws-sdk/types" "3.226.0" 508 | tslib "^2.3.1" 509 | 510 | "@aws-sdk/node-http-handler@3.226.0": 511 | version "3.226.0" 512 | resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.226.0.tgz#373886e949d214a99a3521bd6c141fa17b0e89fe" 513 | integrity sha512-xQCddnZNMiPmjr3W7HYM+f5ir4VfxgJh37eqZwX6EZmyItFpNNeVzKUgA920ka1VPz/ZUYB+2OFGiX3LCLkkaA== 514 | dependencies: 515 | "@aws-sdk/abort-controller" "3.226.0" 516 | "@aws-sdk/protocol-http" "3.226.0" 517 | "@aws-sdk/querystring-builder" "3.226.0" 518 | "@aws-sdk/types" "3.226.0" 519 | tslib "^2.3.1" 520 | 521 | "@aws-sdk/property-provider@3.226.0": 522 | version "3.226.0" 523 | resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.226.0.tgz#ef0ff37c319dc37a52f08fa7544f861308a3bbd8" 524 | integrity sha512-TsljjG+Sg0LmdgfiAlWohluWKnxB/k8xenjeozZfzOr5bHmNHtdbWv6BtNvD/R83hw7SFXxbJHlD5H4u9p2NFg== 525 | dependencies: 526 | "@aws-sdk/types" "3.226.0" 527 | tslib "^2.3.1" 528 | 529 | "@aws-sdk/protocol-http@3.226.0": 530 | version "3.226.0" 531 | resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.226.0.tgz#0af7bdc331508e556b722aad0cb78eefa93466e3" 532 | integrity sha512-zWkVqiTA9RXL6y0hhfZc9bcU4DX2NI6Hw9IhQmSPeM59mdbPjJlY4bLlMr5YxywqO3yQ/ylNoAfrEzrDjlOSRg== 533 | dependencies: 534 | "@aws-sdk/types" "3.226.0" 535 | tslib "^2.3.1" 536 | 537 | "@aws-sdk/querystring-builder@3.226.0": 538 | version "3.226.0" 539 | resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz#11cd751abeac66f1f9349225454bac3e39808926" 540 | integrity sha512-LVurypuNeotO4lmirKXRC4NYrZRAyMJXuwO0f2a5ZAUJCjauwYrifKue6yCfU7bls7gut7nfcR6B99WBYpHs3g== 541 | dependencies: 542 | "@aws-sdk/types" "3.226.0" 543 | "@aws-sdk/util-uri-escape" "3.201.0" 544 | tslib "^2.3.1" 545 | 546 | "@aws-sdk/querystring-parser@3.226.0": 547 | version "3.226.0" 548 | resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz#ba6a26727c98d46c95180e6cdc463039c5e4740d" 549 | integrity sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A== 550 | dependencies: 551 | "@aws-sdk/types" "3.226.0" 552 | tslib "^2.3.1" 553 | 554 | "@aws-sdk/service-error-classification@3.229.0": 555 | version "3.229.0" 556 | resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz#768f1eb92775ca2cc99c6451a2303a0008a28fc1" 557 | integrity sha512-dnzWWQ0/NoWMUZ5C0DW3dPm0wC1O76Y/SpKbuJzWPkx1EYy6r8p32Ly4D9vUzrKDbRGf48YHIF2kOkBmu21CLg== 558 | 559 | "@aws-sdk/shared-ini-file-loader@3.226.0": 560 | version "3.226.0" 561 | resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.226.0.tgz#d0ade86834b1803ce4b9dcab459e57e0376fd6cf" 562 | integrity sha512-661VQefsARxVyyV2FX9V61V+nNgImk7aN2hYlFKla6BCwZfMng+dEtD0xVGyg1PfRw0qvEv5LQyxMVgHcUSevA== 563 | dependencies: 564 | "@aws-sdk/types" "3.226.0" 565 | tslib "^2.3.1" 566 | 567 | "@aws-sdk/signature-v4@3.226.0": 568 | version "3.226.0" 569 | resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz#100390b5c5b55a9b0abd05b06fceb36cfa0ecf98" 570 | integrity sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw== 571 | dependencies: 572 | "@aws-sdk/is-array-buffer" "3.201.0" 573 | "@aws-sdk/types" "3.226.0" 574 | "@aws-sdk/util-hex-encoding" "3.201.0" 575 | "@aws-sdk/util-middleware" "3.226.0" 576 | "@aws-sdk/util-uri-escape" "3.201.0" 577 | tslib "^2.3.1" 578 | 579 | "@aws-sdk/smithy-client@3.234.0": 580 | version "3.234.0" 581 | resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz#8f0021e021f0e52730ed0a8f271f839eb63bc374" 582 | integrity sha512-8AtR/k4vsFvjXeQbIzq/Wy7Nbk48Ou0wUEeVYPHWHPSU8QamFWORkOwmKtKMfHAyZvmqiAPeQqHFkq+UJhWyyQ== 583 | dependencies: 584 | "@aws-sdk/middleware-stack" "3.226.0" 585 | "@aws-sdk/types" "3.226.0" 586 | tslib "^2.3.1" 587 | 588 | "@aws-sdk/token-providers@3.245.0": 589 | version "3.245.0" 590 | resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.245.0.tgz#7c675bd88c3fc2bd32e8d760d04472a51f0202fc" 591 | integrity sha512-m/spXR/vEXGb+zMqRUMQYVMwFZSTdK5RkddYqamYkNhIoLm60EYeRu57JsMMs5djKi8dBRSKiXwVHx0l2rXMjg== 592 | dependencies: 593 | "@aws-sdk/client-sso-oidc" "3.245.0" 594 | "@aws-sdk/property-provider" "3.226.0" 595 | "@aws-sdk/shared-ini-file-loader" "3.226.0" 596 | "@aws-sdk/types" "3.226.0" 597 | tslib "^2.3.1" 598 | 599 | "@aws-sdk/types@3.226.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0": 600 | version "3.226.0" 601 | resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.226.0.tgz#3dba2ba223fbb8ac1ebc84de0e036ce69a81d469" 602 | integrity sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A== 603 | dependencies: 604 | tslib "^2.3.1" 605 | 606 | "@aws-sdk/url-parser@3.226.0": 607 | version "3.226.0" 608 | resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz#f53d1f868b27fe74aca091a799f2af56237b15a2" 609 | integrity sha512-p5RLE0QWyP0OcTOLmFcLdVgUcUEzmEfmdrnOxyNzomcYb0p3vUagA5zfa1HVK2azsQJFBv28GfvMnba9bGhObg== 610 | dependencies: 611 | "@aws-sdk/querystring-parser" "3.226.0" 612 | "@aws-sdk/types" "3.226.0" 613 | tslib "^2.3.1" 614 | 615 | "@aws-sdk/util-base64@3.208.0": 616 | version "3.208.0" 617 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz#36b430e5396251f761590f7c2f0c5c12193f353c" 618 | integrity sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg== 619 | dependencies: 620 | "@aws-sdk/util-buffer-from" "3.208.0" 621 | tslib "^2.3.1" 622 | 623 | "@aws-sdk/util-body-length-browser@3.188.0": 624 | version "3.188.0" 625 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz#e1d949318c10a621b38575a9ef01e39f9857ddb0" 626 | integrity sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg== 627 | dependencies: 628 | tslib "^2.3.1" 629 | 630 | "@aws-sdk/util-body-length-node@3.208.0": 631 | version "3.208.0" 632 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz#baabd1fa1206ff2bd4ce3785122d86eb3258dd20" 633 | integrity sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg== 634 | dependencies: 635 | tslib "^2.3.1" 636 | 637 | "@aws-sdk/util-buffer-from@3.208.0": 638 | version "3.208.0" 639 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz#285e86f6dc9030148a4147d65239e75cb254a1b0" 640 | integrity sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw== 641 | dependencies: 642 | "@aws-sdk/is-array-buffer" "3.201.0" 643 | tslib "^2.3.1" 644 | 645 | "@aws-sdk/util-config-provider@3.208.0": 646 | version "3.208.0" 647 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz#c485fd83fbac051337e5f6be60ea3f9fa61c0139" 648 | integrity sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg== 649 | dependencies: 650 | tslib "^2.3.1" 651 | 652 | "@aws-sdk/util-defaults-mode-browser@3.234.0": 653 | version "3.234.0" 654 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.234.0.tgz#1151f0beabdb46c1aaca42a1ad0714b8e686acaa" 655 | integrity sha512-IHMKXjTbOD8XMz5+2oCOsVP94BYb9YyjXdns0aAXr2NAo7k2+RCzXQ2DebJXppGda1F6opFutoKwyVSN0cmbMw== 656 | dependencies: 657 | "@aws-sdk/property-provider" "3.226.0" 658 | "@aws-sdk/types" "3.226.0" 659 | bowser "^2.11.0" 660 | tslib "^2.3.1" 661 | 662 | "@aws-sdk/util-defaults-mode-node@3.234.0": 663 | version "3.234.0" 664 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.234.0.tgz#0607f1dc7a4dc896dfcaf377522535ca9ffba7a9" 665 | integrity sha512-UGjQ+OjBYYhxFVtUY+jtr0ZZgzZh6OHtYwRhFt8IHewJXFCfZTyfsbX20szBj5y1S4HRIUJ7cwBLIytTqMbI5w== 666 | dependencies: 667 | "@aws-sdk/config-resolver" "3.234.0" 668 | "@aws-sdk/credential-provider-imds" "3.226.0" 669 | "@aws-sdk/node-config-provider" "3.226.0" 670 | "@aws-sdk/property-provider" "3.226.0" 671 | "@aws-sdk/types" "3.226.0" 672 | tslib "^2.3.1" 673 | 674 | "@aws-sdk/util-endpoints@3.245.0": 675 | version "3.245.0" 676 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.245.0.tgz#6e161e92b4e2b89bcd98c40909f3f266851c504d" 677 | integrity sha512-UNOFquB1tKx+8RT8n82Zb5tIwDyZHVPBg/m0LB0RsLETjr6krien5ASpqWezsXKIR1hftN9uaxN4bvf2dZrWHg== 678 | dependencies: 679 | "@aws-sdk/types" "3.226.0" 680 | tslib "^2.3.1" 681 | 682 | "@aws-sdk/util-hex-encoding@3.201.0": 683 | version "3.201.0" 684 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz#21d7ec319240ee68c33d938e71cb79830bea315d" 685 | integrity sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA== 686 | dependencies: 687 | tslib "^2.3.1" 688 | 689 | "@aws-sdk/util-locate-window@^3.0.0": 690 | version "3.208.0" 691 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz#0f598fc238a1256e4bcb64d01459f03a922dd4c3" 692 | integrity sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg== 693 | dependencies: 694 | tslib "^2.3.1" 695 | 696 | "@aws-sdk/util-middleware@3.226.0": 697 | version "3.226.0" 698 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz#7069ae96e2e00f6bb82c722e073922fb2b051ca2" 699 | integrity sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ== 700 | dependencies: 701 | tslib "^2.3.1" 702 | 703 | "@aws-sdk/util-retry@3.229.0": 704 | version "3.229.0" 705 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz#17aad47b067e81acf644d5c2c0f2325f2d8faf4f" 706 | integrity sha512-0zKTqi0P1inD0LzIMuXRIYYQ/8c1lWMg/cfiqUcIAF1TpatlpZuN7umU0ierpBFud7S+zDgg0oemh+Nj8xliJw== 707 | dependencies: 708 | "@aws-sdk/service-error-classification" "3.229.0" 709 | tslib "^2.3.1" 710 | 711 | "@aws-sdk/util-uri-escape@3.201.0": 712 | version "3.201.0" 713 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz#5e708d4cde001a4558ee616f889ceacfadd2ab03" 714 | integrity sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA== 715 | dependencies: 716 | tslib "^2.3.1" 717 | 718 | "@aws-sdk/util-user-agent-browser@3.226.0": 719 | version "3.226.0" 720 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.226.0.tgz#164bb2da8d6353133784e47f0a0ae463bc9ebb73" 721 | integrity sha512-PhBIu2h6sPJPcv2I7ELfFizdl5pNiL4LfxrasMCYXQkJvVnoXztHA1x+CQbXIdtZOIlpjC+6BjDcE0uhnpvfcA== 722 | dependencies: 723 | "@aws-sdk/types" "3.226.0" 724 | bowser "^2.11.0" 725 | tslib "^2.3.1" 726 | 727 | "@aws-sdk/util-user-agent-node@3.226.0": 728 | version "3.226.0" 729 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.226.0.tgz#7569460b9efc6bbd5295275c51357e480ff469c2" 730 | integrity sha512-othPc5Dz/pkYkxH+nZPhc1Al0HndQT8zHD4e9h+EZ+8lkd8n+IsnLfTS/mSJWrfiC6UlNRVw55cItstmJyMe/A== 731 | dependencies: 732 | "@aws-sdk/node-config-provider" "3.226.0" 733 | "@aws-sdk/types" "3.226.0" 734 | tslib "^2.3.1" 735 | 736 | "@aws-sdk/util-utf8-browser@3.188.0", "@aws-sdk/util-utf8-browser@^3.0.0": 737 | version "3.188.0" 738 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz#484762bd600401350e148277731d6744a4a92225" 739 | integrity sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q== 740 | dependencies: 741 | tslib "^2.3.1" 742 | 743 | "@aws-sdk/util-utf8-node@3.208.0": 744 | version "3.208.0" 745 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz#eba17de0f92f87b98481c2e2d0ceaa05c7994d67" 746 | integrity sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ== 747 | dependencies: 748 | "@aws-sdk/util-buffer-from" "3.208.0" 749 | tslib "^2.3.1" 750 | 751 | "@remix-run/router@1.2.1": 752 | version "1.2.1" 753 | resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.2.1.tgz#812edd4104a15a493dda1ccac0b352270d7a188c" 754 | integrity sha512-XiY0IsyHR+DXYS5vBxpoBe/8veTeoRpMHP+vDosLZxL5bnpetzI0igkxkLZS235ldLzyfkxF+2divEwWHP3vMQ== 755 | 756 | "@types/node@*": 757 | version "18.11.18" 758 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" 759 | integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== 760 | 761 | "@types/webidl-conversions@*": 762 | version "7.0.0" 763 | resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" 764 | integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== 765 | 766 | "@types/whatwg-url@^8.2.1": 767 | version "8.2.2" 768 | resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" 769 | integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== 770 | dependencies: 771 | "@types/node" "*" 772 | "@types/webidl-conversions" "*" 773 | 774 | accepts@~1.3.8: 775 | version "1.3.8" 776 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" 777 | integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 778 | dependencies: 779 | mime-types "~2.1.34" 780 | negotiator "0.6.3" 781 | 782 | append-field@^1.0.0: 783 | version "1.0.0" 784 | resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" 785 | integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== 786 | 787 | array-flatten@1.1.1: 788 | version "1.1.1" 789 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 790 | integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== 791 | 792 | base64-js@^1.3.1: 793 | version "1.5.1" 794 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 795 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 796 | 797 | bcryptjs@^2.4.3: 798 | version "2.4.3" 799 | resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" 800 | integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ== 801 | 802 | body-parser@1.20.1: 803 | version "1.20.1" 804 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" 805 | integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== 806 | dependencies: 807 | bytes "3.1.2" 808 | content-type "~1.0.4" 809 | debug "2.6.9" 810 | depd "2.0.0" 811 | destroy "1.2.0" 812 | http-errors "2.0.0" 813 | iconv-lite "0.4.24" 814 | on-finished "2.4.1" 815 | qs "6.11.0" 816 | raw-body "2.5.1" 817 | type-is "~1.6.18" 818 | unpipe "1.0.0" 819 | 820 | bowser@^2.11.0: 821 | version "2.11.0" 822 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" 823 | integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== 824 | 825 | bson@^4.7.0: 826 | version "4.7.1" 827 | resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.1.tgz#6bc4aa4ae5b4fbd1b03799b4fb3e0e4bdcfac38c" 828 | integrity sha512-XkuFtlCzi0WSy8D6PMhvrQ/q8VlZHN/2bJ/shJglwuA6TPD2ZP/hHLB7iDxOEWVINHN/UVTxP4pqZqOKMXPIXg== 829 | dependencies: 830 | buffer "^5.6.0" 831 | 832 | buffer-equal-constant-time@1.0.1: 833 | version "1.0.1" 834 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 835 | integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== 836 | 837 | buffer-from@^1.0.0: 838 | version "1.1.2" 839 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 840 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 841 | 842 | buffer@^5.6.0: 843 | version "5.7.1" 844 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 845 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 846 | dependencies: 847 | base64-js "^1.3.1" 848 | ieee754 "^1.1.13" 849 | 850 | busboy@^1.0.0: 851 | version "1.6.0" 852 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" 853 | integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== 854 | dependencies: 855 | streamsearch "^1.1.0" 856 | 857 | bytes@3.1.2: 858 | version "3.1.2" 859 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" 860 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 861 | 862 | call-bind@^1.0.0: 863 | version "1.0.2" 864 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 865 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 866 | dependencies: 867 | function-bind "^1.1.1" 868 | get-intrinsic "^1.0.2" 869 | 870 | concat-stream@^1.5.2: 871 | version "1.6.2" 872 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 873 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== 874 | dependencies: 875 | buffer-from "^1.0.0" 876 | inherits "^2.0.3" 877 | readable-stream "^2.2.2" 878 | typedarray "^0.0.6" 879 | 880 | content-disposition@0.5.4: 881 | version "0.5.4" 882 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" 883 | integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 884 | dependencies: 885 | safe-buffer "5.2.1" 886 | 887 | content-type@~1.0.4: 888 | version "1.0.4" 889 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 890 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 891 | 892 | cookie-parser@^1.4.6: 893 | version "1.4.6" 894 | resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" 895 | integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== 896 | dependencies: 897 | cookie "0.4.1" 898 | cookie-signature "1.0.6" 899 | 900 | cookie-signature@1.0.6: 901 | version "1.0.6" 902 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 903 | integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== 904 | 905 | cookie@0.4.1: 906 | version "0.4.1" 907 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" 908 | integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== 909 | 910 | cookie@0.5.0: 911 | version "0.5.0" 912 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" 913 | integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== 914 | 915 | core-util-is@~1.0.0: 916 | version "1.0.3" 917 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" 918 | integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== 919 | 920 | cors@^2.8.5: 921 | version "2.8.5" 922 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 923 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 924 | dependencies: 925 | object-assign "^4" 926 | vary "^1" 927 | 928 | debug@2.6.9: 929 | version "2.6.9" 930 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 931 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 932 | dependencies: 933 | ms "2.0.0" 934 | 935 | debug@4.x: 936 | version "4.3.4" 937 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 938 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 939 | dependencies: 940 | ms "2.1.2" 941 | 942 | depd@2.0.0: 943 | version "2.0.0" 944 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 945 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 946 | 947 | destroy@1.2.0: 948 | version "1.2.0" 949 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" 950 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 951 | 952 | ecdsa-sig-formatter@1.0.11: 953 | version "1.0.11" 954 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 955 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 956 | dependencies: 957 | safe-buffer "^5.0.1" 958 | 959 | ee-first@1.1.1: 960 | version "1.1.1" 961 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 962 | integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== 963 | 964 | encodeurl@~1.0.2: 965 | version "1.0.2" 966 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 967 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== 968 | 969 | escape-html@~1.0.3: 970 | version "1.0.3" 971 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 972 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 973 | 974 | etag@~1.8.1: 975 | version "1.8.1" 976 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 977 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 978 | 979 | express@^4.18.2: 980 | version "4.18.2" 981 | resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" 982 | integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== 983 | dependencies: 984 | accepts "~1.3.8" 985 | array-flatten "1.1.1" 986 | body-parser "1.20.1" 987 | content-disposition "0.5.4" 988 | content-type "~1.0.4" 989 | cookie "0.5.0" 990 | cookie-signature "1.0.6" 991 | debug "2.6.9" 992 | depd "2.0.0" 993 | encodeurl "~1.0.2" 994 | escape-html "~1.0.3" 995 | etag "~1.8.1" 996 | finalhandler "1.2.0" 997 | fresh "0.5.2" 998 | http-errors "2.0.0" 999 | merge-descriptors "1.0.1" 1000 | methods "~1.1.2" 1001 | on-finished "2.4.1" 1002 | parseurl "~1.3.3" 1003 | path-to-regexp "0.1.7" 1004 | proxy-addr "~2.0.7" 1005 | qs "6.11.0" 1006 | range-parser "~1.2.1" 1007 | safe-buffer "5.2.1" 1008 | send "0.18.0" 1009 | serve-static "1.15.0" 1010 | setprototypeof "1.2.0" 1011 | statuses "2.0.1" 1012 | type-is "~1.6.18" 1013 | utils-merge "1.0.1" 1014 | vary "~1.1.2" 1015 | 1016 | fast-xml-parser@4.0.11: 1017 | version "4.0.11" 1018 | resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz#42332a9aca544520631c8919e6ea871c0185a985" 1019 | integrity sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA== 1020 | dependencies: 1021 | strnum "^1.0.5" 1022 | 1023 | finalhandler@1.2.0: 1024 | version "1.2.0" 1025 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" 1026 | integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== 1027 | dependencies: 1028 | debug "2.6.9" 1029 | encodeurl "~1.0.2" 1030 | escape-html "~1.0.3" 1031 | on-finished "2.4.1" 1032 | parseurl "~1.3.3" 1033 | statuses "2.0.1" 1034 | unpipe "~1.0.0" 1035 | 1036 | forwarded@0.2.0: 1037 | version "0.2.0" 1038 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 1039 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 1040 | 1041 | fresh@0.5.2: 1042 | version "0.5.2" 1043 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1044 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 1045 | 1046 | function-bind@^1.1.1: 1047 | version "1.1.1" 1048 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1049 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1050 | 1051 | get-intrinsic@^1.0.2: 1052 | version "1.1.3" 1053 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" 1054 | integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== 1055 | dependencies: 1056 | function-bind "^1.1.1" 1057 | has "^1.0.3" 1058 | has-symbols "^1.0.3" 1059 | 1060 | has-symbols@^1.0.3: 1061 | version "1.0.3" 1062 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 1063 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 1064 | 1065 | has@^1.0.3: 1066 | version "1.0.3" 1067 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1068 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1069 | dependencies: 1070 | function-bind "^1.1.1" 1071 | 1072 | http-errors@2.0.0: 1073 | version "2.0.0" 1074 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 1075 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 1076 | dependencies: 1077 | depd "2.0.0" 1078 | inherits "2.0.4" 1079 | setprototypeof "1.2.0" 1080 | statuses "2.0.1" 1081 | toidentifier "1.0.1" 1082 | 1083 | iconv-lite@0.4.24: 1084 | version "0.4.24" 1085 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1086 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1087 | dependencies: 1088 | safer-buffer ">= 2.1.2 < 3" 1089 | 1090 | ieee754@^1.1.13: 1091 | version "1.2.1" 1092 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 1093 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 1094 | 1095 | inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: 1096 | version "2.0.4" 1097 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1098 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1099 | 1100 | ip@^2.0.0: 1101 | version "2.0.0" 1102 | resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" 1103 | integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== 1104 | 1105 | ipaddr.js@1.9.1: 1106 | version "1.9.1" 1107 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 1108 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 1109 | 1110 | isarray@~1.0.0: 1111 | version "1.0.0" 1112 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1113 | integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== 1114 | 1115 | jsonwebtoken@^9.0.0: 1116 | version "9.0.0" 1117 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d" 1118 | integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw== 1119 | dependencies: 1120 | jws "^3.2.2" 1121 | lodash "^4.17.21" 1122 | ms "^2.1.1" 1123 | semver "^7.3.8" 1124 | 1125 | jwa@^1.4.1: 1126 | version "1.4.1" 1127 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 1128 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 1129 | dependencies: 1130 | buffer-equal-constant-time "1.0.1" 1131 | ecdsa-sig-formatter "1.0.11" 1132 | safe-buffer "^5.0.1" 1133 | 1134 | jws@^3.2.2: 1135 | version "3.2.2" 1136 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 1137 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 1138 | dependencies: 1139 | jwa "^1.4.1" 1140 | safe-buffer "^5.0.1" 1141 | 1142 | kareem@2.5.0: 1143 | version "2.5.0" 1144 | resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.5.0.tgz#9d2b2272609b0d5b981757fa5794d7ad0ac041b2" 1145 | integrity sha512-rVBUGGwvqg130iwYu8k7lutHuDBFj1yGRdnlE44wEhxAmFBad1zcL66PdWC1raw3tIObY6XWhtv3VL04xQb/cg== 1146 | 1147 | lodash@^4.17.21: 1148 | version "4.17.21" 1149 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1150 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1151 | 1152 | lru-cache@^6.0.0: 1153 | version "6.0.0" 1154 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1155 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1156 | dependencies: 1157 | yallist "^4.0.0" 1158 | 1159 | media-typer@0.3.0: 1160 | version "0.3.0" 1161 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1162 | integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== 1163 | 1164 | memory-pager@^1.0.2: 1165 | version "1.5.0" 1166 | resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" 1167 | integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== 1168 | 1169 | merge-descriptors@1.0.1: 1170 | version "1.0.1" 1171 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1172 | integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== 1173 | 1174 | methods@~1.1.2: 1175 | version "1.1.2" 1176 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1177 | integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 1178 | 1179 | mime-db@1.52.0: 1180 | version "1.52.0" 1181 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 1182 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1183 | 1184 | mime-types@~2.1.24, mime-types@~2.1.34: 1185 | version "2.1.35" 1186 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 1187 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1188 | dependencies: 1189 | mime-db "1.52.0" 1190 | 1191 | mime@1.6.0: 1192 | version "1.6.0" 1193 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1194 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 1195 | 1196 | minimist@^1.2.6: 1197 | version "1.2.7" 1198 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" 1199 | integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== 1200 | 1201 | mkdirp@^0.5.4: 1202 | version "0.5.6" 1203 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" 1204 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== 1205 | dependencies: 1206 | minimist "^1.2.6" 1207 | 1208 | mongodb-connection-string-url@^2.5.4: 1209 | version "2.6.0" 1210 | resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" 1211 | integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ== 1212 | dependencies: 1213 | "@types/whatwg-url" "^8.2.1" 1214 | whatwg-url "^11.0.0" 1215 | 1216 | mongodb@4.12.1: 1217 | version "4.12.1" 1218 | resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.12.1.tgz#224eb39b8784af835b515aa687c6010cecaabb1a" 1219 | integrity sha512-koT87tecZmxPKtxRQD8hCKfn+ockEL2xBiUvx3isQGI6mFmagWt4f4AyCE9J4sKepnLhMacoCTQQA6SLAI2L6w== 1220 | dependencies: 1221 | bson "^4.7.0" 1222 | mongodb-connection-string-url "^2.5.4" 1223 | socks "^2.7.1" 1224 | optionalDependencies: 1225 | "@aws-sdk/credential-providers" "^3.186.0" 1226 | saslprep "^1.0.3" 1227 | 1228 | mongoose@^6.8.2: 1229 | version "6.8.2" 1230 | resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.8.2.tgz#5b11a3ca0f6955e65f8f1e2255dad213e122b4ea" 1231 | integrity sha512-cIato5N2w/QuJkkh0w4nyf7ty7DqmmP/W8/6PFSM0DrzbxIMlr6VN15LBIceTSJIxbznNl2Mlbh9Rm4sokMw+A== 1232 | dependencies: 1233 | bson "^4.7.0" 1234 | kareem "2.5.0" 1235 | mongodb "4.12.1" 1236 | mpath "0.9.0" 1237 | mquery "4.0.3" 1238 | ms "2.1.3" 1239 | sift "16.0.1" 1240 | 1241 | mpath@0.9.0: 1242 | version "0.9.0" 1243 | resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" 1244 | integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== 1245 | 1246 | mquery@4.0.3: 1247 | version "4.0.3" 1248 | resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d" 1249 | integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA== 1250 | dependencies: 1251 | debug "4.x" 1252 | 1253 | ms@2.0.0: 1254 | version "2.0.0" 1255 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1256 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 1257 | 1258 | ms@2.1.2: 1259 | version "2.1.2" 1260 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1261 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1262 | 1263 | ms@2.1.3, ms@^2.1.1: 1264 | version "2.1.3" 1265 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1266 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1267 | 1268 | multer@^1.4.5-lts.1: 1269 | version "1.4.5-lts.1" 1270 | resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" 1271 | integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== 1272 | dependencies: 1273 | append-field "^1.0.0" 1274 | busboy "^1.0.0" 1275 | concat-stream "^1.5.2" 1276 | mkdirp "^0.5.4" 1277 | object-assign "^4.1.1" 1278 | type-is "^1.6.4" 1279 | xtend "^4.0.0" 1280 | 1281 | negotiator@0.6.3: 1282 | version "0.6.3" 1283 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" 1284 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 1285 | 1286 | object-assign@^4, object-assign@^4.1.1: 1287 | version "4.1.1" 1288 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1289 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1290 | 1291 | object-inspect@^1.9.0: 1292 | version "1.12.2" 1293 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" 1294 | integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== 1295 | 1296 | on-finished@2.4.1: 1297 | version "2.4.1" 1298 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" 1299 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 1300 | dependencies: 1301 | ee-first "1.1.1" 1302 | 1303 | parseurl@~1.3.3: 1304 | version "1.3.3" 1305 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1306 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1307 | 1308 | path-to-regexp@0.1.7: 1309 | version "0.1.7" 1310 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1311 | integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== 1312 | 1313 | process-nextick-args@~2.0.0: 1314 | version "2.0.1" 1315 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 1316 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1317 | 1318 | proxy-addr@~2.0.7: 1319 | version "2.0.7" 1320 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 1321 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 1322 | dependencies: 1323 | forwarded "0.2.0" 1324 | ipaddr.js "1.9.1" 1325 | 1326 | punycode@^2.1.1: 1327 | version "2.1.1" 1328 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1329 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1330 | 1331 | qs@6.11.0: 1332 | version "6.11.0" 1333 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" 1334 | integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== 1335 | dependencies: 1336 | side-channel "^1.0.4" 1337 | 1338 | range-parser@~1.2.1: 1339 | version "1.2.1" 1340 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 1341 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1342 | 1343 | raw-body@2.5.1: 1344 | version "2.5.1" 1345 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" 1346 | integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== 1347 | dependencies: 1348 | bytes "3.1.2" 1349 | http-errors "2.0.0" 1350 | iconv-lite "0.4.24" 1351 | unpipe "1.0.0" 1352 | 1353 | react-router-dom@^6.6.1: 1354 | version "6.6.1" 1355 | resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.6.1.tgz#1b96ec0b2cefa7319f1251383ea5b41295ee260d" 1356 | integrity sha512-u+8BKUtelStKbZD5UcY0NY90WOzktrkJJhyhNg7L0APn9t1qJNLowzrM9CHdpB6+rcPt6qQrlkIXsTvhuXP68g== 1357 | dependencies: 1358 | "@remix-run/router" "1.2.1" 1359 | react-router "6.6.1" 1360 | 1361 | react-router@6.6.1: 1362 | version "6.6.1" 1363 | resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.6.1.tgz#17de6cf285f2d1c9721a3afca999c984e5558854" 1364 | integrity sha512-YkvlYRusnI/IN0kDtosUCgxqHeulN5je+ew8W+iA1VvFhf86kA+JEI/X/8NqYcr11hCDDp906S+SGMpBheNeYQ== 1365 | dependencies: 1366 | "@remix-run/router" "1.2.1" 1367 | 1368 | readable-stream@^2.2.2: 1369 | version "2.3.7" 1370 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 1371 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 1372 | dependencies: 1373 | core-util-is "~1.0.0" 1374 | inherits "~2.0.3" 1375 | isarray "~1.0.0" 1376 | process-nextick-args "~2.0.0" 1377 | safe-buffer "~5.1.1" 1378 | string_decoder "~1.1.1" 1379 | util-deprecate "~1.0.1" 1380 | 1381 | safe-buffer@5.2.1, safe-buffer@^5.0.1: 1382 | version "5.2.1" 1383 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1384 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1385 | 1386 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1387 | version "5.1.2" 1388 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1389 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1390 | 1391 | "safer-buffer@>= 2.1.2 < 3": 1392 | version "2.1.2" 1393 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1394 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1395 | 1396 | saslprep@^1.0.3: 1397 | version "1.0.3" 1398 | resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" 1399 | integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== 1400 | dependencies: 1401 | sparse-bitfield "^3.0.3" 1402 | 1403 | semver@^7.3.8: 1404 | version "7.3.8" 1405 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" 1406 | integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== 1407 | dependencies: 1408 | lru-cache "^6.0.0" 1409 | 1410 | send@0.18.0: 1411 | version "0.18.0" 1412 | resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" 1413 | integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== 1414 | dependencies: 1415 | debug "2.6.9" 1416 | depd "2.0.0" 1417 | destroy "1.2.0" 1418 | encodeurl "~1.0.2" 1419 | escape-html "~1.0.3" 1420 | etag "~1.8.1" 1421 | fresh "0.5.2" 1422 | http-errors "2.0.0" 1423 | mime "1.6.0" 1424 | ms "2.1.3" 1425 | on-finished "2.4.1" 1426 | range-parser "~1.2.1" 1427 | statuses "2.0.1" 1428 | 1429 | serve-static@1.15.0: 1430 | version "1.15.0" 1431 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" 1432 | integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== 1433 | dependencies: 1434 | encodeurl "~1.0.2" 1435 | escape-html "~1.0.3" 1436 | parseurl "~1.3.3" 1437 | send "0.18.0" 1438 | 1439 | setprototypeof@1.2.0: 1440 | version "1.2.0" 1441 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 1442 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 1443 | 1444 | side-channel@^1.0.4: 1445 | version "1.0.4" 1446 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1447 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1448 | dependencies: 1449 | call-bind "^1.0.0" 1450 | get-intrinsic "^1.0.2" 1451 | object-inspect "^1.9.0" 1452 | 1453 | sift@16.0.1: 1454 | version "16.0.1" 1455 | resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.1.tgz#e9c2ccc72191585008cf3e36fc447b2d2633a053" 1456 | integrity sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ== 1457 | 1458 | smart-buffer@^4.2.0: 1459 | version "4.2.0" 1460 | resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" 1461 | integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== 1462 | 1463 | socks@^2.7.1: 1464 | version "2.7.1" 1465 | resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" 1466 | integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== 1467 | dependencies: 1468 | ip "^2.0.0" 1469 | smart-buffer "^4.2.0" 1470 | 1471 | sparse-bitfield@^3.0.3: 1472 | version "3.0.3" 1473 | resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" 1474 | integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== 1475 | dependencies: 1476 | memory-pager "^1.0.2" 1477 | 1478 | statuses@2.0.1: 1479 | version "2.0.1" 1480 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 1481 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 1482 | 1483 | streamsearch@^1.1.0: 1484 | version "1.1.0" 1485 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" 1486 | integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== 1487 | 1488 | string_decoder@~1.1.1: 1489 | version "1.1.1" 1490 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1491 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1492 | dependencies: 1493 | safe-buffer "~5.1.0" 1494 | 1495 | strnum@^1.0.5: 1496 | version "1.0.5" 1497 | resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" 1498 | integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== 1499 | 1500 | toidentifier@1.0.1: 1501 | version "1.0.1" 1502 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 1503 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 1504 | 1505 | tr46@^3.0.0: 1506 | version "3.0.0" 1507 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" 1508 | integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== 1509 | dependencies: 1510 | punycode "^2.1.1" 1511 | 1512 | tslib@^1.11.1: 1513 | version "1.14.1" 1514 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1515 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 1516 | 1517 | tslib@^2.3.1: 1518 | version "2.4.1" 1519 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" 1520 | integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== 1521 | 1522 | type-is@^1.6.4, type-is@~1.6.18: 1523 | version "1.6.18" 1524 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1525 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1526 | dependencies: 1527 | media-typer "0.3.0" 1528 | mime-types "~2.1.24" 1529 | 1530 | typedarray@^0.0.6: 1531 | version "0.0.6" 1532 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1533 | integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== 1534 | 1535 | unpipe@1.0.0, unpipe@~1.0.0: 1536 | version "1.0.0" 1537 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1538 | integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 1539 | 1540 | util-deprecate@~1.0.1: 1541 | version "1.0.2" 1542 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1543 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 1544 | 1545 | utils-merge@1.0.1: 1546 | version "1.0.1" 1547 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1548 | integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== 1549 | 1550 | uuid@^8.3.2: 1551 | version "8.3.2" 1552 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 1553 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 1554 | 1555 | vary@^1, vary@~1.1.2: 1556 | version "1.1.2" 1557 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1558 | integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== 1559 | 1560 | webidl-conversions@^7.0.0: 1561 | version "7.0.0" 1562 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" 1563 | integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== 1564 | 1565 | whatwg-url@^11.0.0: 1566 | version "11.0.0" 1567 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" 1568 | integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== 1569 | dependencies: 1570 | tr46 "^3.0.0" 1571 | webidl-conversions "^7.0.0" 1572 | 1573 | xtend@^4.0.0: 1574 | version "4.0.2" 1575 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1576 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1577 | 1578 | yallist@^4.0.0: 1579 | version "4.0.0" 1580 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1581 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1582 | --------------------------------------------------------------------------------