Beta 2, quite a bit of changes

This commit is contained in:
Red Duck 2022-02-15 19:08:29 +02:00
parent c81e7b793f
commit 8f8260d383
43 changed files with 702 additions and 345 deletions

8
.gitignore vendored
View File

@ -1,4 +1,10 @@
/node_modules/
/.next/
/out/
/out/
.env
yarn.lock
package-lock.json
yarn-error.log
query_logs.txt
notneedednow/

15
LICENSE Normal file
View File

@ -0,0 +1,15 @@
A website of TheRed, called thered.sh
Copyright (C) 2022 TheRed
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

View File

@ -1,16 +1,64 @@
# TheRed.SH
<style>
.Block1 {
background-color: #ff4444;
border: 0px white solid;
border-radius: 5px;
color: white;
padding-left: 10px;
padding-right: 10px;
transition: all .2s ease;
position: absolute;
display: block;
}
.Block1:hover {
cursor:pointer;
background-color:white;
color: black;
}
.Block2 {
background-color: #5c5cff;
border: 0px white solid;
border-radius: 5px;
color: white;
padding-left: 10px;
padding-right: 10px;
transition: all .2s ease;
position: absolute;
display: block;
}
.Block2:hover {
cursor:pointer;
background-color:white;
color: black;
}
.Block3 {
background-color: #6ccc6c;
border: 0px white solid;
border-radius: 5px;
color: white;
padding-left: 10px;
padding-right: 10px;
transition: all .2s ease;
position: absolute;
display: block;
}
.Block3:hover {
cursor:pointer;
background-color:white;
color: black;
}
</style>
# <div style="text-align:center;background-color:#af8fff;color:black;padding:10px;border:0px white solid;border-radius:10px;">~ TheRed.SH ~</div>
This is a personal website made by TheRed, all of the source code is available!
## All PRs are welcome! Thanks for the nice people who make them.
### This website can be used for basically anything you want. However, you must comply with the current license!
- ### [<div class="Block3">This website is licensed under AGPLv3!</div>](https://www.gnu.org/licenses/agpl-3.0.en.html)
## Authors:
- [<div class="Block1">TheRed (Creator and Lead Developer of the project)</div>](https://thered.sh/)
### As of right now, there is no license, but GPLv3 will be implemented soon.
Authors:
- TheRed (Lead Developer and Creator)
- TheBlueBurger (Developer and Bug-fixer)
### Some of the icons are provided by FontAwesome! [Go check them out.](https://fontawesome.com/)
This website uses `Next.JS`.

View File

@ -2,10 +2,8 @@ import styles from '../styles/Alert.module.css'
export default function Alert() {
return (
<>
<div className={styles.Alert}>
<i className="fas fa-exclamation-triangle" style={{paddingRight: '30px', paddingLeft: '20px'}}/><span>Warning! There is a Log4J Java Exploit going around, it's still not patched in some Java applications! Please stay safe!</span>
<i className="fas fa-info-circle" style={{paddingTop: '2px', paddingLeft: '3px', position: 'absolute'}}/><span><div style={{paddingLeft: '50px',marginTop:'-4px',marginBottom:'-2px'}}>The current website might be a little bit buggy! Please contact me if you find any problems!</div></span>
</div>
</>
)
}

11
components/article.js Normal file
View File

@ -0,0 +1,11 @@
import styles from '../styles/Article.module.css';
export default function Article(props) {
return (
<>
<div className={styles.Article}>
{props.children}
</div>
</>
)
}

9
components/author.js Normal file
View File

@ -0,0 +1,9 @@
import styles from '../styles/Author.module.css';
export default function Author(props) {
return (
<div className={styles.Author}>
Author: <span style={{color: '#777'}}>{props.children}</span>
</div>
)
}

View File

@ -3,7 +3,7 @@ import styles from '../styles/BottomBar.module.css'
export default function BottomBar() {
return (
<div className={styles.BottomBar}>
Website by TheRed, 2021
Website by TheRed, {new Date().getFullYear()}
</div>
)
}

View File

@ -1,9 +1,9 @@
export default function Button(props) {
export default function Button(PROPERTIES) {
{
if(props.color) {
return <button>{props.children}</button>
if(PROPERTIES.color) {
return <button>{PROPERTIES.children}</button>
} else {
return <button>{props.children}</button>
return <button>{PROPERTIES.children}</button>
}
}
}

View File

@ -1,9 +1,8 @@
<div className={styles.Quote}>
<div className={styles.Block}>
Hello there!<br/>
I'm TheRed, a full-stack developer from Lithuania. I mostly specialize in frontend, however I'm able to do both frontend and backend.<br/>
I'm a supporter of open source software, however I do tolerate closed source if there is a valid reason for it.<br/>
I have a YouTube channel, as well as a Twitter. I have more than that though, it's below this quote. Do check them out!
</div>
{/* <Image src="/mario.png" width={"291px"} height={"291px"} className={styles.Image}/> */}
<div className={styles.Block}>
Hello there!<br/>
I'm TheRed, a full-stack developer from Lithuania. I mostly specialize in frontend, however I'm able to do both frontend and backend.<br/>
I'm a supporter of open source software, however I do tolerate closed source if there is a valid reason for it.<br/>
I have a YouTube channel, as well as a Twitter. I have more than that though, it's below this quote. Do check them out!
</div>
</div>

View File

@ -1,7 +1,5 @@
import styles from "../styles/Content.module.css";
import Image from "next/image";
import Socials from "./socials";
import TrianglesBG from "./trianglesbg";
import Link from "next/link"
export default function Content() {

5
components/endquote.js Normal file
View File

@ -0,0 +1,5 @@
export default function EndQuote(props) {
return (
<div style={{fontStyle: "italic", color: "#ccc"}}>{props.children}</div>
)
}

View File

View File

@ -7,6 +7,7 @@ export default function Navbar() {
<div className={styles.NavBar}>
<Link href="/"><a><button>Home</button></a></Link>
<Link href="/projects"><a><button>Projects</button></a></Link>
<Link href="/articles"><a><button>Articles</button></a></Link>
<Link href="/privacy"><a><button>Privacy</button></a></Link>
</div>
</>

View File

@ -1,15 +1,10 @@
import styles from "/styles/Popsicle.module.css"
export default function Popsicle(props) {
export default function Popsicle(PROPERTIES) {
return (
<div className={styles.Popsicle} style={{...props.customStyle}}>
<div className={`${PROPERTIES.className ?? ''} ${styles.Popsicle}`} style={{...PROPERTIES.customStyle}}>
<i className="fas fa-info-circle" style={{scale: '1.5', paddingLeft: '10px', paddingRight: '15px'}}/>
{props.children ?? "Popsicle"}<span style={{paddingRight: '10px'}}></span>
{PROPERTIES.children ?? "Popsicle"}<span style={{paddingRight: '10px'}}/>
</div>
)
// done
}
// are we even using three.js, it wastes a lot of bandwidth it will be used later, is there a way to disable certain folders? (I want to have a little cdn tho which would have some stuff that you could use for your projects)
// wat is dis
// This will be a little thing where it essentially pops up a little div, so like, for example, when you click enter while in the textbox, it will clear it and pop up a little box that would say, that you sent a message! It would dissapear after a bit (like 10 seconds)
}

View File

@ -1,20 +1,42 @@
import styles from '../styles/Privacy.module.css'
(async () => {
let ipreq = await fetch('/api/ip', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
msg: 'get_ip'
})
})
let ip;
if (ipreq.ok) {
ipreq.text().then(i => {ip = i});
};
})();
export default function Privacy() {
return (
<>
<div className={styles.ScrollBox}>
<div className={styles.Privacy}>
<h1>Welcome to TheRed.SH!</h1>
<h3>TheRed.SH is a self-hosted site made by TheRed. Due to potential for concerned users to arise, we have made a privacy policy in order to notify these users.</h3>
<hr style={{color:"white", borderRadius:"10px", padding:"2px",backgroundColor:"white",border:"0px white solid"}}/>
<h3>We, in no way, track you or spy on you. We may only collect this information if you abuse our system, however, you can't be identified:</h3>
<h3 style={{lineHeight:"1"}}> Your IP address</h3>
<h3 style={{lineHeight:"1"}}> Timestamp</h3>
<h3 style={{lineHeight:"1"}}> Request Method</h3>
<h3 style={{lineHeight:"1"}}> Status Code</h3>
<h3 style={{lineHeight:"1"}}> Traffic Usage</h3>
<h3 style={{lineHeight:"1"}}> Queries</h3>
<h3>These are the ONLY things we collect. You are unidentifiable. This is done in order to protect our service from abuse, as mentioned above, as well as patching exploits.</h3>
{/* <span>Your IP: {
}, if you do not trust us, use a VPN/Proxy!</span> */}
</div>
</div>
</>
)
}

View File

@ -1,13 +1,13 @@
import styles from '../styles/Redirect.module.css'
import Link from "next/link"
export default function Redirect(props) {
export default function Redirect(PROPERTIES) {
{
switch(props.page) {
switch(PROPERTIES.page) {
case 'home':
return <div className={styles.Home}>
<Link href="/">
<a className={styles.Link}><i className="fas fa-home" style={{paddingRight: "10px"}}/>Go back to {(props.page+'').split('')[0].toUpperCase()+(props.page+'').substring(1,props.page.length)}<span style={{padding:"10px"}}/>|<span style={{padding:"10px"}}/>TheRed</a>
<a className={styles.Link}><i className="fas fa-home" style={{paddingRight: "10px"}}/>Go back to {(PROPERTIES.page+'').split('')[0].toUpperCase()+(PROPERTIES.page+'').substring(1,PROPERTIES.page.length)}<span style={{padding:"10px"}}/>|<span style={{padding:"10px"}}/>TheRed</a>
</Link>
</div>
}

View File

@ -1,5 +1,4 @@
import styles from "../styles/Socials.module.css";
import Image from "next/image";
export default function Socials() {
return <>

View File

@ -1,12 +1,9 @@
import styles from '../styles/Sticker.module.css'
export default function Sticker(props) {
export default function Sticker(PROPERTIES) {
return (
<div className={styles.Sticker} style={{color: props.txtColor ?? '#ffffff', backgroundColor: props.bgColor ?? 'rgba(36, 36, 49, 0.7)', scale: '1', ...props.style}}>
<script>
</script>
{props.children}
<div className={styles.Sticker} style={{color: PROPERTIES.txtColor ?? '#ffffff', backgroundColor: PROPERTIES.bgColor ?? 'rgba(36, 36, 49, 0.7)', scale: '1', ...PROPERTIES.style}}>
{PROPERTIES.children}
</div>
)
}

View File

@ -1,14 +1,16 @@
import styles from '../styles/Textbox.module.css'
export default function Textbox(props) {
/**
* @param {string} text
*/
export default function Textbox(PROPERTIES) {
return (
<input className={styles.Textbox} type={props.type ?? 'text'} style={{width: props.width ?? '200px', ...props.style}} placeholder={props.placeholder ?? 'Type anything here!'} defaultValue={props.value ?? ""} onKeyDown={() => {
if (props.submitOnEnter && event.key === 'Enter' && props.submit) {
props.submit(event.target.value);
// props.value = ""; // this is not how you do it
<input className={styles.Textbox} type={PROPERTIES.type ?? 'text'} style={{width: PROPERTIES.width ?? '200px', ...PROPERTIES.style}} placeholder={PROPERTIES.placeholder ?? 'Type anything here!'} defaultValue={PROPERTIES.value ?? ""} onKeyDown={() => {
if (PROPERTIES.submitOnEnter && event.key === 'Enter' && PROPERTIES.submit) {
PROPERTIES.submit(event.target.value);
event.target.value = "";
}
}}></input>
}}
/>
)
}

View File

@ -1,18 +1,16 @@
import { useState, useEffect } from "react"
export default function TrianglesBG() {
const [positionX, setPositionX] = useState(0);
// use setPositionX(123) to set the background-position-x to 123
const [thePositionX, setPositionX] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
// do magic here using setPositionX
setPositionX(positionX + 1);
setPositionX(thePositionX + 0.5);
}, 10);
return () => clearInterval(interval);
return function () { clearInterval(interval) };
});
return (
<div style={{width: '100vw', height: '100vh', position: 'absolute', top: '0', left: '0', zIndex: '0', color: 'white'}} className="steve">
<div className="whatIsItso that means the proxy (that im about to )LikeInsideSteve" width='100%' height='99%' style={{objectFit: 'fill', imageRendering: 'pixelated', backgroundImage: 'url("/background.webp")', width: '100%', height: '100%', backgroundRepeat: 'repeat', backgroundSize: '100vw', backgroundPositionX: positionX}}/>
<div style={{width: '100%', height: '100%', position: 'absolute', top: '0', left: '0', zIndex: '0', color: 'white'}} className="steve">
<div className="whatIsItLikeInsideSteve" width='100%' height='99%' style={{objectFit: 'fill', imageRendering: 'pixelated', backgroundImage: 'url("/background.webp")', width: '100%', height: '100%', backgroundRepeat: 'repeat', backgroundSize: '100%', backgroundPositionX: thePositionX}}/>
</div>
)
}

View File

@ -1,6 +1,7 @@
{
"name": "thered.tk",
"version": "0.1.0",
"name": "thered.sh",
"version": "0.2.0",
"author": "TheRedXD",
"private": true,
"scripts": {
"dev": "next dev",
@ -9,9 +10,11 @@
"lint": "next lint"
},
"dependencies": {
"env": "^0.0.2",
"next": "11.1.2",
"react": "17.0.2",
"react-dom": "17.0.2"
"react-dom": "17.0.2",
"request-ip": "^2.1.3"
},
"devDependencies": {
"eslint": "8.1.0",

View File

@ -4,8 +4,6 @@ import BottomBar from '../components/bottombar'
export default function MyApp({ Component, pageProps }) {
return <>
<link rel="stylesheet" href="/cdn/fontawesome/css/all.css"></link>
<script src='/cdn/threejs/three.js'></script>
{/* <Navbar /> */}
<Component {...pageProps} />
<BottomBar />
</>

View File

@ -1,5 +1,6 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
export default function handler(req, res) {
res.status(200).json({ name: 'John Doe' })
}

View File

@ -1,21 +1,27 @@
export default async function handle(req, res) {
if((""+req?.body?.text).includes("@")) return res.status(400).send("sussy baka");
let resp = await fetch("https://discord.com/api/webhooks/923258963758284871/NzXO2vAS3C4dGeL-Ml6zsbBHvfHduAkHxQWkGPnaUlHxmmPr6rfxHT2eyREe05MRnG_7", {
let amogus = ['127.0.0.1', '1', '192.168.1.254']
export default async function handle(REQ, RES) {
// Check if IP matches with the local IP
// if(!amogus.includes(REQ.socket.remoteAddress.split('::ffff:')[1])) {
// return RES.status(403).send('Forbidden. IP: '+REQ.socket.remoteAddress.split('::ffff:')[1]+'; Your IP in no way is logged!');
// }
if(!/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ .,/?;:'\[\]\{\}\\<>\-_+=*!#$0123456789\^]*$/.test(""+REQ?.body?.text)) return RES.status(400).send("The message you were trying to send contains disallowed symbols!");
let RESPONSE = await fetch(process.env.WEBHOOK, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
username: "TheRed.SH / User Feedback",
content: req?.body?.text ?? "Illegal request",
content: REQ?.body?.text ?? "The request that was sent was an illegal request!",
avatar_url: "https://cdn.discordapp.com/avatars/574110505254256640/049c51674d7ccd748ca123556d351da5.webp?size=1024"
// why would this work? its running on discord so it cant see it
})
})
if(resp.ok) {
res.status(200).send("Your message was successfully sent!");
if(RESPONSE.ok) {
RES.status(200).send("Your message has been successfully sent!");
await RESPONSE.text().then(i => console.log(i));
} else {
res.status(500).send("error");
await resp.text().then(console.log);
RES.status(500).send("Error! The message has failed to send!");
await RESPONSE.text().then(i => console.log(i));
}
} // ill do it rq
}

16
pages/articles.js Normal file
View File

@ -0,0 +1,16 @@
import Navbar from "../components/navbar";
import styles from '../styles/Articles.module.css';
import Link from "next/link";
export default function Articles() {
return (
<>
<Navbar />
<span className={styles.TopText}>Latest (This is a very new part of the website, no proper automation has been implemented, all articles are written manually ^*^)</span>
<div className={styles.Articles}>
<Link href="/articles/new_updates_to_thered_sh"><a className={styles.LinkText}>New updates to TheRed.SH!</a></Link><div className={styles.Time}>Published on 2022/Feb/15</div><br/>
<Link href="/articles/an_update_on_my_situation"><a className={styles.LinkText}>An update on my situation</a></Link><div className={styles.Time}>Published on 2022/Feb/14</div>
</div>
</>
)
}

View File

@ -0,0 +1,28 @@
import Article from '../../components/article';
import Author from '../../components/author';
import Navbar from '../../components/navbar';
import EndQuote from '../../components/endquote';
export default function AnUpdateOnMySituation() {
return (
<>
<Navbar />
<Article>
<Author>TheRed</Author>
Hello,<br/>
So I've been suspended from TotalFreedom in its entirety because apparently I broke "UK law". I haven't broken any law, as I haven't participated in the forums attack itself, and all I've done is hide information that I had a very minimal amount of.<br/>
<br/>
The situation is a mess, and I don't see how I should've been suspended, let alone indef-banned.<br/><br/>
Anyways, I have been thinking a lot about this, and I have a feeling I might quit TotalFreedom in its entirety, even if I would get unbanned. The reason for that is because the community just feels simply unwelcoming in some regard, and there are other projects and stuff I have to do, including this website as well.<br/>
I've already pretty much ruined my reputation in the community, and if I wanted to try again, I don't see how my reinstatement would be accepted, if I do so decide to do that.<br/>
<br/>
The simple nature of the problem being so ridiculously oversimplified to people means that people are blind to the details that I think matter. This means that people think wrong of me and probably want me just gone out of the community, and think bad of me. In reality, I'm just a person like everyone else, and I have feelings. I'm not a robot that breaks everything no matter what. I realize that I have greatly fucked up my reputation, and I don't see how I could continue on the community.<br/>
It's very likely that I will leave the community as a whole and continue onto other projects.<br/><br/>
If anything new happens, an article will be made on this website.
<br/><br/>
<EndQuote>Thank you,<br/>
TheRed.</EndQuote>
</Article>
</>
)
}

View File

@ -0,0 +1,25 @@
import Article from '../../components/article';
import Author from '../../components/author';
import Navbar from '../../components/navbar';
import EndQuote from '../../components/endquote';
export default function NewUpdatesToTheRedSH () {
return (
<>
<Navbar />
<Article>
<Author>TheRed</Author>
Hello, TheRed.SH Beta 2 is finally here! So as you might notice, the website has changed a bit!<br/>
The website before was in Beta 1, and was still going through major testing, this is now an upgraded version of that - however, we found some issues in our previous beta release, and saw that the performance, due to the background, suffered a lot! We decided to completely remove the background and just use a matte look, at least for now!<br/>
As this is still in the Beta releases, things can change a lot. As you can also see, we have also added a new section, called "Articles". This is a very new thing and is still just an experiment. We want to make something, like an articles system, where we can write guides, updates on certain things and situations, website updates, all sorts of stuff!<br/>
We do not intend to remove this feature, unless it becomes really buggy, but we will try to implement this sort of thing. We will also try integrating a better background if we can, using something like THREE.JS to render it efficiently and fast.<br/>
This is pretty much it for this update. Nothing that major, but still - an update.
<br/><br/>
<EndQuote>
Cheers.<br/>
TheRed
</EndQuote>
</Article>
</>
)
}

View File

@ -22,31 +22,38 @@ export default function Home() {
<div className={styles.Home}>
<Content />
</div>
<TrianglesBG />
{/* <TrianglesBG /> */}
<Alert />
<Sticker style={{ top: '80px', right: '20px' }}>Hello there! I'm a sticker!<br />This is just a simple demo.<br />A much more finished website will be coming soon!</Sticker>
<Textbox width="50vw" placeholder="Send anything to me here!" style={{ margin: 'auto', marginTop: '30px', display: 'block', marginBottom: '60px' }} submitOnEnter={true} submit={async (e) => {
{/* <Sticker style={{ top: '80px', right: '20px' }}>Hello there! I'm a sticker!<br />This is just a simple demo.<br />A much more finished website will be coming soon!</Sticker> */}
<Textbox placeholder="Send anything to me here!" style={{ margin: 'auto', marginTop: '30px', display: 'block', marginBottom: '60px' }} submitOnEnter={true} submit={async (TEXT) => {
setAlert(false)
let req = await fetch("/api/submit", {
let REQUEST = await fetch("/api/submit", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
text: e
text: TEXT
})
});
let res = await req.text();
setMessage(res)
setAlert(true)
let RESPONSE = await REQUEST.text();
setMessage(RESPONSE);
setAlert(true);
// fetch('/api/logger', {
// method: 'POST',
// headers: {
// 'Content-Type': 'application/json'
// },
// body: JSON.stringify({
// msg: '[Sent message] Query: '+TEXT+'; Response: '+RESPONSE+'; Request Code: '+REQUEST.status+'; Request Method: POST'
// })
// });
}} />
{/* no favicon!!! */}
{/* can you run the website in prod mode and see if its fine? just yarn build and then yarn start */}
{alert && <Popsicle customStyle={{ position: 'fixed', display: 'block', margin: 'auto', top: '80px', left: '40px' }}>
{message}
</Popsicle>}
{
alert && <Popsicle className={styles.Popsicality}>
{message}
</Popsicle>
}
</>
// liveamogus died for like 10 mins
// ok so we need to make so that the popsicle would be able to appear and dissapear after 10 seconds (we also need to make so that it could be positioned correctly near the textbox, always aligning correctly)
)
}

View File

@ -1,5 +0,0 @@
export default function Trol() {
return <>
Trol!!!!!
</>
}

View File

@ -27,14 +27,14 @@
.Card {
padding: 10px;
background-color: #222;
background-color: #7b61db;
color: white;
font-size: 20pt;
font-family: 'Manrope';
padding-left: 20px;
-webkit-box-shadow: 0px 10px 0px 0px #1a1a1a;
-moz-box-shadow: 0px 10px 0px 0px #1a1a1a;
box-shadow: 0px 10px 0px 0px #1a1a1a;
-webkit-box-shadow: 0px 10px 0px 0px #46377c;
-moz-box-shadow: 0px 10px 0px 0px #46377c;
box-shadow: 0px 10px 0px 0px #46377c;
border: 0px white solid;
border-radius: 10px;
margin: 0;
@ -52,8 +52,8 @@
}
.CodeBox {
display: block;
color:#999;
background-color:#333;
color:#fff;
background-color:#1e163a;
padding-left:20px;
padding-right:20px;
border:0px white solid;
@ -70,8 +70,8 @@
margin-bottom: 10px;
}
.CodeBox:hover {
color:#fff;
background-color:#555;
color:#ffffff;
background-color:#341f81;
padding-left:40px;
padding-right:40px;
border:0px white solid;

View File

@ -11,7 +11,7 @@
}
@keyframes scroll {
from {
width: 6%;
width: 70px;
}
to {
width: 80%;
@ -28,7 +28,8 @@
}
.Alert {
margin: auto;
background-color: #FFB238;
min-height: calc( 12pt + 20px );
background-color: rgb(181, 136, 255);
border: #000 0px solid;
border-radius: 10px;
padding: 20px;
@ -36,14 +37,19 @@
margin-top: -20px;
font-size: 12pt;
font-family: 'Manrope';
mix-blend-mode: screen;
animation-name: scroll;
animation-duration: 2s;
animation-delay: .6s;
animation-fill-mode: forwards;
animation-timing-function: ease;
width: 6%;
width: 70px;
min-width: 70px;
display: block;
/* mix-blend-mode: luminosity; */
scale: 1;
-webkit-box-shadow: 0px 0px 15px 10px rgba(0,0,0,0.15);
box-shadow: 0px 0px 15px 10px rgba(0,0,0,0.15);
min-height:61px;
}
.Alert>i {
animation-name: pop;
@ -53,6 +59,7 @@
animation-timing-function: ease;
scale: 0;
font-size: 12pt;
mix-blend-mode: normal;
}
.Alert>span {
animation-name: appeartext;
@ -61,4 +68,5 @@
animation-fill-mode: forwards;
animation-timing-function: ease;
font-size: 0pt;
mix-blend-mode: normal;
}

33
styles/Article.module.css Normal file
View File

@ -0,0 +1,33 @@
@keyframes pop {
from {
scale: .75;
opacity:0;
}
to {
scale: 1;
opacity:1;
}
}
.Article {
scale: .75;
opacity:0;
background-color: rgb(27, 26, 36);
font-family: 'Manrope';
font-size: 12pt;
padding: 30px;
border: 0px white solid;
border-radius: 10px;
margin: 20px;
margin-top:70px;
margin-bottom:70px;
position: relative;
animation-name:pop;
animation-duration:0.5s;
animation-timing-function:ease-in-out;
animation-delay:0s;
animation-iteration-count:1;
animation-direction:normal;
animation-fill-mode:forwards;
-webkit-box-shadow: 0px 0px 10px 10px rgba(0,0,0,0.25);
box-shadow: 0px 0px 10px 10px rgba(0,0,0,0.25);
}

View File

@ -0,0 +1,86 @@
@keyframes slidein {
from {
scale:.5;
opacity:0;
}
to {
scale:1;
opacity:1;
}
}
@keyframes slideine {
from {
scale:.5;
opacity:0;
}
to {
scale:1;
opacity:1;
}
}
.TopText {
scale:.5;
opacity:0;
font-size: 16pt;
color: #aaa;
font-style: italic;
font-family: 'Consolas';
margin-left:30px;
margin-top:60px;
position:absolute;
animation-name: slideine;
animation-duration: 0.5s;
animation-timing-function: ease-in-out;
animation-delay: 0s;
animation-iteration-count: 1;
animation-direction: normal;
animation-fill-mode: forwards;
}
.Articles {
scale:.5;
opacity:0;
background-color:rgb(27, 26, 36);
padding: 10px;
padding-left: 20px;
margin-top:calc(160px + 18pt - 4vw);
position: absolute;
display: block;
border: 0px white solid;
border-radius:10px;
margin-left: 30px;
width: calc(100% - 30px * 2);
animation-name: slidein;
animation-duration: 0.8s;
animation-timing-function: ease-in-out;
animation-delay: .2s;
animation-iteration-count: 1;
animation-direction: normal;
animation-fill-mode: forwards;
padding-bottom:23px;
-webkit-box-shadow: 0px 0px 25px 10px rgba(0,0,0,0.35);
box-shadow: 0px 0px 25px 10px rgba(0,0,0,0.35);
}
.LinkText {
color: #fff;
white-space: nowrap;
position: absolute;
transition: all .2s ease;
z-index:1;
}
.LinkText:hover {
color: #926bff;
}
.Time {
color:#716c86;
float:right;
padding-right:20px;
font-family: 'Consolas';
margin-bottom:-10px;
margin-top:6px;
z-index:+10;
position:relative;
background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgb(27, 26, 36) 35%);
padding-left:30vw;
white-space: nowrap;
pointer-events: none;
}

5
styles/Author.module.css Normal file
View File

@ -0,0 +1,5 @@
.Author {
color:#aaa;
font-style: italic;
padding-bottom:10px;
}

View File

@ -9,5 +9,4 @@
position: fixed;
z-index: 1;
user-select: none;
transition: all 1s ease;
}

View File

@ -77,7 +77,7 @@
}
.bigboiheader {
display: block;
color: #17171f;
color: #fff;
font-size: 18vmin;
line-height: 1;
margin: 0;
@ -92,12 +92,14 @@
opacity: 0;
filter: blur(5px);
user-select: none;
z-index: 1;
}
.funyheader {
display:block;
margin: auto;
text-align: center;
z-index: 1;
}
.Link {

View File

@ -1,4 +1,21 @@
.Home {
color: white;
padding: 20px;
}
.Popsicality {
top: 80px;
left: 40px;
right: 40px;
display: block;
position: fixed;
width: fit-content;
}
@media screen and (max-width:600px) {
.Popsicality {
top:60px;
z-index: 10;
user-select: none;
}
}

View File

@ -1,26 +1,50 @@
@keyframes navbarslide {
from {
top: -41px;
}
to {
top: 0px;
}
}
.NavBarBackbone {
background-color: rgba(0,0,0,0.1);
border-bottom: 2px solid #ddd;
background-color: #9a45fa;
/* border-bottom: 2px solid #ddd; */
width: 100%;
height: 41px;
z-index: 0;
float:left;
position: absolute;
z-index: 1;
z-index: 100;
backdrop-filter: blur(30px);
position: fixed;
top:-41px;
animation-name: navbarslide;
animation-duration: 0.5s;
animation-timing-function: ease-out;
animation-delay: 0.5s;
animation-iteration-count: 1;
animation-direction: normal;
animation-fill-mode: forwards;
}
.NavBar {
position: relative;
float: right;
z-index: 1;
position: fixed;
right: 0;
z-index: 100;
top:-41px;
animation-name: navbarslide;
animation-duration: 0.5s;
animation-timing-function: ease-out;
animation-delay: 0.6s;
animation-iteration-count: 1;
animation-direction: normal;
animation-fill-mode: forwards;
}
.NavBar>a>button {
cursor: pointer;
background-color: rgba(255,255,255,0.00);
color: white;
border: none;
border-bottom: 2px solid #ddd;
border-bottom: 2px solid rgba(0,0,0,0);
padding: 10px;
padding-left: 20px;
padding-right: 20px;
@ -28,6 +52,6 @@
font-size: 10pt;
}
.NavBar>a>button:hover {
background-color: rgba(255,255,255,0.08);
border-bottom: 2px solid #9d9dff;
background-color: rgba(255,255,255,0.1);
border-bottom: 2px solid #bfbfff;
}

View File

@ -20,7 +20,7 @@
}
.Popsicle {
background-color: #51a2ff;
background-color: #753aff;
border-radius: 10px;
font-size: 12pt;
padding: 10px;
@ -34,4 +34,7 @@
animation-fill-mode: forwards;
animation-timing-function: ease;
scale: 0;
z-index: 1000;
-webkit-box-shadow: 0px 0px 15px 10px rgba(0,0,0,0.10);
box-shadow: 0px 0px 15px 10px rgba(0,0,0,0.10);
}

View File

@ -46,25 +46,19 @@
}
.Button {
cursor: pointer;
color: #17171f;
opacity: .5;
mix-blend-mode: screen;
mask-clip: text;
color: #aaa;
display: inline-block;
padding-left: 20px;
transition: all .5s;
transition: all .2s;
scale: 1;
backface-visibility: hidden;
-webkit-font-smoothing: subpixel-antialiased;
transform: translateZ(0);
user-select: none;
backdrop-filter: invert(1);
}
.Button:hover {
color: #666;
opacity: .5;
mix-blend-mode: screen;
mask-clip: text;
color: #7650ff;
mix-blend-mode: normal;
/* mask-image: linear-gradient(to right, transparent, #666); */
scale: 1.08;
shape-rendering: geometricPrecision;
@ -73,5 +67,4 @@
-webkit-font-smoothing: subpixel-antialiased;
transform: translateZ(0);
user-select: none;
backdrop-filter: invert(1);
}

View File

@ -25,8 +25,22 @@
animation-delay: 1s;
animation-timing-function: ease;
scale: 0;
-webkit-box-shadow: 0px 0px 15px 10px rgba(0,0,0,0.15);
box-shadow: 0px 0px 15px 10px rgba(0,0,0,0.15);
min-width: 50vw;
}
.Textbox::placeholder {
color: #8b8ba8;
font-family: 'Manrope';
}
@media screen and (max-width: 600px) {
.Textbox {
min-width: 80vw;
transition: .2s min-width ease;
text-align: center;
}
.Textbox::placeholder {
text-align: center;
}
}

View File

@ -27,8 +27,7 @@ html,
body {
padding: 0;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-family: 'Manrope';
background-color: #21212c;
color: white;
overflow-x: hidden;
@ -52,4 +51,5 @@ a {
* {
box-sizing: border-box;
mix-blend-mode: normal;
}

415
yarn.lock Executable file → Normal file
View File

@ -10,21 +10,21 @@
"@babel/highlight" "^7.10.4"
"@babel/helper-plugin-utils@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5"
integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==
"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9":
version "7.15.7"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
"@babel/highlight@^7.10.4":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
version "7.16.10"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88"
integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
dependencies:
"@babel/helper-validator-identifier" "^7.14.5"
"@babel/helper-validator-identifier" "^7.16.7"
chalk "^2.0.0"
js-tokens "^4.0.0"
@ -36,11 +36,11 @@
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/runtime-corejs3@^7.10.2":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz#403139af262b9a6e8f9ba04a6fdcebf8de692bf1"
integrity sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==
version "7.16.8"
resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz#ea533d96eda6fdc76b1812248e9fbd0c11d4a1a7"
integrity sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==
dependencies:
core-js-pure "^3.16.0"
core-js-pure "^3.20.2"
regenerator-runtime "^0.13.4"
"@babel/runtime@7.15.3":
@ -50,10 +50,10 @@
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
"@babel/runtime@^7.10.2", "@babel/runtime@^7.16.3":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa"
integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==
dependencies:
regenerator-runtime "^0.13.4"
@ -66,17 +66,17 @@
to-fast-properties "^2.0.0"
"@eslint/eslintrc@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.3.tgz#41f08c597025605f672251dcc4e8be66b5ed7366"
integrity sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==
version "1.0.5"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318"
integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
espree "^9.0.0"
espree "^9.2.0"
globals "^13.9.0"
ignore "^4.0.6"
import-fresh "^3.2.1"
js-yaml "^3.13.1"
js-yaml "^4.1.0"
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
@ -110,14 +110,14 @@
minimatch "^3.0.4"
"@humanwhocodes/object-schema@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf"
integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==
version "1.2.1"
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
"@napi-rs/triples@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@napi-rs/triples/-/triples-1.0.3.tgz#76d6d0c3f4d16013c61e45dfca5ff1e6c31ae53c"
integrity sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA==
version "1.1.0"
resolved "https://registry.yarnpkg.com/@napi-rs/triples/-/triples-1.1.0.tgz#88c35b72e79a20b79bb4c9b3e2817241a1c9f4f9"
integrity sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==
"@next/env@11.1.2":
version "11.1.2"
@ -207,9 +207,9 @@
fastq "^1.6.0"
"@rushstack/eslint-patch@^1.0.6":
version "1.0.8"
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz#be3e914e84eacf16dbebd311c0d0b44aa1174c64"
integrity sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw==
version "1.1.0"
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz#7f698254aadf921e48dda8c0a6b304026b8a9323"
integrity sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==
"@types/json5@^0.0.29":
version "0.0.29"
@ -217,9 +217,9 @@
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
"@types/node@*":
version "16.11.4"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.4.tgz#90771124822d6663814f7c1c9b45a6654d8fd964"
integrity sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ==
version "17.0.10"
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.10.tgz#616f16e9d3a2a3d618136b1be244315d95bd7cab"
integrity sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==
"@typescript-eslint/parser@^4.20.0":
version "4.33.0"
@ -270,10 +270,10 @@ acorn-jsx@^5.3.1:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.5.0:
version "8.5.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2"
integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==
acorn@^8.7.0:
version "8.7.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
ajv@^6.10.0, ajv@^6.12.4:
version "6.12.6"
@ -322,13 +322,6 @@ anymatch@~3.1.1:
normalize-path "^3.0.0"
picomatch "^2.0.4"
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
@ -342,7 +335,7 @@ aria-query@^4.2.2:
"@babel/runtime" "^7.10.2"
"@babel/runtime-corejs3" "^7.10.2"
array-includes@^3.1.1, array-includes@^3.1.3, array-includes@^3.1.4:
array-includes@^3.1.3, array-includes@^3.1.4:
version "3.1.4"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"
integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
@ -367,7 +360,7 @@ array.prototype.flat@^1.2.5:
define-properties "^1.1.3"
es-abstract "^1.19.0"
array.prototype.flatmap@^1.2.4:
array.prototype.flatmap@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446"
integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==
@ -419,10 +412,10 @@ available-typed-arrays@^1.0.5:
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
axe-core@^4.0.2:
version "4.3.3"
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.3.tgz#b55cd8e8ddf659fe89b064680e1c6a4dceab0325"
integrity sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA==
axe-core@^4.3.5:
version "4.3.5"
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5"
integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==
axobject-query@^2.2.0:
version "2.2.0"
@ -597,9 +590,9 @@ callsites@^3.0.0:
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
caniuse-lite@^1.0.30001202, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228:
version "1.0.30001271"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001271.tgz#0dda0c9bcae2cf5407cd34cac304186616cc83e8"
integrity sha512-BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA==
version "1.0.30001301"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz#ebc9086026534cab0dab99425d9c3b4425e5f450"
integrity sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==
chalk@2.4.2, chalk@^2.0.0:
version "2.4.2"
@ -710,10 +703,10 @@ convert-source-map@1.7.0:
dependencies:
safe-buffer "~5.1.1"
core-js-pure@^3.16.0:
version "3.18.3"
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.18.3.tgz#7eed77dcce1445ab68fd68715856633e2fb3b90c"
integrity sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==
core-js-pure@^3.20.2:
version "3.20.3"
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.20.3.tgz#6cc4f36da06c61d95254efc54024fe4797fd5d02"
integrity sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==
core-util-is@~1.0.0:
version "1.0.3"
@ -796,10 +789,10 @@ cssnano-simple@3.0.0:
dependencies:
cssnano-preset-simple "^3.0.0"
damerau-levenshtein@^1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d"
integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==
damerau-levenshtein@^1.0.7:
version "1.0.8"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
data-uri-to-buffer@3.0.1:
version "3.0.1"
@ -821,9 +814,9 @@ debug@^3.2.7:
ms "^2.1.1"
debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
version "4.3.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
dependencies:
ms "2.1.2"
@ -893,9 +886,9 @@ domain-browser@^1.1.1:
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
electron-to-chromium@^1.3.723:
version "1.3.878"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.878.tgz#baa9fb5c24b9b580f08fb245cbb52a22f8fc8fa8"
integrity sha512-O6yxWCN9ph2AdspAIszBnd9v8s11hQx8ub9w4UGApzmNRnoKhbulOWqbO8THEQec/aEHtvy+donHZMlh6l1rbA==
version "1.4.50"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.50.tgz#edbeeca145494b1cd4a6a2aa1fe3d28abc0b08a4"
integrity sha512-g5X/6oVoqLyzKfsZ1HsJvxKoUAToFMCuq1USbmp/GPIwJDRYV1IEcv+plYTdh6h11hg140hycCBId0vf7rL0+Q==
elliptic@^6.5.3:
version "6.5.4"
@ -910,7 +903,7 @@ elliptic@^6.5.3:
minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.1"
emoji-regex@^9.0.0:
emoji-regex@^9.2.2:
version "9.2.2"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
@ -934,6 +927,11 @@ enquirer@^2.3.5:
dependencies:
ansi-colors "^4.1.1"
env@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/env/-/env-0.0.2.tgz#50c19f307b129a45845b6b686df5b39dd40d1cf0"
integrity sha1-UMGfMHsSmkWEW2tobfWzndQNHPA=
es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1:
version "1.19.1"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
@ -1023,75 +1021,75 @@ eslint-import-resolver-typescript@^2.4.0:
resolve "^1.20.0"
tsconfig-paths "^3.9.0"
eslint-module-utils@^2.7.0:
version "2.7.1"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c"
integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==
eslint-module-utils@^2.7.2:
version "2.7.2"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129"
integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==
dependencies:
debug "^3.2.7"
find-up "^2.1.0"
pkg-dir "^2.0.0"
eslint-plugin-import@^2.22.1:
version "2.25.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz#b3b9160efddb702fc1636659e71ba1d10adbe9e9"
integrity sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==
version "2.25.4"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1"
integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==
dependencies:
array-includes "^3.1.4"
array.prototype.flat "^1.2.5"
debug "^2.6.9"
doctrine "^2.1.0"
eslint-import-resolver-node "^0.3.6"
eslint-module-utils "^2.7.0"
eslint-module-utils "^2.7.2"
has "^1.0.3"
is-core-module "^2.7.0"
is-core-module "^2.8.0"
is-glob "^4.0.3"
minimatch "^3.0.4"
object.values "^1.1.5"
resolve "^1.20.0"
tsconfig-paths "^3.11.0"
tsconfig-paths "^3.12.0"
eslint-plugin-jsx-a11y@^6.4.1:
version "6.4.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd"
integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==
version "6.5.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8"
integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==
dependencies:
"@babel/runtime" "^7.11.2"
"@babel/runtime" "^7.16.3"
aria-query "^4.2.2"
array-includes "^3.1.1"
array-includes "^3.1.4"
ast-types-flow "^0.0.7"
axe-core "^4.0.2"
axe-core "^4.3.5"
axobject-query "^2.2.0"
damerau-levenshtein "^1.0.6"
emoji-regex "^9.0.0"
damerau-levenshtein "^1.0.7"
emoji-regex "^9.2.2"
has "^1.0.3"
jsx-ast-utils "^3.1.0"
jsx-ast-utils "^3.2.1"
language-tags "^1.0.5"
minimatch "^3.0.4"
eslint-plugin-react-hooks@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556"
integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==
version "4.3.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172"
integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==
eslint-plugin-react@^7.23.1:
version "7.26.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz#41bcfe3e39e6a5ac040971c1af94437c80daa40e"
integrity sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==
version "7.28.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz#8f3ff450677571a659ce76efc6d80b6a525adbdf"
integrity sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==
dependencies:
array-includes "^3.1.3"
array.prototype.flatmap "^1.2.4"
array-includes "^3.1.4"
array.prototype.flatmap "^1.2.5"
doctrine "^2.1.0"
estraverse "^5.2.0"
estraverse "^5.3.0"
jsx-ast-utils "^2.4.1 || ^3.0.0"
minimatch "^3.0.4"
object.entries "^1.1.4"
object.fromentries "^2.0.4"
object.hasown "^1.0.0"
object.values "^1.1.4"
object.entries "^1.1.5"
object.fromentries "^2.0.5"
object.hasown "^1.1.0"
object.values "^1.1.5"
prop-types "^15.7.2"
resolve "^2.0.0-next.3"
semver "^6.3.0"
string.prototype.matchall "^4.0.5"
string.prototype.matchall "^4.0.6"
eslint-scope@^6.0.0:
version "6.0.0"
@ -1113,10 +1111,10 @@ eslint-visitor-keys@^2.0.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
eslint-visitor-keys@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz#e32e99c6cdc2eb063f204eda5db67bfe58bb4186"
integrity sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==
eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1"
integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==
eslint@8.1.0:
version "8.1.0"
@ -1162,19 +1160,14 @@ eslint@8.1.0:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
espree@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090"
integrity sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==
espree@^9.0.0, espree@^9.2.0:
version "9.3.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8"
integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==
dependencies:
acorn "^8.5.0"
acorn "^8.7.0"
acorn-jsx "^5.3.1"
eslint-visitor-keys "^3.0.0"
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
eslint-visitor-keys "^3.1.0"
esquery@^1.4.0:
version "1.4.0"
@ -1190,10 +1183,10 @@ esrecurse@^4.3.0:
dependencies:
estraverse "^5.2.0"
estraverse@^5.1.0, estraverse@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
esutils@^2.0.2:
version "2.0.3"
@ -1223,10 +1216,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-glob@^3.1.1:
version "3.2.7"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==
fast-glob@^3.2.9:
version "3.2.11"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
dependencies:
"@nodelib/fs.stat" "^2.0.2"
"@nodelib/fs.walk" "^1.2.3"
@ -1298,9 +1291,9 @@ flat-cache@^3.0.4:
rimraf "^3.0.2"
flatted@^3.1.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561"
integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==
version "3.2.4"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2"
integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==
foreach@^2.0.5:
version "2.0.5"
@ -1395,28 +1388,28 @@ glob@^7.1.3, glob@^7.1.7:
path-is-absolute "^1.0.0"
globals@^13.6.0, globals@^13.9.0:
version "13.11.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7"
integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==
version "13.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e"
integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==
dependencies:
type-fest "^0.20.2"
globby@^11.0.3:
version "11.0.4"
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"
integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==
version "11.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
dependencies:
array-union "^2.1.0"
dir-glob "^3.0.1"
fast-glob "^3.1.1"
ignore "^5.1.4"
merge2 "^1.3.0"
fast-glob "^3.2.9"
ignore "^5.2.0"
merge2 "^1.4.1"
slash "^3.0.0"
graceful-fs@^4.1.2:
version "4.2.8"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
version "4.2.9"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
has-bigints@^1.0.1:
version "1.0.1"
@ -1523,10 +1516,10 @@ ignore@^4.0.6:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
ignore@^5.1.4:
version "5.1.8"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
ignore@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
image-size@1.0.0:
version "1.0.0"
@ -1615,10 +1608,10 @@ is-callable@^1.1.4, is-callable@^1.2.4:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
is-core-module@^2.2.0, is-core-module@^2.7.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548"
integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==
is-core-module@^2.2.0, is-core-module@^2.8.0:
version "2.8.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
dependencies:
has "^1.0.3"
@ -1657,9 +1650,9 @@ is-nan@^1.2.1:
define-properties "^1.1.3"
is-negative-zero@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
is-number-object@^1.0.4:
version "1.0.6"
@ -1712,11 +1705,16 @@ is-typed-array@^1.1.3, is-typed-array@^1.1.7:
has-tostringtag "^1.0.0"
is-weakref@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2"
integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
dependencies:
call-bind "^1.0.0"
call-bind "^1.0.2"
is_js@^0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/is_js/-/is_js-0.9.0.tgz#0ab94540502ba7afa24c856aa985561669e9c52d"
integrity sha1-CrlFQFArp6+iTIVqqYVWFmnpxS0=
isarray@^1.0.0, isarray@~1.0.0:
version "1.0.0"
@ -1742,14 +1740,6 @@ jest-worker@27.0.0-next.5:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-yaml@^3.13.1:
version "3.14.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
js-yaml@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
@ -1774,7 +1764,7 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0:
"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b"
integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==
@ -1871,7 +1861,7 @@ merge-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
merge2@^1.3.0:
merge2@^1.3.0, merge2@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
@ -1930,9 +1920,9 @@ ms@^2.1.1:
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
nanoid@^3.1.23:
version "3.1.30"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362"
integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==
version "3.2.0"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
native-url@0.3.4:
version "0.3.4"
@ -2064,9 +2054,9 @@ object-assign@^4.1.1:
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
object-inspect@^1.11.0, object-inspect@^1.9.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
version "1.12.0"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
object-is@^1.0.1:
version "1.1.5"
@ -2091,7 +2081,7 @@ object.assign@^4.1.2:
has-symbols "^1.0.1"
object-keys "^1.1.1"
object.entries@^1.1.4:
object.entries@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
@ -2100,7 +2090,7 @@ object.entries@^1.1.4:
define-properties "^1.1.3"
es-abstract "^1.19.1"
object.fromentries@^2.0.4:
object.fromentries@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251"
integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==
@ -2109,7 +2099,7 @@ object.fromentries@^2.0.4:
define-properties "^1.1.3"
es-abstract "^1.19.1"
object.hasown@^1.0.0:
object.hasown@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5"
integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==
@ -2117,7 +2107,7 @@ object.hasown@^1.0.0:
define-properties "^1.1.3"
es-abstract "^1.19.1"
object.values@^1.1.4, object.values@^1.1.5:
object.values@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
@ -2248,7 +2238,7 @@ path-key@^3.1.0:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
path-parse@^1.0.6:
path-parse@^1.0.6, path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
@ -2270,16 +2260,9 @@ pbkdf2@^3.0.3:
sha.js "^2.4.8"
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
pkg-dir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
dependencies:
find-up "^2.1.0"
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pkg-dir@^4.1.0:
version "4.2.0"
@ -2330,13 +2313,13 @@ progress@^2.0.0:
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
dependencies:
loose-envify "^1.4.0"
object-assign "^4.1.1"
react-is "^16.8.1"
react-is "^16.13.1"
public-encrypt@^4.0.0:
version "4.0.3"
@ -2431,7 +2414,7 @@ react-is@17.0.2:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
react-is@^16.8.1:
react-is@^16.13.1:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@ -2484,9 +2467,9 @@ regenerator-runtime@^0.13.4:
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
regexp.prototype.flags@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==
version "1.4.1"
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307"
integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==
dependencies:
call-bind "^1.0.2"
define-properties "^1.1.3"
@ -2496,18 +2479,26 @@ regexpp@^3.2.0:
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
request-ip@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/request-ip/-/request-ip-2.1.3.tgz#99ab2bafdeaf2002626e28083cb10597511d9e14"
integrity sha512-J3qdE/IhVM3BXkwMIVO4yFrvhJlU3H7JH16+6yHucadT4fePnR8dyh+vEs6FIx0S2x5TCt2ptiPfHcn0sqhbYQ==
dependencies:
is_js "^0.9.0"
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
resolve@^1.20.0:
version "1.20.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
version "1.21.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.1.tgz#1a88c73f5ca8ab0aabc8b888c4170de26c92c4cc"
integrity sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==
dependencies:
is-core-module "^2.2.0"
path-parse "^1.0.6"
is-core-module "^2.8.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
resolve@^2.0.0-next.3:
version "2.0.0-next.3"
@ -2645,11 +2636,6 @@ source-map@^0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
stacktrace-parser@0.1.10:
version "0.1.10"
resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a"
@ -2711,7 +2697,7 @@ string-hash@1.1.3:
resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b"
integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=
string.prototype.matchall@^4.0.5:
string.prototype.matchall@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"
integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==
@ -2824,6 +2810,11 @@ supports-color@^8.0.0:
dependencies:
has-flag "^4.0.0"
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@ -2870,10 +2861,10 @@ ts-pnp@^1.1.6:
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0:
version "3.11.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36"
integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==
tsconfig-paths@^3.12.0, tsconfig-paths@^3.9.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b"
integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==
dependencies:
"@types/json5" "^0.0.29"
json5 "^1.0.1"