From c37cf55f6741023b50d3858116037c983c586868 Mon Sep 17 00:00:00 2001 From: Ahmed Galadima Date: Tue, 13 May 2025 12:12:47 +0200 Subject: [PATCH] first commit --- .env.example | 3 + .gitignore | 38 + CODE_OF_CONDUCT.md | 128 + LICENSE | 21 + README.md | 49 + components/ArticleCard.tsx | 52 + components/Bottombar.tsx | 49 + components/ContactCode.tsx | 51 + components/Explorer.tsx | 80 + components/Head.tsx | 35 + components/Illustration.tsx | 25 + components/Layout.tsx | 44 + components/ProjectCard.tsx | 51 + components/RepoCard.tsx | 71 + components/Sidebar.tsx | 74 + components/Tab.tsx | 28 + components/Tabsbar.tsx | 26 + components/ThemeInfo.tsx | 40 + components/Titlebar.tsx | 34 + data/projects.ts | 69 + eslint.config.mjs | 15 + next-env.d.ts | 5 + next.config.ts | 14 + package-lock.json | 8710 ++++++++++++++++++++++++++++++++ package.json | 25 + pages/_app.tsx | 26 + pages/about.tsx | 124 + pages/articles.tsx | 58 + pages/contact.tsx | 28 + pages/github.tsx | 99 + pages/index.tsx | 137 + pages/projects.tsx | 31 + pages/settings.tsx | 56 + public/favicon.ico | Bin 0 -> 15406 bytes public/logos/coolify.svg | 1 + public/logos/css_icon.svg | 3 + public/logos/driwwwle.svg | 74 + public/logos/html_icon.svg | 3 + public/logos/js_icon.svg | 3 + public/logos/json_icon.svg | 1 + public/logos/markdown_icon.svg | 3 + public/logos/react_icon.svg | 3 + public/logos/subtrackt.svg | 16 + public/logos/vercel.svg | 4 + public/logos/vsc.svg | 41 + public/logos/vscode_icon.svg | 41 + public/themes/ayu.png | Bin 0 -> 18997 bytes public/themes/dracula.png | Bin 0 -> 38644 bytes public/themes/github-dark.png | Bin 0 -> 42481 bytes public/themes/night-owl.png | Bin 0 -> 10183 bytes public/themes/nord.png | Bin 0 -> 4329 bytes rule.mdc | 6 + styles/AboutPage.module.css | 255 + styles/ArticleCard.module.css | 118 + styles/ArticlesPage.module.css | 65 + styles/Bottombar.module.css | 48 + styles/ContactCode.module.css | 67 + styles/ContactPage.module.css | 83 + styles/Explorer.module.css | 77 + styles/GithubPage.module.css | 258 + styles/HomePage.module.css | 842 +++ styles/Layout.module.css | 45 + styles/ProjectCard.module.css | 184 + styles/ProjectsPage.module.css | 47 + styles/RepoCard.module.css | 133 + styles/SettingsPage.module.css | 33 + styles/Sidebar.module.css | 64 + styles/Tab.module.css | 21 + styles/Tabsbar.module.css | 18 + styles/ThemeInfo.module.css | 74 + styles/Titlebar.module.css | 66 + styles/globals.css | 25 + styles/themes.css | 155 + tsconfig.json | 44 + types/index.ts | 41 + 75 files changed, 13258 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 CODE_OF_CONDUCT.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 components/ArticleCard.tsx create mode 100644 components/Bottombar.tsx create mode 100644 components/ContactCode.tsx create mode 100644 components/Explorer.tsx create mode 100644 components/Head.tsx create mode 100644 components/Illustration.tsx create mode 100644 components/Layout.tsx create mode 100644 components/ProjectCard.tsx create mode 100644 components/RepoCard.tsx create mode 100644 components/Sidebar.tsx create mode 100644 components/Tab.tsx create mode 100644 components/Tabsbar.tsx create mode 100644 components/ThemeInfo.tsx create mode 100644 components/Titlebar.tsx create mode 100644 data/projects.ts create mode 100644 eslint.config.mjs create mode 100644 next-env.d.ts create mode 100644 next.config.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 pages/_app.tsx create mode 100644 pages/about.tsx create mode 100644 pages/articles.tsx create mode 100644 pages/contact.tsx create mode 100644 pages/github.tsx create mode 100644 pages/index.tsx create mode 100644 pages/projects.tsx create mode 100644 pages/settings.tsx create mode 100644 public/favicon.ico create mode 100644 public/logos/coolify.svg create mode 100644 public/logos/css_icon.svg create mode 100644 public/logos/driwwwle.svg create mode 100644 public/logos/html_icon.svg create mode 100644 public/logos/js_icon.svg create mode 100644 public/logos/json_icon.svg create mode 100644 public/logos/markdown_icon.svg create mode 100644 public/logos/react_icon.svg create mode 100644 public/logos/subtrackt.svg create mode 100644 public/logos/vercel.svg create mode 100644 public/logos/vsc.svg create mode 100644 public/logos/vscode_icon.svg create mode 100644 public/themes/ayu.png create mode 100644 public/themes/dracula.png create mode 100644 public/themes/github-dark.png create mode 100644 public/themes/night-owl.png create mode 100644 public/themes/nord.png create mode 100644 rule.mdc create mode 100644 styles/AboutPage.module.css create mode 100644 styles/ArticleCard.module.css create mode 100644 styles/ArticlesPage.module.css create mode 100644 styles/Bottombar.module.css create mode 100644 styles/ContactCode.module.css create mode 100644 styles/ContactPage.module.css create mode 100644 styles/Explorer.module.css create mode 100644 styles/GithubPage.module.css create mode 100644 styles/HomePage.module.css create mode 100644 styles/Layout.module.css create mode 100644 styles/ProjectCard.module.css create mode 100644 styles/ProjectsPage.module.css create mode 100644 styles/RepoCard.module.css create mode 100644 styles/SettingsPage.module.css create mode 100644 styles/Sidebar.module.css create mode 100644 styles/Tab.module.css create mode 100644 styles/Tabsbar.module.css create mode 100644 styles/ThemeInfo.module.css create mode 100644 styles/Titlebar.module.css create mode 100644 styles/globals.css create mode 100644 styles/themes.css create mode 100644 tsconfig.json create mode 100644 types/index.ts diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..139d7c7 --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +DEV_TO_API_KEY = your-api-key +GITHUB_API_KEY = your-api-key +NEXT_PUBLIC_GITHUB_USERNAME = itsnitinr diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9507139 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel + +# cursor +.cursor +.env \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..3c3d512 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +nitinranganath@gmail.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..350d8ca --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Nitin Ranganath + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e3385ad --- /dev/null +++ b/README.md @@ -0,0 +1,49 @@ +# vscode-portfolio +[![Open is Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/itsnitinr/vscode-portfolio) + +A Visual Studio Code themed developer portfolio website built with Next.js and deployed on Vercel. + +![vscode-portfolio banner](https://imgur.com/JXJ9mpO.gif) + +## Features Roadmap + +- [ ] Themes and customizations + - [x] GitHub Dark (default) + - [ ] One Dark Pro + - [x] Dracula + - [x] Ayu + - [x] Nord +- [ ] Interactive custom terminal + +For other features and themes suggestions, please open an issue. + +## Environment Variables + +For fetching your articles from dev.to, create an `.env.local` file inside the project directory. Check the `.env.local.example` file for more information. + +## Running Development Server + +```bash +npm run dev +# or +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +All VSCode related components can be found in the `components` folder. To change the content of the portfolio, check out the `pages` folder. To add or remove pages, modify `components/Sidebar.jsx` and `components/Tabsbar.jsx`. + +## Next.js Resources + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/components/ArticleCard.tsx b/components/ArticleCard.tsx new file mode 100644 index 0000000..ac4358a --- /dev/null +++ b/components/ArticleCard.tsx @@ -0,0 +1,52 @@ +import Image from 'next/image'; +import { VscEye, VscHeart, VscComment } from 'react-icons/vsc'; + +import { Article } from '@/types'; + +import styles from '@/styles/ArticleCard.module.css'; + +interface ArticleCardProps { + article: Article; +} + +const ArticleCard = ({ article }: ArticleCardProps) => { + return ( + +
+ {article.title} +
+ {article.page_views_count} +
+
+
+

{article.title}

+

{article.description}

+ +
+
+
+ {' '} + {article.public_reactions_count} +
+
+ {article.comments_count} +
+
+
+
+
+ ); +}; + +export default ArticleCard; diff --git a/components/Bottombar.tsx b/components/Bottombar.tsx new file mode 100644 index 0000000..04947fe --- /dev/null +++ b/components/Bottombar.tsx @@ -0,0 +1,49 @@ +import { + VscBell, + VscCheck, + VscError, + VscWarning, + VscSourceControl, +} from 'react-icons/vsc'; +import { SiNextdotjs } from 'react-icons/si'; + +import styles from '@/styles/Bottombar.module.css'; + +const Bottombar = () => { + return ( + + ); +}; + +export default Bottombar; diff --git a/components/ContactCode.tsx b/components/ContactCode.tsx new file mode 100644 index 0000000..c2a5ada --- /dev/null +++ b/components/ContactCode.tsx @@ -0,0 +1,51 @@ +import styles from '@/styles/ContactCode.module.css'; + +const contactItems = [ + { + social: 'website', + link: 'Portfolio', + href: 'https://ahmed.galadima.talenttic.com', + }, + { + social: 'email', + link: 'ahmed.galadima@hotmail.com', + href: 'mailto:ahmed.galadima@hotmail.com', + }, + { + social: 'github', + link: 'galads', + href: 'https://github.com/glimz', + }, + { + social: 'linkedin', + link: 'Linkedin URL', + href: 'https://www.linkedin.com/in/ahmed-galadima', + }, + { + social: 'twitter', + link: 'galads', + href: 'https://x.com/Mr_galads', + }, +]; + +const ContactCode = () => { + return ( +
+

+ .socials { +

+ {contactItems.map((item, index) => ( +

+    {item.social}:{' '} + + {item.link} + + ; +

+ ))} +

}

+
+ ); +}; + +export default ContactCode; diff --git a/components/Explorer.tsx b/components/Explorer.tsx new file mode 100644 index 0000000..f6ad006 --- /dev/null +++ b/components/Explorer.tsx @@ -0,0 +1,80 @@ +import Link from 'next/link'; +import Image from 'next/image'; +import { useState } from 'react'; +import { VscChevronRight } from 'react-icons/vsc'; + +import styles from '@/styles/Explorer.module.css'; + +const explorerItems = [ + { + name: 'home.tsx', + path: '/', + icon: '/logos/react_icon.svg', + }, + { + name: 'about.html', + path: '/about', + icon: '/logos/html_icon.svg', + }, + { + name: 'contact.css', + path: '/contact', + icon: '/logos/css_icon.svg', + }, + { + name: 'projects.js', + path: '/projects', + icon: '/logos/js_icon.svg', + }, + /* { + name: 'articles.json', + path: '/articles', + icon: '/logos/json_icon.svg', + }, */ + { + name: 'github.md', + path: '/github', + icon: '/logos/markdown_icon.svg', + }, +]; + +const Explorer = () => { + const [portfolioOpen, setPortfolioOpen] = useState(true); + + return ( +
+

Explorer

+
+ setPortfolioOpen(!portfolioOpen)} + /> + +
+ {explorerItems.map((item) => ( + +
+ {item.name}{' '} +

{item.name}

+
+ + ))} +
+
+
+ ); +}; + +export default Explorer; diff --git a/components/Head.tsx b/components/Head.tsx new file mode 100644 index 0000000..113e381 --- /dev/null +++ b/components/Head.tsx @@ -0,0 +1,35 @@ +import Head from 'next/head'; + +interface CustomHeadProps { + title: string; +} + +const CustomHead = ({ title }: CustomHeadProps) => { + return ( + + {title} + + + + + + + + + ); +}; + +export default CustomHead; + +CustomHead.defaultProps = { + title: 'Ahmed Galadima | Portfolio', +}; diff --git a/components/Illustration.tsx b/components/Illustration.tsx new file mode 100644 index 0000000..267b7b6 --- /dev/null +++ b/components/Illustration.tsx @@ -0,0 +1,25 @@ +import { SVGProps } from 'react'; + +const Illustration = (props: SVGProps) => { + return ( + + + + + + ); +}; + +export default Illustration; diff --git a/components/Layout.tsx b/components/Layout.tsx new file mode 100644 index 0000000..9ff4a83 --- /dev/null +++ b/components/Layout.tsx @@ -0,0 +1,44 @@ +import { useEffect } from 'react'; +import { useRouter } from 'next/router'; + +import Titlebar from '@/components/Titlebar'; +import Sidebar from '@/components/Sidebar'; +import Explorer from '@/components/Explorer'; +import Bottombar from '@/components/Bottombar'; +import Tabsbar from '@/components/Tabsbar'; + +import styles from '@/styles/Layout.module.css'; + +interface LayoutProps { + children: React.ReactNode; +} + +const Layout = ({ children }: LayoutProps) => { + // set scroll to top of main content on url pathname change + const router = useRouter(); + useEffect(() => { + const main = document.getElementById('main-editor'); + if (main) { + main.scrollTop = 0; + } + }, [router.pathname]); + + return ( + <> + +
+ + +
+ +
+ {children} +
+
+
+ + + ); +}; + +export default Layout; diff --git a/components/ProjectCard.tsx b/components/ProjectCard.tsx new file mode 100644 index 0000000..cc915eb --- /dev/null +++ b/components/ProjectCard.tsx @@ -0,0 +1,51 @@ +import Image from 'next/image'; + +import { Project } from '@/types'; + +import styles from '@/styles/ProjectCard.module.css'; + +interface ProjectCardProps { + project: Project; +} + +const ProjectCard = ({ project }: ProjectCardProps) => { + return ( + +
+
+ {`${project.title} +
+

{project.type}

+

{project.title}

+

{project.description}

+ + +
+
+

{project.date}

+

+ {project.status} +

+ {/*

{project.skills}

*/} + +
+
+ ); +}; + +// Add hover effect to the card +// Add a gradient overlay on hover + + +export default ProjectCard; diff --git a/components/RepoCard.tsx b/components/RepoCard.tsx new file mode 100644 index 0000000..172b135 --- /dev/null +++ b/components/RepoCard.tsx @@ -0,0 +1,71 @@ +import { + VscEye, + VscRepoForked, + VscStarEmpty, + VscGithubAlt, + VscLinkExternal, + VscTypeHierarchy, +} from 'react-icons/vsc'; + +import { Repo } from '@/types'; + +import styles from '@/styles/RepoCard.module.css'; + +interface RepoCardProps { + repo: Repo; +} + +const RepoCard = ({ repo }: RepoCardProps) => { + return ( +
+
+

{repo.name}

+ {repo.language && ( +
+ + {repo.language} +
+ )} +
+

{repo.description || 'No description provided'}

+
+
+
+ + {repo.stargazers_count} +
+
+ + {repo.forks} +
+
+ + {repo.watchers} +
+
+
+ + + + {repo.homepage && ( + + + + )} +
+
+
+ ); +}; + +export default RepoCard; diff --git a/components/Sidebar.tsx b/components/Sidebar.tsx new file mode 100644 index 0000000..f9fd9db --- /dev/null +++ b/components/Sidebar.tsx @@ -0,0 +1,74 @@ +import Link from 'next/link'; +import { useRouter } from 'next/router'; +import { + VscAccount, + VscSettings, + VscMail, + VscGithubAlt, + VscCode, + VscFiles, + VscEdit, +} from 'react-icons/vsc'; + +import styles from '@/styles/Sidebar.module.css'; + +const sidebarTopItems = [ + { Icon: VscFiles, path: '/' }, + { Icon: VscGithubAlt, path: '/github' }, + { Icon: VscCode, path: '/projects' }, + { Icon: VscEdit, path: '/articles' }, + { Icon: VscMail, path: '/contact' }, +]; + +const sidebarBottomItems = [ + { Icon: VscAccount, path: '/about' }, + { Icon: VscSettings, path: '/settings' }, +]; + +const Sidebar = () => { + const router = useRouter(); + + return ( + + ); +}; + +export default Sidebar; diff --git a/components/Tab.tsx b/components/Tab.tsx new file mode 100644 index 0000000..55605c5 --- /dev/null +++ b/components/Tab.tsx @@ -0,0 +1,28 @@ +import Link from 'next/link'; +import Image from 'next/image'; +import { useRouter } from 'next/router'; + +import styles from '@/styles/Tab.module.css'; + +interface TabProps { + icon: string; + filename: string; + path: string; +} + +const Tab = ({ icon, filename, path }: TabProps) => { + const router = useRouter(); + + return ( + +
+ {filename} +

{filename}

+
+ + ); +}; + +export default Tab; diff --git a/components/Tabsbar.tsx b/components/Tabsbar.tsx new file mode 100644 index 0000000..1739d67 --- /dev/null +++ b/components/Tabsbar.tsx @@ -0,0 +1,26 @@ +import Tab from '@/components/Tab'; + +import styles from '@/styles/Tabsbar.module.css'; + +const Tabsbar = () => { + return ( +
+ + + + + {/* */} + +
+ ); +}; + +export default Tabsbar; diff --git a/components/ThemeInfo.tsx b/components/ThemeInfo.tsx new file mode 100644 index 0000000..fe58c24 --- /dev/null +++ b/components/ThemeInfo.tsx @@ -0,0 +1,40 @@ +import Image from 'next/image'; + +import styles from '@/styles/ThemeInfo.module.css'; + +interface ThemeInfoProps { + icon: string; + name: string; + publisher: string; + theme: string; +} + +const ThemeInfo = ({ icon, name, publisher, theme }: ThemeInfoProps) => { + const setTheme = (theme: string) => { + document.documentElement.setAttribute('data-theme', theme); + localStorage.setItem('theme', theme); + }; + + return ( +
+
+ {name} +
+
+
+

{name}

+
{publisher}
+
+ +
+
+ ); +}; + +export default ThemeInfo; diff --git a/components/Titlebar.tsx b/components/Titlebar.tsx new file mode 100644 index 0000000..af168a9 --- /dev/null +++ b/components/Titlebar.tsx @@ -0,0 +1,34 @@ +import Image from 'next/image'; + +import styles from '@/styles/Titlebar.module.css'; + +const Titlebar = () => { + return ( +
+ VSCode Icon +
+

File

+

Edit

+

View

+

Go

+

Run

+

Terminal

+

Help

+
+

Ahmed Galadima - Visual Studio Code

+
+ + + +
+
+ ); +}; + +export default Titlebar; diff --git a/data/projects.ts b/data/projects.ts new file mode 100644 index 0000000..e7782e3 --- /dev/null +++ b/data/projects.ts @@ -0,0 +1,69 @@ +export interface Project { + title: string; + description: string; + type: string; + logo: string; + link: string; + slug: string; + date: string; + status: string; + skills: string; +} + +export const projects: Project[] = [ + { + title: 'Chopfood NG', + description: 'A delivery app for customers to easily order for food around their location.', + logo: '/logos/driwwwle.svg', + link: 'https://github.com/itsnitinr/driwwwle', + slug: 'driwwwle', + type: 'Software Development', + date: "2023-2024", + status: "Completed", + skills: "Angular, Node.js, Express, mySql, TypeScript" + }, + { + title: 'Vendostack', + description: 'An ecommerce platform for vendors to sell their products online.', + logo: '/logos/vsc.svg', + link: 'https://vendostack.com', + slug: 'vscode-portfolio', + type: 'Software Development', + date: "2024-Present", + status: "Ongoing", + skills: "Angular, Node.js, Express, mySql, TypeScript, GraphQL, React" + }, + { + title: 'ireferdoc', + description: 'A simple and elegant way to track your subscriptions and save money.', + logo: '/logos/subtrackt.svg', + link: 'https://ireferdoc.com', + slug: 'subtrackt', + type: 'Software Development', + date: "2021- Present", + status: "Completed", + skills: "Angular, Node.js, Express, mySql, TypeScript" + }, + { + title: 'Safrafan', + description: 'VSCode extension to track and deploy your Coolify applications.', + logo: '/logos/coolify.svg', + link: 'https://github.com/itsnitinr/coolify-vscode-extension', + slug: 'coolify-vscode-extension', + type: 'Software Development', + date: "2021-2023", + status: "Archived", + skills: "React, TypeScript, Node.js, GitHub Action" + }, + { + title: 'Arizult Consulting', + description: 'Conducted a 3-day QA audit, identifying 45+ critical bugs;', + logo: '/logos/coolify.svg', + link: 'https://github.com/itsnitinr/coolify-vscode-extension', + slug: 'coolify-vscode-extension', + type: 'QA Audit', + date: "2024-2025", + status: "Completed", + skills: "Playwright, TypeScript, Node.js, GitHub Action" + }, +]; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..8b9fff0 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,15 @@ +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +const eslintConfig = [ + ...compat.extends('next/core-web-vitals', 'next/typescript'), +]; +export default eslintConfig; diff --git a/next-env.d.ts b/next-env.d.ts new file mode 100644 index 0000000..52e831b --- /dev/null +++ b/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. diff --git a/next.config.ts b/next.config.ts new file mode 100644 index 0000000..ff3cadd --- /dev/null +++ b/next.config.ts @@ -0,0 +1,14 @@ +import type { NextConfig } from 'next'; + +const nextConfig: NextConfig = { + images: { + remotePatterns: [ + { hostname: 'res.cloudinary.com', protocol: 'https' }, + { hostname: 'avatars.githubusercontent.com', protocol: 'https' }, + { hostname: 'imgur.com', protocol: 'https' }, + { hostname: 'media2.dev.to', protocol: 'https' }, + ], + }, +}; + +export default nextConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..714a50e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,8710 @@ +{ + "name": "vscode-portfolio", + "version": "2.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "vscode-portfolio", + "version": "2.0.0", + "dependencies": { + "next": "^15.3.2", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-github-calendar": "^4.5.6", + "react-icons": "^5.5.0" + }, + "devDependencies": { + "@types/node": "^22.13.10", + "@types/react": "^19.0.11", + "eslint": "^9.22.0", + "eslint-config-next": "^15.2.3", + "typescript": "^5.8.2" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", + "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.12.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", + "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", + "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", + "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", + "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", + "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", + "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", + "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", + "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", + "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", + "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", + "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", + "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", + "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", + "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", + "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", + "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", + "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", + "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.4.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", + "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", + "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz", + "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.3.1", + "@emnapi/runtime": "^1.3.1", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@next/env": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", + "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.3.tgz", + "integrity": "sha512-eNSOIMJtjs+dp4Ms1tB1PPPJUQHP3uZK+OQ7iFY9qXpGO6ojT6imCL+KcUOqE/GXGidWbBZJzYdgAdPHqeCEPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz", + "integrity": "sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz", + "integrity": "sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz", + "integrity": "sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz", + "integrity": "sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz", + "integrity": "sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz", + "integrity": "sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz", + "integrity": "sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz", + "integrity": "sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", + "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.13.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", + "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/react": { + "version": "19.0.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.11.tgz", + "integrity": "sha512-vrdxRZfo9ALXth6yPfV16PYTLZwsUWhVjjC+DkfE5t1suNSbBrWC9YqSuuxJZ8Ps6z1o2ycRpIqzZJIgklq4Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz", + "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/type-utils": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz", + "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", + "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz", + "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", + "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", + "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz", + "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", + "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.26.1", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@unrs/rspack-resolver-binding-darwin-arm64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-arm64/-/rspack-resolver-binding-darwin-arm64-1.2.1.tgz", + "integrity": "sha512-xgSjy64typsn/lhQk/uKaS363H7ZeIBlWSh25FJFWXSCeLMHpEZ0umDo5Vzqi5iS26OZ5R1SpQkwiS78GhQRjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-darwin-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-x64/-/rspack-resolver-binding-darwin-x64-1.2.1.tgz", + "integrity": "sha512-3maDtW0vehzciEbuLxc2g+0FmDw5LGfCt+yMN1ZDn0lW0ikEBEFp6ul3h2fRphtfuCc7IvBJE9WWTt1UHkS7Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-freebsd-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-freebsd-x64/-/rspack-resolver-binding-freebsd-x64-1.2.1.tgz", + "integrity": "sha512-aN6ifws9rNLjK2+6sIU9wvHyjXEf3S5+EZTHRarzd4jfa8i5pA7Mwt28un2DZVrBtIxhWDQvUPVKGI7zSBfVCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-arm-gnueabihf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm-gnueabihf/-/rspack-resolver-binding-linux-arm-gnueabihf-1.2.1.tgz", + "integrity": "sha512-tKqu9VQyCO1yEUX6n6jgOHi7SJA9e6lvHczK60gur4VBITxnPmVYiCj2aekrOOIavvvjjuWAL2rqPQuc4g7RHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-arm64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-gnu/-/rspack-resolver-binding-linux-arm64-gnu-1.2.1.tgz", + "integrity": "sha512-+xDI0kvwPiCR7334O83TPfaUXSe0UMVi5srQpQxP4+SDVYuONWsbwAC1IXe+yfOwRVGZsUdW9wE0ZiWs4Z+egw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-arm64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-musl/-/rspack-resolver-binding-linux-arm64-musl-1.2.1.tgz", + "integrity": "sha512-fcrVHlw+6UgQliMbI0znFD4ASWKuyY17FdH67ZmyNH62b0hRhhxQuJE0D6N3410m8lKVu4QW4EzFiHxYFUC0cg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-x64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-gnu/-/rspack-resolver-binding-linux-x64-gnu-1.2.1.tgz", + "integrity": "sha512-xISTyUJ2PiAT4x9nlh8FdciDcdKbsatgK9qO7EEsILt9VB7Y1mHYGaszj3ouxfZnaKQ13WwW+dFLGxkZLP/WVg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-x64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-musl/-/rspack-resolver-binding-linux-x64-musl-1.2.1.tgz", + "integrity": "sha512-LE8EjE/iPlvSsFbZ6P9c0Jh5/pifAi03UYeXYwOnQqt1molKAPMB0R4kGWOM7dnDYaNgkk1MN9MOTCLsqe97Fw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-wasm32-wasi": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-wasm32-wasi/-/rspack-resolver-binding-wasm32-wasi-1.2.1.tgz", + "integrity": "sha512-XERT3B88+G55RgG96May8QvAdgGzHr8qtQ70cIdbuWTpIcA0I76cnxSZ8Qwx33y73jE5N/myX2YKDlFksn4z6w==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.7" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/rspack-resolver-binding-win32-arm64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-arm64-msvc/-/rspack-resolver-binding-win32-arm64-msvc-1.2.1.tgz", + "integrity": "sha512-I8OLI6JbmNx2E/SG8MOEuo/d6rNx8dwgL09rcItSMcP82v1oZ8AY8HNA+axxuxEH95nkb6MPJU09p63isDvzrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-win32-x64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-x64-msvc/-/rspack-resolver-binding-win32-x64-msvc-1.2.1.tgz", + "integrity": "sha512-s5WvCljhFqiE3McvaD3lDIsQpmk7gEJRUHy1PRwLPzEB7snq9P2xQeqgzdjGhJQq62jBFz7NDy7NbMkocWr2pw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001706", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz", + "integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.22.0", + "@eslint/plugin-kit": "^0.2.7", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-next": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.3.tgz", + "integrity": "sha512-VDQwbajhNMFmrhLWVyUXCqsGPN+zz5G8Ys/QwFubfsxTIrkqdx3N3x3QPW+pERz8bzGPP0IgEm8cNbZcd8PFRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "15.2.3", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.9.1.tgz", + "integrity": "sha512-euxa5rTGqHeqVxmOHT25hpk58PxkQ4mNoX6Yun4ooGaCHAxOCojJYNvjmyeOQxj/LyW+3fulH0+xtk+p2kPPTw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^1.3.0", + "rspack-resolver": "^1.1.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.12" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", + "optional": true + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.6.3" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.10.tgz", + "integrity": "sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.3.2.tgz", + "integrity": "sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==", + "license": "MIT", + "dependencies": { + "@next/env": "15.3.2", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.3.2", + "@next/swc-darwin-x64": "15.3.2", + "@next/swc-linux-arm64-gnu": "15.3.2", + "@next/swc-linux-arm64-musl": "15.3.2", + "@next/swc-linux-x64-gnu": "15.3.2", + "@next/swc-linux-x64-musl": "15.3.2", + "@next/swc-win32-arm64-msvc": "15.3.2", + "@next/swc-win32-x64-msvc": "15.3.2", + "sharp": "^0.34.1" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-activity-calendar": { + "version": "2.7.10", + "resolved": "https://registry.npmjs.org/react-activity-calendar/-/react-activity-calendar-2.7.10.tgz", + "integrity": "sha512-O6ev2JxbsbmF7hPpRCkiXxQ+vGwXS5iUVwOCqtvlJnGhpyJ3ZJap7/qfIZA0WZcDj4gpQh2Dcvkmwh3yBXRrPQ==", + "license": "MIT", + "dependencies": { + "date-fns": "^4.1.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-error-boundary": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-5.0.0.tgz", + "integrity": "sha512-tnjAxG+IkpLephNcePNA7v6F/QpWLH8He65+DmedchDwg162JZqx4NmbXj0mlAYVVEd81OW7aFhmbsScYfiAFQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, + "node_modules/react-github-calendar": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/react-github-calendar/-/react-github-calendar-4.5.6.tgz", + "integrity": "sha512-wuLJ+4MDBnli+YWUCprmK+e4ltRaMaB1P4VnYCrbATzFUq46ZDvrXbjQ8uf5aXPbWW8X+ZzSBgGOXGDWgkl0Sw==", + "license": "MIT", + "dependencies": { + "react-activity-calendar": "^2.7.8", + "react-error-boundary": "^5.0.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-icons": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", + "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rspack-resolver": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rspack-resolver/-/rspack-resolver-1.2.1.tgz", + "integrity": "sha512-yTaWGUvHOjcoyFMdVTdYt2nq2Hu8sw6ia3X9szloXFJlWLQZnQ9g/4TPhL3Bb3qN58Mkye8mFG7MCaKhya7fOw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/JounQin" + }, + "optionalDependencies": { + "@unrs/rspack-resolver-binding-darwin-arm64": "1.2.1", + "@unrs/rspack-resolver-binding-darwin-x64": "1.2.1", + "@unrs/rspack-resolver-binding-freebsd-x64": "1.2.1", + "@unrs/rspack-resolver-binding-linux-arm-gnueabihf": "1.2.1", + "@unrs/rspack-resolver-binding-linux-arm64-gnu": "1.2.1", + "@unrs/rspack-resolver-binding-linux-arm64-musl": "1.2.1", + "@unrs/rspack-resolver-binding-linux-x64-gnu": "1.2.1", + "@unrs/rspack-resolver-binding-linux-x64-musl": "1.2.1", + "@unrs/rspack-resolver-binding-wasm32-wasi": "1.2.1", + "@unrs/rspack-resolver-binding-win32-arm64-msvc": "1.2.1", + "@unrs/rspack-resolver-binding-win32-x64-msvc": "1.2.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "devOptional": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", + "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.7.1" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.1", + "@img/sharp-darwin-x64": "0.34.1", + "@img/sharp-libvips-darwin-arm64": "1.1.0", + "@img/sharp-libvips-darwin-x64": "1.1.0", + "@img/sharp-libvips-linux-arm": "1.1.0", + "@img/sharp-libvips-linux-arm64": "1.1.0", + "@img/sharp-libvips-linux-ppc64": "1.1.0", + "@img/sharp-libvips-linux-s390x": "1.1.0", + "@img/sharp-libvips-linux-x64": "1.1.0", + "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", + "@img/sharp-libvips-linuxmusl-x64": "1.1.0", + "@img/sharp-linux-arm": "0.34.1", + "@img/sharp-linux-arm64": "0.34.1", + "@img/sharp-linux-s390x": "0.34.1", + "@img/sharp-linux-x64": "0.34.1", + "@img/sharp-linuxmusl-arm64": "0.34.1", + "@img/sharp-linuxmusl-x64": "0.34.1", + "@img/sharp-wasm32": "0.34.1", + "@img/sharp-win32-ia32": "0.34.1", + "@img/sharp-win32-x64": "0.34.1" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "dev": true, + "optional": true, + "requires": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "@eslint-community/eslint-utils": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", + "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.4.3" + } + }, + "@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true + }, + "@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "dev": true, + "requires": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true + }, + "@eslint/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.15" + } + }, + "@eslint/eslintrc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@eslint/js": { + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", + "dev": true + }, + "@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true + }, + "@eslint/plugin-kit": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "dev": true, + "requires": { + "@eslint/core": "^0.12.0", + "levn": "^0.4.1" + } + }, + "@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true + }, + "@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "requires": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "dependencies": { + "@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true + } + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true + }, + "@img/sharp-darwin-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", + "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", + "optional": true, + "requires": { + "@img/sharp-libvips-darwin-arm64": "1.1.0" + } + }, + "@img/sharp-darwin-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", + "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", + "optional": true, + "requires": { + "@img/sharp-libvips-darwin-x64": "1.1.0" + } + }, + "@img/sharp-libvips-darwin-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", + "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", + "optional": true + }, + "@img/sharp-libvips-darwin-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", + "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", + "optional": true + }, + "@img/sharp-libvips-linux-arm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", + "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", + "optional": true + }, + "@img/sharp-libvips-linux-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", + "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", + "optional": true + }, + "@img/sharp-libvips-linux-ppc64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", + "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", + "optional": true + }, + "@img/sharp-libvips-linux-s390x": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", + "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", + "optional": true + }, + "@img/sharp-libvips-linux-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", + "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", + "optional": true + }, + "@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", + "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", + "optional": true + }, + "@img/sharp-libvips-linuxmusl-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", + "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", + "optional": true + }, + "@img/sharp-linux-arm": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", + "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-arm": "1.1.0" + } + }, + "@img/sharp-linux-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", + "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-arm64": "1.1.0" + } + }, + "@img/sharp-linux-s390x": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", + "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-s390x": "1.1.0" + } + }, + "@img/sharp-linux-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", + "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-x64": "1.1.0" + } + }, + "@img/sharp-linuxmusl-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", + "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", + "optional": true, + "requires": { + "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + } + }, + "@img/sharp-linuxmusl-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", + "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", + "optional": true, + "requires": { + "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + } + }, + "@img/sharp-wasm32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", + "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", + "optional": true, + "requires": { + "@emnapi/runtime": "^1.4.0" + } + }, + "@img/sharp-win32-ia32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", + "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", + "optional": true + }, + "@img/sharp-win32-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", + "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", + "optional": true + }, + "@napi-rs/wasm-runtime": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz", + "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==", + "dev": true, + "optional": true, + "requires": { + "@emnapi/core": "^1.3.1", + "@emnapi/runtime": "^1.3.1", + "@tybys/wasm-util": "^0.9.0" + } + }, + "@next/env": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", + "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==" + }, + "@next/eslint-plugin-next": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.3.tgz", + "integrity": "sha512-eNSOIMJtjs+dp4Ms1tB1PPPJUQHP3uZK+OQ7iFY9qXpGO6ojT6imCL+KcUOqE/GXGidWbBZJzYdgAdPHqeCEPA==", + "dev": true, + "requires": { + "fast-glob": "3.3.1" + }, + "dependencies": { + "fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "@next/swc-darwin-arm64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz", + "integrity": "sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz", + "integrity": "sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz", + "integrity": "sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz", + "integrity": "sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz", + "integrity": "sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz", + "integrity": "sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz", + "integrity": "sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz", + "integrity": "sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==", + "optional": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true + }, + "@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "@rushstack/eslint-patch": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", + "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", + "dev": true + }, + "@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "requires": { + "tslib": "^2.8.0" + } + }, + "@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/node": { + "version": "22.13.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", + "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", + "dev": true, + "requires": { + "undici-types": "~6.20.0" + } + }, + "@types/react": { + "version": "19.0.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.11.tgz", + "integrity": "sha512-vrdxRZfo9ALXth6yPfV16PYTLZwsUWhVjjC+DkfE5t1suNSbBrWC9YqSuuxJZ8Ps6z1o2ycRpIqzZJIgklq4Tw==", + "dev": true, + "requires": { + "csstype": "^3.0.2" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz", + "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/type-utils": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + } + }, + "@typescript-eslint/parser": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz", + "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", + "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz", + "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + } + }, + "@typescript-eslint/types": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", + "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", + "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + } + }, + "@typescript-eslint/utils": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz", + "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", + "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.26.1", + "eslint-visitor-keys": "^4.2.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true + } + } + }, + "@unrs/rspack-resolver-binding-darwin-arm64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-arm64/-/rspack-resolver-binding-darwin-arm64-1.2.1.tgz", + "integrity": "sha512-xgSjy64typsn/lhQk/uKaS363H7ZeIBlWSh25FJFWXSCeLMHpEZ0umDo5Vzqi5iS26OZ5R1SpQkwiS78GhQRjw==", + "dev": true, + "optional": true + }, + "@unrs/rspack-resolver-binding-darwin-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-x64/-/rspack-resolver-binding-darwin-x64-1.2.1.tgz", + "integrity": "sha512-3maDtW0vehzciEbuLxc2g+0FmDw5LGfCt+yMN1ZDn0lW0ikEBEFp6ul3h2fRphtfuCc7IvBJE9WWTt1UHkS7Nw==", + "dev": true, + "optional": true + }, + "@unrs/rspack-resolver-binding-freebsd-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-freebsd-x64/-/rspack-resolver-binding-freebsd-x64-1.2.1.tgz", + "integrity": "sha512-aN6ifws9rNLjK2+6sIU9wvHyjXEf3S5+EZTHRarzd4jfa8i5pA7Mwt28un2DZVrBtIxhWDQvUPVKGI7zSBfVCA==", + "dev": true, + "optional": true + }, + "@unrs/rspack-resolver-binding-linux-arm-gnueabihf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm-gnueabihf/-/rspack-resolver-binding-linux-arm-gnueabihf-1.2.1.tgz", + "integrity": "sha512-tKqu9VQyCO1yEUX6n6jgOHi7SJA9e6lvHczK60gur4VBITxnPmVYiCj2aekrOOIavvvjjuWAL2rqPQuc4g7RHQ==", + "dev": true, + "optional": true + }, + "@unrs/rspack-resolver-binding-linux-arm64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-gnu/-/rspack-resolver-binding-linux-arm64-gnu-1.2.1.tgz", + "integrity": "sha512-+xDI0kvwPiCR7334O83TPfaUXSe0UMVi5srQpQxP4+SDVYuONWsbwAC1IXe+yfOwRVGZsUdW9wE0ZiWs4Z+egw==", + "dev": true, + "optional": true + }, + "@unrs/rspack-resolver-binding-linux-arm64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-musl/-/rspack-resolver-binding-linux-arm64-musl-1.2.1.tgz", + "integrity": "sha512-fcrVHlw+6UgQliMbI0znFD4ASWKuyY17FdH67ZmyNH62b0hRhhxQuJE0D6N3410m8lKVu4QW4EzFiHxYFUC0cg==", + "dev": true, + "optional": true + }, + "@unrs/rspack-resolver-binding-linux-x64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-gnu/-/rspack-resolver-binding-linux-x64-gnu-1.2.1.tgz", + "integrity": "sha512-xISTyUJ2PiAT4x9nlh8FdciDcdKbsatgK9qO7EEsILt9VB7Y1mHYGaszj3ouxfZnaKQ13WwW+dFLGxkZLP/WVg==", + "dev": true, + "optional": true + }, + "@unrs/rspack-resolver-binding-linux-x64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-musl/-/rspack-resolver-binding-linux-x64-musl-1.2.1.tgz", + "integrity": "sha512-LE8EjE/iPlvSsFbZ6P9c0Jh5/pifAi03UYeXYwOnQqt1molKAPMB0R4kGWOM7dnDYaNgkk1MN9MOTCLsqe97Fw==", + "dev": true, + "optional": true + }, + "@unrs/rspack-resolver-binding-wasm32-wasi": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-wasm32-wasi/-/rspack-resolver-binding-wasm32-wasi-1.2.1.tgz", + "integrity": "sha512-XERT3B88+G55RgG96May8QvAdgGzHr8qtQ70cIdbuWTpIcA0I76cnxSZ8Qwx33y73jE5N/myX2YKDlFksn4z6w==", + "dev": true, + "optional": true, + "requires": { + "@napi-rs/wasm-runtime": "^0.2.7" + } + }, + "@unrs/rspack-resolver-binding-win32-arm64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-arm64-msvc/-/rspack-resolver-binding-win32-arm64-msvc-1.2.1.tgz", + "integrity": "sha512-I8OLI6JbmNx2E/SG8MOEuo/d6rNx8dwgL09rcItSMcP82v1oZ8AY8HNA+axxuxEH95nkb6MPJU09p63isDvzrA==", + "dev": true, + "optional": true + }, + "@unrs/rspack-resolver-binding-win32-x64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-x64-msvc/-/rspack-resolver-binding-win32-x64-msvc-1.2.1.tgz", + "integrity": "sha512-s5WvCljhFqiE3McvaD3lDIsQpmk7gEJRUHy1PRwLPzEB7snq9P2xQeqgzdjGhJQq62jBFz7NDy7NbMkocWr2pw==", + "dev": true, + "optional": true + }, + "acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + } + }, + "array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + } + }, + "array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + } + }, + "array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + } + }, + "array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + } + }, + "array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + } + }, + "ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, + "axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true + }, + "axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + } + }, + "call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001706", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz", + "integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "optional": true, + "requires": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true + }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "optional": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + } + }, + "data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + } + }, + "data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==" + }, + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "optional": true + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + } + }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true + }, + "es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + } + }, + "es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0" + } + }, + "es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "requires": { + "hasown": "^2.0.2" + } + }, + "es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "requires": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.22.0", + "@eslint/plugin-kit": "^0.2.7", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "eslint-config-next": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.3.tgz", + "integrity": "sha512-VDQwbajhNMFmrhLWVyUXCqsGPN+zz5G8Ys/QwFubfsxTIrkqdx3N3x3QPW+pERz8bzGPP0IgEm8cNbZcd8PFRQ==", + "dev": true, + "requires": { + "@next/eslint-plugin-next": "15.2.3", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-import-resolver-typescript": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.9.1.tgz", + "integrity": "sha512-euxa5rTGqHeqVxmOHT25hpk58PxkQ4mNoX6Yun4ooGaCHAxOCojJYNvjmyeOQxj/LyW+3fulH0+xtk+p2kPPTw==", + "dev": true, + "requires": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^1.3.0", + "rspack-resolver": "^1.1.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.12" + } + }, + "eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "requires": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "requires": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "eslint-plugin-react": { + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "requires": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true + } + } + }, + "esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "requires": { + "flat-cache": "^4.0.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + } + }, + "flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true + }, + "for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "requires": { + "is-callable": "^1.2.7" + } + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + } + }, + "get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + } + }, + "get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true + }, + "globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "requires": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + } + }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.3" + } + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true + }, + "import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + } + }, + "is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + } + }, + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "optional": true + }, + "is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "requires": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "requires": { + "has-bigints": "^1.0.2" + } + }, + "is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-bun-module": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "dev": true, + "requires": { + "semver": "^7.6.3" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "requires": { + "hasown": "^2.0.2" + } + }, + "is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + } + }, + "is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + } + }, + "is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.16" + } + }, + "is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true + }, + "is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + } + }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "requires": { + "language-subtag-registry": "^0.3.20" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nanoid": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.10.tgz", + "integrity": "sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "next": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.3.2.tgz", + "integrity": "sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==", + "requires": { + "@next/env": "15.3.2", + "@next/swc-darwin-arm64": "15.3.2", + "@next/swc-darwin-x64": "15.3.2", + "@next/swc-linux-arm64-gnu": "15.3.2", + "@next/swc-linux-arm64-musl": "15.3.2", + "@next/swc-linux-x64-gnu": "15.3.2", + "@next/swc-linux-x64-musl": "15.3.2", + "@next/swc-win32-arm64-msvc": "15.3.2", + "@next/swc-win32-x64-msvc": "15.3.2", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "sharp": "^0.34.1", + "styled-jsx": "5.1.6" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + } + }, + "object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + } + }, + "object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + } + }, + "object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + } + }, + "own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true + }, + "postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==" + }, + "react-activity-calendar": { + "version": "2.7.10", + "resolved": "https://registry.npmjs.org/react-activity-calendar/-/react-activity-calendar-2.7.10.tgz", + "integrity": "sha512-O6ev2JxbsbmF7hPpRCkiXxQ+vGwXS5iUVwOCqtvlJnGhpyJ3ZJap7/qfIZA0WZcDj4gpQh2Dcvkmwh3yBXRrPQ==", + "requires": { + "date-fns": "^4.1.0" + } + }, + "react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "requires": { + "scheduler": "^0.26.0" + } + }, + "react-error-boundary": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-5.0.0.tgz", + "integrity": "sha512-tnjAxG+IkpLephNcePNA7v6F/QpWLH8He65+DmedchDwg162JZqx4NmbXj0mlAYVVEd81OW7aFhmbsScYfiAFQ==", + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "react-github-calendar": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/react-github-calendar/-/react-github-calendar-4.5.6.tgz", + "integrity": "sha512-wuLJ+4MDBnli+YWUCprmK+e4ltRaMaB1P4VnYCrbATzFUq46ZDvrXbjQ8uf5aXPbWW8X+ZzSBgGOXGDWgkl0Sw==", + "requires": { + "react-activity-calendar": "^2.7.8", + "react-error-boundary": "^5.0.0" + } + }, + "react-icons": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", + "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", + "requires": {} + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + } + }, + "resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "requires": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, + "reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true + }, + "rspack-resolver": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rspack-resolver/-/rspack-resolver-1.2.1.tgz", + "integrity": "sha512-yTaWGUvHOjcoyFMdVTdYt2nq2Hu8sw6ia3X9szloXFJlWLQZnQ9g/4TPhL3Bb3qN58Mkye8mFG7MCaKhya7fOw==", + "dev": true, + "requires": { + "@unrs/rspack-resolver-binding-darwin-arm64": "1.2.1", + "@unrs/rspack-resolver-binding-darwin-x64": "1.2.1", + "@unrs/rspack-resolver-binding-freebsd-x64": "1.2.1", + "@unrs/rspack-resolver-binding-linux-arm-gnueabihf": "1.2.1", + "@unrs/rspack-resolver-binding-linux-arm64-gnu": "1.2.1", + "@unrs/rspack-resolver-binding-linux-arm64-musl": "1.2.1", + "@unrs/rspack-resolver-binding-linux-x64-gnu": "1.2.1", + "@unrs/rspack-resolver-binding-linux-x64-musl": "1.2.1", + "@unrs/rspack-resolver-binding-wasm32-wasi": "1.2.1", + "@unrs/rspack-resolver-binding-win32-arm64-msvc": "1.2.1", + "@unrs/rspack-resolver-binding-win32-x64-msvc": "1.2.1" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + } + }, + "safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + } + }, + "safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + } + }, + "scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" + }, + "semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "devOptional": true + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, + "set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + } + }, + "sharp": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", + "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", + "optional": true, + "requires": { + "@img/sharp-darwin-arm64": "0.34.1", + "@img/sharp-darwin-x64": "0.34.1", + "@img/sharp-libvips-darwin-arm64": "1.1.0", + "@img/sharp-libvips-darwin-x64": "1.1.0", + "@img/sharp-libvips-linux-arm": "1.1.0", + "@img/sharp-libvips-linux-arm64": "1.1.0", + "@img/sharp-libvips-linux-ppc64": "1.1.0", + "@img/sharp-libvips-linux-s390x": "1.1.0", + "@img/sharp-libvips-linux-x64": "1.1.0", + "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", + "@img/sharp-libvips-linuxmusl-x64": "1.1.0", + "@img/sharp-linux-arm": "0.34.1", + "@img/sharp-linux-arm64": "0.34.1", + "@img/sharp-linux-s390x": "0.34.1", + "@img/sharp-linux-x64": "0.34.1", + "@img/sharp-linuxmusl-arm64": "0.34.1", + "@img/sharp-linuxmusl-x64": "0.34.1", + "@img/sharp-wasm32": "0.34.1", + "@img/sharp-win32-ia32": "0.34.1", + "@img/sharp-win32-x64": "0.34.1", + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.7.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + } + }, + "side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + } + }, + "side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + } + }, + "side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "optional": true, + "requires": { + "is-arrayish": "^0.3.1" + } + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + }, + "stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + } + }, + "string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + } + }, + "string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "requires": { + "client-only": "0.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "requires": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "dependencies": { + "fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "requires": {} + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-api-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", + "dev": true, + "requires": {} + }, + "tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + } + }, + "typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + } + }, + "typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + } + }, + "typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + } + }, + "typescript": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "dev": true + }, + "unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + } + }, + "undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "requires": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + } + }, + "which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + } + }, + "which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "requires": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + } + }, + "which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + } + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a3b378b --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "galads-portfolio", + "version": "2.0.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "next": "^15.3.2", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-github-calendar": "^4.5.6", + "react-icons": "^5.5.0" + }, + "devDependencies": { + "@types/node": "^22.13.10", + "@types/react": "^19.0.11", + "eslint": "^9.22.0", + "eslint-config-next": "^15.2.3", + "typescript": "^5.8.2" + } +} diff --git a/pages/_app.tsx b/pages/_app.tsx new file mode 100644 index 0000000..4e235a2 --- /dev/null +++ b/pages/_app.tsx @@ -0,0 +1,26 @@ +import { useEffect } from 'react'; +import type { AppProps } from 'next/app'; + +import Layout from '@/components/Layout'; +import Head from '@/components/Head'; + +import '@/styles/globals.css'; +import '@/styles/themes.css'; + +function MyApp({ Component, pageProps }: AppProps) { + useEffect(() => { + const theme = localStorage.getItem('theme'); + if (theme) { + document.documentElement.setAttribute('data-theme', theme); + } + }, []); + + return ( + + + + + ); +} + +export default MyApp; diff --git a/pages/about.tsx b/pages/about.tsx new file mode 100644 index 0000000..8d54ec7 --- /dev/null +++ b/pages/about.tsx @@ -0,0 +1,124 @@ +import styles from '@/styles/AboutPage.module.css'; +import Link from 'next/link'; +import { FaTools, FaRocket, FaCertificate, FaCodeBranch } from 'react-icons/fa'; + +const AboutPage = () => { + return ( +
+
+
+

Ahmed Galadima

+
Senior QA Engineer & Automation Consultant
+

Turning quality assurance into competitive advantage

+
+ +
+
+
+

Value Proposition

+

+ I help startups and tech teams ship flawless software 30% faster + through strategic test automation and CI/CD optimization. Proven track record of reducing post-launch + defects by 70%+ and QA costs by 40%+. +

+
+
+ +
+

Key Achievements

+
+
+

Process Automation

+
    +
  • Reduced regression testing time by 65% through Selenium frameworks
  • +
  • Implemented CI/CD pipelines cutting release cycles from 4 weeks to 10 days
  • +
+
+

+
+

Client Impact

+
    +
  • $50K+ saved in remediation costs for fintech clients
  • +
  • Zero critical bugs in 5+ MVP launches
  • +
+
+
+
+ +
+

Technical Arsenal

+
+
+ +
+

Automation

+

Selenium · Cypress · Postman · JMeter

+
+
+
+ +
+

CI/CD & DevOps

+

Jenkins · Docker · GitLab CI · Kubernetes

+
+
+
+
+ +
+

Client Success Stories

+
+

HealthTech Startup

+
+ Challenge: MVP launch blocked by 100+ critical bugs +
+
+ Solution: 3-day QA audit + automated regression suite +
+
+ Outcome: Zero critical bugs at launch · $500K seed funding secured +
+
+
+ +
+

Credentials

+
+
+ + ISTQB Advanced +
+
+ + Certified ScrumMaster +
+
+
+ +
+

Testimonials

+
+ Ahmed's automation framework became our secret weapon for scaling. + Cut our testing costs by 60% while improving coverage. + - CTO, SaaS Platform +
+
+
+ +
+ + Let's Automate Your Quality + +
+
+
+ ); +}; + +export async function getStaticProps() { + return { + props: { title: 'Expert QA Engineering Services' }, + }; +} + +export default AboutPage; \ No newline at end of file diff --git a/pages/articles.tsx b/pages/articles.tsx new file mode 100644 index 0000000..de97100 --- /dev/null +++ b/pages/articles.tsx @@ -0,0 +1,58 @@ +import ArticleCard from '@/components/ArticleCard'; + +import { Article } from '@/types'; + +import styles from '@/styles/ArticlesPage.module.css'; + +interface ArticlesPageProps { + articles: Article[]; +} + +const ArticlesPage = ({ articles }: ArticlesPageProps) => { + return ( +
+

My Articles

+

+ Recent posts from{' '} + + dev.to + {' '} + where I share insights and tutorials about web development. +

+
+ {articles.length > 0 ? ( + articles.map((article) => ( + + )) + ) :( +

No articles available at the moment.

+ )} +
+
+ ); +}; + +export async function getStaticProps() { + const res = await fetch( + 'https://dev.to/api/articles/me/published?per_page=6', + { + headers: { + 'api-key': process.env.DEV_TO_API_KEY!, + }, + } + ); + + const data = await res.json(); + + return { + props: { title: 'Articles', articles: data }, + revalidate: 60, + }; +} + +export default ArticlesPage; diff --git a/pages/contact.tsx b/pages/contact.tsx new file mode 100644 index 0000000..af0fd50 --- /dev/null +++ b/pages/contact.tsx @@ -0,0 +1,28 @@ +import ContactCode from '@/components/ContactCode'; + +import styles from '@/styles/ContactPage.module.css'; + +const ContactPage = () => { + return ( +
+

Contact Me

+

+ Feel free to reach out to me through any of the social platforms below. + I'm always open to new opportunities and connections. +

+
+
+ +
+
+
+ ); +}; + +export async function getStaticProps() { + return { + props: { title: 'Contact' }, + }; +} + +export default ContactPage; diff --git a/pages/github.tsx b/pages/github.tsx new file mode 100644 index 0000000..790b6be --- /dev/null +++ b/pages/github.tsx @@ -0,0 +1,99 @@ +import Image from 'next/image'; +import GitHubCalendar from 'react-github-calendar'; +import { VscRepo, VscPerson } from 'react-icons/vsc'; + +import RepoCard from '@/components/RepoCard'; +import { Repo, User } from '@/types'; + +import styles from '@/styles/GithubPage.module.css'; + +interface GithubPageProps { + repos: Repo[]; + user: User; +} + +const GithubPage = ({ repos, user }: GithubPageProps) => { + return ( +
+
+

GitHub

+

+ Browse through my GitHub repositories and see what I've been + working on. These are some of my public repositories showcasing + various projects and skills. +

+
+ +
+
+
+ {user.login} +
+

{user.login}

+
+
+ + {user.public_repos} repositories +
+
+ + {user.followers} followers +
+
+
+
+
+ +
+

Popular Repositories

+
+
+ {repos.map((repo) => ( + + ))} +
+
+ +
+
+
+ ); +}; + +export async function getStaticProps() { + const userRes = await fetch( + `https://api.github.com/users/${process.env.NEXT_PUBLIC_GITHUB_USERNAME}` + ); + const user = await userRes.json(); + + const repoRes = await fetch( + `https://api.github.com/users/${process.env.NEXT_PUBLIC_GITHUB_USERNAME}/repos?sort=pushed&per_page=6` + ); + const repos = await repoRes.json(); + + return { + props: { title: 'GitHub', repos, user }, + revalidate: 600, + }; +} + +export default GithubPage; diff --git a/pages/index.tsx b/pages/index.tsx new file mode 100644 index 0000000..8bcba95 --- /dev/null +++ b/pages/index.tsx @@ -0,0 +1,137 @@ +import { useState, useEffect } from 'react'; +import Link from 'next/link'; +import { VscArrowRight } from 'react-icons/vsc'; + +import styles from '@/styles/HomePage.module.css'; + +export default function HomePage() { + const [activeLineIndex, setActiveLineIndex] = useState(0); + + const codeLines = [ + { code: 'const HomePage = () => {', type: 'function' }, + { + code: ' const [isLoaded, setIsLoaded] = useState(true);', + type: 'variable', + }, + { code: ' const developerInfo = {', type: 'variable' }, + { code: " name: 'Ahmed Galadima',", type: 'array-item' }, + { code: " role: 'Senior QA Engineer & Consultant',", type: 'array-item' }, + { code: " bio: 'Dynamic Senior QA Engineer & Consultant with over 10+ years of expertise'", type: 'array-item' }, + { code: ' };', type: 'array-end' }, + { code: '', type: 'blank' }, + { code: ' useEffect(() => {', type: 'nested-function' }, + { + code: ' document.title = `${developerInfo.name} | Portfolio`;', + type: 'return', + }, + { code: ' setIsLoaded(true);', type: 'function-call' }, + { code: ' }, []);', type: 'close' }, + { code: '', type: 'blank' }, + { code: ' return (', type: 'return-object' }, + { code: '
', type: 'object-method' }, + { code: '

{developerInfo.name}

', type: 'object-method' }, + { code: '

{developerInfo.role}

', type: 'object-method' }, + { code: '
', type: 'object-method' }, + { + code: ' View Projects', + type: 'object-method', + }, + { code: '
', type: 'object-method' }, + { code: '
', type: 'object-method' }, + { code: ' );', type: 'close' }, + { code: '};', type: 'close-function' }, + { code: '', type: 'blank' }, + { code: 'export default HomePage;', type: 'function-call' }, + ]; + + useEffect(() => { + const interval = setInterval(() => { + setActiveLineIndex((prev) => (prev + 1) % codeLines.length); + }, 2000); + + return () => clearInterval(interval); + }, [codeLines.length]); + + return ( +
+
+
+
+
+
+ {codeLines.map((_, index) => ( +
+ {index + 1} +
+ ))} +
+ +
+ {codeLines.map((line, index) => ( +
+ {line.code} +
+ ))} +
+ +
+
+
+
+ +
+

+ Ahmed Galadima +

+ +
Senior QA Engineer & Consultant
+ +

+ Dynamic Senior QA Engineer & Consultant with 10+ years of expertise in delivering 30% faster software releases and + 40%+ cost savings for startups and enterprises. Specialize in transforming chaotic workflows into streamlined, + automation-driven processes that ensure client products exceed market standards. +

+ +
+ + View Projects + +
+
+
+ +
+
+
+
{'{'}
+
{'}'}
+
{'<>'}
+
{'/>'}
+
+
+
+
{'()'}
+
{'[]'}
+
{'=>'}
+
+
+
+
+ ); +} + +export async function getStaticProps() { + return { + props: { title: 'Home' }, + }; +} diff --git a/pages/projects.tsx b/pages/projects.tsx new file mode 100644 index 0000000..ad1b9bc --- /dev/null +++ b/pages/projects.tsx @@ -0,0 +1,31 @@ +import ProjectCard from '@/components/ProjectCard'; +import { projects } from '@/data/projects'; + +import styles from '@/styles/ProjectsPage.module.css'; + +const ProjectsPage = () => { + return ( +
+

Software Development and QA Projects

+

+ Here's a collection of my recent work. These projects showcase my + skills in web development, design, and problem-solving. +

+ +
+ {projects.map((project) => ( + + ))} +
+
+ + ); +}; + +export async function getStaticProps() { + return { + props: { title: 'Projects' }, + }; +} + +export default ProjectsPage; diff --git a/pages/settings.tsx b/pages/settings.tsx new file mode 100644 index 0000000..25b5d6c --- /dev/null +++ b/pages/settings.tsx @@ -0,0 +1,56 @@ +import ThemeInfo from '@/components/ThemeInfo'; + +import styles from '@/styles/SettingsPage.module.css'; + +const SettingsPage = () => { + return ( +
+
+ + + + + + +
+
+ ); +}; + +export async function getStaticProps() { + return { + props: { title: 'Settings' }, + }; +} + +export default SettingsPage; diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b96de7a7bdfaa1ccfa254295af28302bbdd85ec0 GIT binary patch literal 15406 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 Xt@)?OpSgFxJxBgm>0eJ^@+a`Wn5NX} literal 0 HcmV?d00001 diff --git a/public/logos/coolify.svg b/public/logos/coolify.svg new file mode 100644 index 0000000..cdf4d9b --- /dev/null +++ b/public/logos/coolify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/logos/css_icon.svg b/public/logos/css_icon.svg new file mode 100644 index 0000000..42235fe --- /dev/null +++ b/public/logos/css_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/logos/driwwwle.svg b/public/logos/driwwwle.svg new file mode 100644 index 0000000..a83dd91 --- /dev/null +++ b/public/logos/driwwwle.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/logos/html_icon.svg b/public/logos/html_icon.svg new file mode 100644 index 0000000..278123a --- /dev/null +++ b/public/logos/html_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/logos/js_icon.svg b/public/logos/js_icon.svg new file mode 100644 index 0000000..cf89d6e --- /dev/null +++ b/public/logos/js_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/logos/json_icon.svg b/public/logos/json_icon.svg new file mode 100644 index 0000000..01df761 --- /dev/null +++ b/public/logos/json_icon.svg @@ -0,0 +1 @@ + diff --git a/public/logos/markdown_icon.svg b/public/logos/markdown_icon.svg new file mode 100644 index 0000000..b9b2c5f --- /dev/null +++ b/public/logos/markdown_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/logos/react_icon.svg b/public/logos/react_icon.svg new file mode 100644 index 0000000..77c81ff --- /dev/null +++ b/public/logos/react_icon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/logos/subtrackt.svg b/public/logos/subtrackt.svg new file mode 100644 index 0000000..f699273 --- /dev/null +++ b/public/logos/subtrackt.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/logos/vercel.svg b/public/logos/vercel.svg new file mode 100644 index 0000000..fbf0e25 --- /dev/null +++ b/public/logos/vercel.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/public/logos/vsc.svg b/public/logos/vsc.svg new file mode 100644 index 0000000..0557c2c --- /dev/null +++ b/public/logos/vsc.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/logos/vscode_icon.svg b/public/logos/vscode_icon.svg new file mode 100644 index 0000000..adea41a --- /dev/null +++ b/public/logos/vscode_icon.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/themes/ayu.png b/public/themes/ayu.png new file mode 100644 index 0000000000000000000000000000000000000000..5e547421965018403881cd069e4c6fe4b687dd63 GIT binary patch literal 18997 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 RxFi4o002ovPDHLkV1lo3MUVgh literal 0 HcmV?d00001 diff --git a/public/themes/night-owl.png b/public/themes/night-owl.png new file mode 100644 index 0000000000000000000000000000000000000000..81686126dea8336964020ccba07cac5dcceed0ce GIT binary patch literal 10183 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 B--Q4G literal 0 HcmV?d00001 diff --git a/public/themes/nord.png b/public/themes/nord.png new file mode 100644 index 0000000000000000000000000000000000000000..5958a02a937743d454023cf98b50564c5b13c5f1 GIT binary patch literal 4329 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 XS96b-Z}S8?00000NkvXXu0mjfEvy_! literal 0 HcmV?d00001 diff --git a/rule.mdc b/rule.mdc new file mode 100644 index 0000000..5634a59 --- /dev/null +++ b/rule.mdc @@ -0,0 +1,6 @@ +--- +description: +globs: +alwaysApply: false +--- + \ No newline at end of file diff --git a/styles/AboutPage.module.css b/styles/AboutPage.module.css new file mode 100644 index 0000000..37f3ba5 --- /dev/null +++ b/styles/AboutPage.module.css @@ -0,0 +1,255 @@ +.container { + max-width: 900px; + height: 100%; + margin: 0 auto; + padding: 4rem 1.5rem; + color: var(--text-color); +} + +.content { + display: flex; + flex-direction: column; + gap: 2.5rem; +} + +.header { + text-align: center; + margin-bottom: 3rem; +} + +.title { + font-size: 2.75rem; + font-weight: 800; + margin-bottom: 0.5rem; + color: var(--accent-color); + letter-spacing: -0.03em; + line-height: 1.1; +} + +.subtitle { + font-size: 1.25rem; + color: var(--text-secondary); + margin-bottom: 0.75rem; + font-weight: 500; +} + +.tagline { + font-size: 1.1rem; + color: var(--text-secondary); + font-style: italic; +} + +.aboutContent { + display: flex; + flex-direction: column; + gap: 3rem; +} + +.section { + display: flex; + flex-direction: column; + gap: 1.5rem; +} + +.sectionTitle { + font-size: 1.4rem; + font-weight: 700; + color: var(--accent-color); + display: flex; + align-items: center; + gap: 0.75rem; +} + +.highlightCard { + background: var(--background-secondary); + padding: 2rem; + border-radius: 8px; + border: 1px solid var(--border-color); +} + +.grid { + display: grid; + gap: 1.5rem; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); +} + +.card { + background: var(--background-secondary); + padding: 1.5rem; + border-radius: 8px; + border: 1px solid var(--border-color); +} + +.card h3 { + font-size: 1.1rem; + margin-bottom: 1rem; + color: var(--accent-color); +} + +.list { + list-style: none; + padding-left: 0; + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.list li::before { + content: "▹"; + color: var(--accent-color); + margin-right: 0.75rem; +} + +.techGrid { + display: grid; + gap: 1.5rem; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); +} + +.techItem { + display: flex; + align-items: center; + gap: 1rem; + padding: 1.5rem; + background: var(--background-secondary); + border-radius: 8px; +} + +.techItem h3 { + margin: 0 0 0.25rem 0; + font-size: 1.1rem; +} + +.techItem p { + margin: 0; + color: var(--text-secondary); + font-size: 0.95rem; +} + +.caseStudy { + background: var(--background-secondary); + padding: 1.5rem; + border-radius: 8px; + border: 1px solid var(--border-color); +} + + + +.caseStudy div { + margin-bottom: 0.75rem; +} + +.caseStudy span { + font-weight: 600; + color: var(--accent-color); +} + +.credentials { + display: flex; + gap: 1rem; + flex-wrap: wrap; +} + +.badge { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.75rem 1.25rem; + background: var(--background-secondary); + border-radius: 50px; + font-size: 0.9rem; +} + + +.testimonial { + padding: 2rem; + background: var(--background-secondary); + border-left: 4px solid var(--accent-color); + border-radius: 8px; + margin: 1.5rem 0; +} + +.testimonial cite { + display: block; + margin-top: 1rem; + font-style: normal; + color: var(--text-secondary); +} + +.ctaSection { + text-align: center; + margin-top: 3rem; +} + +.ctaButton { + display: inline-flex; + align-items: center; + padding: 1rem 2rem; + background: var(--accent-color); + color: white; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + transition: transform 0.2s ease; +} + +.ctaButton:hover { + transform: translateY(-2px); +} + +.icon { + font-size: 1.2rem; + color: var(--accent-color); +} + +.techIcon { + font-size: 1.5rem; +} + +.badgeIcon { + font-size: 1.2rem; +} + + + +@media screen and (max-width: 768px) { + .container { + padding: 2rem 1rem; + } + + .title { + font-size: 2.25rem; + } + + .grid { + grid-template-columns: 1fr; + } + + .highlightCard { + padding: 1.5rem; + } + + .techItem { + padding: 1rem; + } + + .testimonial { + padding: 1.5rem; + } +} + + +@media screen and (max-width: 480px) { + .title { + font-size: 2rem; + } + + .subtitle { + font-size: 1.1rem; + } + + .badge { + width: 100%; + justify-content: center; + } +} diff --git a/styles/ArticleCard.module.css b/styles/ArticleCard.module.css new file mode 100644 index 0000000..54266e8 --- /dev/null +++ b/styles/ArticleCard.module.css @@ -0,0 +1,118 @@ +.container { + display: flex; + flex-direction: column; + background: var(--article-bg); + border-radius: 16px; + overflow: hidden; + text-decoration: none; + color: white; + transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); + height: 100%; + position: relative; + backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.05); +} + +.imageWrapper { + position: relative; + width: 100%; + height: 200px; + overflow: hidden; +} + +.image { + object-fit: cover; + transition: transform 0.5s ease; +} + +.container:hover .image { + transform: scale(1.08); +} + +.viewsBadge { + position: absolute; + top: 12px; + right: 12px; + background: rgba(0, 0, 0, 0.6); + color: white; + padding: 4px 10px; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + display: flex; + align-items: center; + gap: 5px; + backdrop-filter: blur(4px); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); + border: 1px solid rgba(255, 255, 255, 0.1); + z-index: 10; +} + +.content { + padding: 1.5rem; + flex: 1; + display: flex; + flex-direction: column; + gap: 1.25rem; +} + +.title { + color: var(--accent-color); + font-size: 1rem; + line-height: 1.4; + font-weight: 700; + margin: 0; +} + +.description { + font-size: 0.85rem; + line-height: 1.6; + opacity: 0.85; + margin: 0; + flex: 1; +} + +.footer { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; +} + +.stats { + display: flex; + font-size: 0.9rem; + color: rgba(255, 255, 255, 0.75); + gap: 1.25rem; +} + +.stat { + display: flex; + align-items: center; + font-weight: 500; + gap: 0.35rem; +} + +.icon { + color: var(--accent-color); + height: 18px; + width: 18px; +} + +.readMore { + font-size: 0.75rem; + font-weight: 600; + color: var(--accent-color); + padding: 6px 12px; + border: 1px solid currentColor; + border-radius: 20px; + transition: all 0.3s ease; + display: flex; + align-items: center; + justify-content: center; +} + +.container:hover .readMore { + background-color: var(--accent-color); + color: var(--article-bg); +} diff --git a/styles/ArticlesPage.module.css b/styles/ArticlesPage.module.css new file mode 100644 index 0000000..537cfe2 --- /dev/null +++ b/styles/ArticlesPage.module.css @@ -0,0 +1,65 @@ +.layout { + max-width: 1200px; + margin: 0 auto; + height: 100%; + width: 100%; +} + +.container { + margin-top: 1.5rem; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 1.5rem; +} + +.pageTitle { + font-size: 2rem; + font-weight: 700; + color: var(--accent-color); + margin-bottom: 1.5rem; + letter-spacing: -0.03em; + line-height: 1.2; +} + +.pageSubtitle { + font-size: 1rem; + font-weight: 400; + color: rgba(255, 255, 255, 0.7); + margin-bottom: 3rem; + max-width: 600px; + line-height: 1.6; +} + +.underline { + cursor: pointer; + color: white; + text-decoration: none; + background-image: linear-gradient( + 120deg, + var(--accent-color) 100%, + var(--accent-color) 100% + ); + background-repeat: no-repeat; + background-size: 100% 0.2em; + background-position: 0 88%; + transition: background-size 0.25s ease-in; +} + +.underline:hover { + background-size: 100% 88%; +} + +@media screen and (max-width: 900px) { + .container { + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + } + + .pageTitle { + font-size: 1.75rem; + } + + .pageSubtitle { + font-size: 1rem; + margin-bottom: 2rem; + } +} diff --git a/styles/Bottombar.module.css b/styles/Bottombar.module.css new file mode 100644 index 0000000..7d20b12 --- /dev/null +++ b/styles/Bottombar.module.css @@ -0,0 +1,48 @@ +.bottomBar { + background: var(--bottombar-bg); + height: 25px; + border-top: 1px solid var(--bottombar-border); + color: rgb(225, 228, 232); + padding: 0 0.5rem; + display: flex; + align-items: center; + justify-content: space-between; + font-size: 0.8rem; +} + +.bottomBar a { + color: white; + text-decoration: none; +} + +.icon { + margin-right: 4px; +} + +.container { + display: flex; + align-items: center; +} + +.section { + display: flex; + margin-right: 0.5rem; + height: 24px; + align-items: center; + padding: 0 0.2rem; + cursor: pointer; + font-family: 'Source Sans Pro', sans-serif; +} + +.section:hover { + background: var(--bottombar-hover-bg); +} + +@media screen and (max-width: 600px) { + .bottomBar { + font-size: 0.6rem; + } + .section { + margin-right: 0.5rem; + } +} diff --git a/styles/ContactCode.module.css b/styles/ContactCode.module.css new file mode 100644 index 0000000..e1fc911 --- /dev/null +++ b/styles/ContactCode.module.css @@ -0,0 +1,67 @@ +.code { + counter-reset: line; + font-size: 1.2rem; + line-height: 2rem; + background-color: var(--article-bg); + border-radius: 4px; + padding: 1.5rem; + border: 1px solid rgba(255, 255, 255, 0.1); + position: relative; + overflow: hidden; +} + +.code::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 4px; + background: var(--accent-color); +} + +.line { + position: relative; + padding-left: 2.5rem; +} + +.line::before { + content: counter(line); + counter-increment: line; + position: absolute; + left: 0; + top: 0; + margin-right: 1rem; + color: grey; + font-size: 0.9rem; + opacity: 0.8; +} + +.code a { + color: var(--accent-color); + text-decoration: none; +} + +.code a:hover { + text-decoration: underline; +} + +.className { + color: var(--accent-color); +} + +@media screen and (max-width: 600px) { + .code { + font-size: 0.85rem; + line-height: 1.5rem; + padding: 1.25rem 1rem; + } + + .line { + padding-left: 2rem; + } + + .line::before { + font-size: 0.7rem; + } +} diff --git a/styles/ContactPage.module.css b/styles/ContactPage.module.css new file mode 100644 index 0000000..4939d27 --- /dev/null +++ b/styles/ContactPage.module.css @@ -0,0 +1,83 @@ +.layout { + max-width: 900px; + margin: 0 auto; + height: 100%; +} + +.container { + display: flex; + justify-content: center; +} + +.container > * { + flex: 1; + max-width: 600px; +} + +.container h1 { + margin-bottom: 2rem; + font-size: 1.5rem; +} + +.flex { + display: flex; + gap: 1rem; +} + +.pageTitle { + font-size: 2rem; + font-weight: 700; + color: var(--accent-color); + margin-bottom: 1rem; + letter-spacing: -0.03em; + line-height: 1.2; + text-align: center; + padding-top: 3rem; +} + +.pageSubtitle { + font-size: 1rem; + font-weight: 400; + color: rgba(255, 255, 255, 0.7); + margin-bottom: 3rem; + max-width: 600px; + line-height: 1.6; + text-align: center; + margin-left: auto; + margin-right: auto; +} + +@media screen and (max-width: 1200px) { + .container { + display: block; + padding: 2rem 1rem; + } + + .container > div:first-child { + border-right: none; + margin-bottom: 2rem; + } +} + +@media screen and (max-width: 600px) { + .flex { + display: block; + } + + .form input { + font-size: 0.85rem; + } + + .container { + padding: 1.5rem 0.75rem; + } + + .pageTitle { + font-size: 1.75rem; + } + + .pageSubtitle { + font-size: 1rem; + margin-bottom: 2rem; + } +} diff --git a/styles/Explorer.module.css b/styles/Explorer.module.css new file mode 100644 index 0000000..7d1ca30 --- /dev/null +++ b/styles/Explorer.module.css @@ -0,0 +1,77 @@ +.explorer { + background: var(--explorer-bg); + width: 18vw; + color: rgb(225, 228, 232); + font-family: 'Source Sans Pro', sans-serif; + border-right: 1px solid var(--explorer-border); +} + +.title { + padding: 0.5rem 0.75rem; + font-weight: 300; + text-transform: uppercase; + font-size: 0.9rem; + letter-spacing: 1px; + margin-bottom: 0.75rem; +} + +.heading { + text-transform: uppercase; + font-weight: bold; + font-size: 0.8rem; + letter-spacing: 1px; + display: flex; + align-items: center; + cursor: pointer; + padding: 0 0.5rem; +} + +.checkbox { + position: absolute; + opacity: 0; + z-index: -1; +} + +.files { + padding: 0.5rem 0; + cursor: pointer; +} + +.file { + padding: 0.2rem 1rem; + display: flex; + align-items: center; + font-size: 0.875rem; + color: white; + text-decoration: none; +} + +.file p { + margin-left: 5px; +} + +.file:hover { + background: var(--explorer-hover-bg); +} + +.chevron { + transition: transform 0.2s; +} + +@media screen and (min-width: 2000px) { + .explorer { + width: 10vw; + } +} + +@media screen and (max-width: 900px) { + .explorer { + width: 20vw; + } +} + +@media screen and (max-width: 600px) { + .explorer { + display: none; + } +} diff --git a/styles/GithubPage.module.css b/styles/GithubPage.module.css new file mode 100644 index 0000000..32d0f20 --- /dev/null +++ b/styles/GithubPage.module.css @@ -0,0 +1,258 @@ +.layout { + max-width: 900px; + margin: 0 auto; + height: 100%; + width: 100%; +} + +.pageHeading { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding-top: 3rem; +} + +.githubPage { + width: 100%; + padding: 1rem 0; +} + +.pageTitle { + font-size: 2rem; + font-weight: 700; + color: var(--accent-color); + margin-bottom: 1.5rem; + letter-spacing: -0.03em; + line-height: 1.2; +} + +.pageSubtitle { + font-size: 1.1rem; + font-weight: 400; + color: rgba(255, 255, 255, 0.7); + margin-bottom: 3rem; + max-width: 600px; + line-height: 1.6; +} + +.profileSection { + background: var(--article-bg); + border-radius: 8px; + padding: 2rem; + margin-bottom: 2rem; + border: 1px solid rgba(255, 255, 255, 0.1); + width: 100%; + display: flex; + flex-direction: column; + align-items: center; +} + +.profileInfo { + display: flex; + flex-direction: column; + align-items: center; + gap: 1.5rem; + padding: 0 2rem; +} + +.avatar { + border-radius: 50%; + border: 3px solid var(--accent-color); + width: 100px; + height: 100px; +} + +.userInfo { + display: flex; + flex-direction: column; + align-items: center; + gap: 2rem; +} + +.username { + font-size: 1.5rem; + font-weight: 600; + color: var(--text-color); + margin: 0; + text-transform: uppercase; + letter-spacing: 0.05em; + position: relative; + display: inline-block; +} + +.username::before { + content: '@'; + font-size: 1.5rem; + color: var(--accent-color); + margin-right: 0.25rem; +} + +.username::after { + content: ''; + position: absolute; + left: 50%; + transform: translateX(-50%); + bottom: -4px; + width: 40px; + height: 2px; + background-color: var(--accent-color); +} + +.stats { + display: flex; + gap: 1.5rem; +} + +.statItem { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.9rem; + color: var(--text-secondary); +} + +.statIcon { + color: var(--accent-color); +} + +.profileLink { + display: flex; + align-items: center; + gap: 0.5rem; + width: fit-content; + font-size: 0.9rem; + color: var(--text-color); + text-decoration: none; + padding: 0.3rem 0.7rem; + border-radius: 4px; + background: rgba(255, 255, 255, 0.08); + transition: all 0.2s ease; +} + +.profileLink:hover { + background: rgba(255, 255, 255, 0.12); +} + +.sectionHeader { + display: flex; + align-items: center; + gap: 0.5rem; + margin: 1.5rem 0 1rem; +} + +.sectionIcon { + color: var(--accent-color); + font-size: 1.2rem; +} + +.sectionTitle { + font-size: 1.2rem; + font-weight: 600; + margin: 0; +} + +.reposContainer { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 1.5rem; + margin-bottom: 2rem; +} + +.contributions { + background: var(--article-bg); + border-radius: 8px; + padding: 1.5rem; + border: 1px solid rgba(255, 255, 255, 0.1); + width: 100%; + overflow-x: auto; +} + +.contributions article { + width: 100% !important; + min-width: 500px; +} + +.underline { + cursor: pointer; + color: white; + text-decoration: none; + background-image: linear-gradient( + 120deg, + var(--accent-color) 100%, + var(--accent-color) 100% + ); + background-repeat: no-repeat; + background-size: 100% 0.2em; + background-position: 0 88%; + transition: background-size 0.25s ease-in; +} + +.underline:hover { + background-size: 100% 88%; +} + +@media screen and (max-width: 768px) { + .profileInfo { + flex-direction: column; + align-items: center; + } + + .pageTitle { + font-size: 1.75rem; + } + + .pageSubtitle { + font-size: 1rem; + margin-bottom: 2rem; + } + + .userInfo { + width: 100%; + } + + .reposContainer { + grid-template-columns: 1fr; + } +} + +@media screen and (max-width: 1200px) { + .contributions { + display: none; + } +} + +@media screen and (max-width: 600px) { + .avatar { + width: 80px; + height: 80px; + } + + .username { + font-size: 1.4rem; + } + + .username::before { + font-size: 1.4rem; + } + + .sectionIcon { + font-size: 1.1rem; + padding: 0.4rem; + } + + .sectionTitle { + font-size: 1.2rem; + } + + .stats { + flex-direction: column; + gap: 0.75rem; + } +} + +@media screen and (min-width: 768px) and (max-width: 900px) { + .reposContainer { + grid-template-columns: repeat(2, 1fr); + } +} diff --git a/styles/HomePage.module.css b/styles/HomePage.module.css new file mode 100644 index 0000000..deff026 --- /dev/null +++ b/styles/HomePage.module.css @@ -0,0 +1,842 @@ +@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;700&family=Inter:wght@400;500;600;700&display=swap'); + +.container { + max-width: 1200px; + margin: 0 auto; + display: grid; + grid-template-columns: 1.2fr 1fr; + align-items: center; + gap: 4rem; + padding: 2rem 4rem; + height: 100%; +} + +.editorContent { + display: flex; + flex: 1; + overflow: auto; + position: relative; + padding: 1rem 0; + font-family: 'JetBrains Mono', monospace; + font-size: 0.9rem; + line-height: 1.5; +} + +.function { + color: #dcdcaa; +} + +.heroLayout { + position: relative; + font-family: 'Inter', sans-serif; + display: flex; + justify-content: center; + align-items: center; + height: 100%; + width: 100%; +} + +.codeSection { + position: relative; + z-index: 2; + width: 100%; + max-width: 100%; +} + +.codeContainer { + width: 100%; + max-width: 600px; + height: 550px; + background: var(--main-bg); + border-radius: 8px; + overflow: hidden; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25); + position: relative; + border: 1px solid var(--explorer-border); +} + +.editorContent { + display: flex; + height: 100%; + position: relative; + overflow: hidden; +} + +.lineNumbers { + display: flex; + flex-direction: column; + padding: 16px 0; + width: 50px; + background: var(--main-bg); + color: #636e83; + font-family: 'JetBrains Mono', monospace; + font-size: 13px; + user-select: none; + text-align: right; + z-index: 2; +} + +.lineNumber { + line-height: 1.5; + padding: 2px 10px 2px 0; + transition: color 0.3s ease; +} + +.activeLine { + color: var(--text-color); +} + +.codeEditor { + flex: 1; + padding: 16px 20px 16px 0; + font-family: 'JetBrains Mono', monospace; + font-size: 13px; + line-height: 1.5; + color: var(--text-color); + overflow-y: auto; + scrollbar-width: thin; + scrollbar-color: #444 var(--main-bg); + z-index: 2; +} + +.codeEditor::-webkit-scrollbar { + width: 6px; +} + +.codeEditor::-webkit-scrollbar-track { + background: var(--main-bg); +} + +.codeEditor::-webkit-scrollbar-thumb { + background-color: #444; + border-radius: 10px; +} + +.codeLine { + padding: 2px 0; + transition: all 0.3s ease; + position: relative; + white-space: pre; +} + +.highlightedLine { + background: rgba(255, 255, 255, 0.04); + border-radius: 3px; +} + +.highlightedLine::before { + content: ''; + display: block; + position: absolute; + left: -10px; + top: 0; + bottom: 0; + width: 3px; + background: var(--accent-color); + border-radius: 0 3px 3px 0; +} + +/* Syntax Highlighting */ +.function { + color: #c586c0; +} + +.variable { + color: #9cdcfe; +} + +.array-start, +.array-end { + color: #dcdcaa; +} + +.array-item { + color: #ce9178; +} + +.nested-function { + color: #c586c0; +} + +.return { + color: #dcdcaa; +} + +.function-call { + color: #4ec9b0; +} + +.close, +.close-function { + color: #808080; +} + +.return-object { + color: #9cdcfe; +} + +.object-method { + color: #dcdcaa; +} + +.comment { + color: #6a9955; +} + +.blank { + height: 20px; +} + +.overlayGlow { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: radial-gradient( + circle at 50% 50%, + rgba(var(--accent-color-rgb), 0.03) 0%, + rgba(0, 0, 0, 0) 70% + ); + pointer-events: none; + z-index: 1; +} + +/* Information Section */ +.infoSection { + display: flex; + flex-direction: column; + gap: 1.5rem; + position: relative; + z-index: 2; + padding: 3rem 0; +} + +.developerName { + font-size: 4rem; + font-weight: 800; + margin: 0; + color: var(--text-color); + letter-spacing: -0.02em; + line-height: 1.1; +} + +.accentText { + color: var(--accent-color); +} + +.developerRole { + font-size: 1.25rem; + color: rgba(255, 255, 255, 0.8); + margin-top: -0.5rem; +} + +.bio { + font-size: 1.1rem; + line-height: 1.6; + color: rgba(255, 255, 255, 0.7); + max-width: 35rem; + margin: 0; +} + +.skillTags { + display: flex; + flex-wrap: wrap; + gap: 10px; + margin-top: 0.5rem; +} + +.skillTag { + display: flex; + align-items: center; + gap: 6px; + padding: 5px 12px; + border-radius: 4px; + font-size: 0.85rem; + border: 1px solid; + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.skillTag:hover { + transform: translateY(-3px); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15); +} + +.actionLinks { + display: flex; + flex-wrap: wrap; + gap: 1.25rem; + margin-top: 1rem; + align-items: center; +} + +.primaryLink, +.secondaryLink, +.githubLink { + display: flex; + align-items: center; + gap: 8px; + text-decoration: none; + font-weight: 500; + transition: all 0.25s ease; +} + +.primaryLink { + background-color: var(--accent-color); + color: white; + padding: 0.75rem 1.5rem; + border-radius: 6px; + font-size: 1rem; + position: relative; + overflow: hidden; + isolation: isolate; +} + +.primaryLink::before { + content: ''; + position: absolute; + inset: 0; + background: linear-gradient( + 45deg, + transparent, + rgba(255, 255, 255, 0.2), + transparent + ); + transform: translateX(-100%); + transition: transform 0.5s ease; + z-index: -1; +} + +.primaryLink:hover { + transform: translateY(-3px); + box-shadow: 0 8px 20px rgba(var(--accent-color-rgb), 0.5); +} + +.primaryLink:hover::before { + transform: translateX(100%); +} + +/* Decorative Elements */ +.decorElements { + position: absolute; + inset: 0; + overflow: hidden; + pointer-events: none; + z-index: 0; +} + +.codeFlare { + position: absolute; + top: -150px; + right: 10%; + width: 500px; + height: 500px; + background: radial-gradient( + circle at center, + rgba(var(--accent-color-rgb), 0.08) 0%, + rgba(var(--accent-color-rgb), 0.02) 30%, + transparent 70% + ); + filter: blur(40px); + opacity: 0.8; + z-index: -1; + animation: pulse 8s infinite ease-in-out; +} + +.gridLines { + position: absolute; + inset: 0; + background-image: linear-gradient( + to right, + rgba(255, 255, 255, 0.02) 1px, + transparent 1px + ), + linear-gradient(to bottom, rgba(255, 255, 255, 0.02) 1px, transparent 1px); + background-size: 30px 30px; + z-index: -2; + opacity: 0.3; +} + +.codeBlock1, +.codeBlock2, +.codeBlock3, +.codeBlock4 { + position: absolute; + font-family: 'JetBrains Mono', monospace; + color: rgba(var(--accent-color-rgb), 0.08); + font-size: 180px; + font-weight: 700; + line-height: 1; + user-select: none; + filter: blur(2px); + animation: float 20s infinite ease-in-out; +} + +.codeBlock1 { + top: 10%; + left: 0; + opacity: 0.15; + transform: rotate(-10deg); + animation-delay: 0s; +} + +.codeBlock2 { + bottom: 10%; + right: 15%; + opacity: 0.1; + transform: rotate(10deg); + animation-delay: -7s; +} + +.codeBlock3 { + top: 30%; + right: 5%; + opacity: 0.05; + font-size: 150px; + animation-delay: -3s; +} + +.codeBlock4 { + bottom: 10%; + left: 20%; + opacity: 0.08; + font-size: 160px; + animation-delay: -10s; +} + +.orb1, +.orb2, +.orb3 { + position: absolute; + border-radius: 50%; + filter: blur(30px); + opacity: 0.2; + z-index: -1; +} + +.orb1 { + width: 300px; + height: 300px; + background: linear-gradient(135deg, var(--accent-color), transparent); + top: 20%; + left: 10%; + animation: orbFloat 15s infinite alternate ease-in-out; +} + +.orb2 { + width: 200px; + height: 200px; + background: linear-gradient(45deg, rgba(97, 218, 251, 0.5), transparent); + bottom: 10%; + right: 5%; + animation: orbFloat 20s infinite alternate-reverse ease-in-out; +} + +.orb3 { + width: 150px; + height: 150px; + background: radial-gradient( + circle at center, + rgba(174, 129, 255, 0.6), + transparent + ); + top: 70%; + left: 30%; + animation: orbFloat 12s infinite alternate ease-in-out; + animation-delay: -5s; +} + +.codeSymbol1, +.codeSymbol2, +.codeSymbol3 { + position: absolute; + font-family: 'JetBrains Mono', monospace; + color: rgba(255, 255, 255, 0.08); + font-size: 120px; + font-weight: 700; + filter: blur(1px); + user-select: none; + z-index: -1; +} + +.codeSymbol1 { + top: 55%; + right: 8%; + opacity: 0.12; + transform: rotate(10deg); + animation: floatSlow 25s infinite alternate ease-in-out; +} + +.codeSymbol2 { + bottom: 25%; + left: 7%; + opacity: 0.09; + transform: rotate(-5deg); + animation: floatSlow 22s infinite alternate-reverse ease-in-out; + animation-delay: -8s; +} + +.codeSymbol3 { + top: 15%; + left: 45%; + opacity: 0.07; + transform: rotate(5deg); + animation: floatSlow 18s infinite alternate ease-in-out; + animation-delay: -12s; +} + +.dotPattern { + position: absolute; + top: 10%; + right: 30%; + width: 150px; + height: 150px; + background-image: radial-gradient( + circle, + rgba(255, 255, 255, 0.1) 1px, + transparent 1px + ); + background-size: 15px 15px; + border-radius: 50%; + opacity: 0.3; + transform: rotate(-10deg); + animation: rotate 35s linear infinite; +} + +@keyframes pulse { + 0%, + 100% { + opacity: 0.8; + transform: scale(1); + } + 50% { + opacity: 0.6; + transform: scale(1.1); + } +} + +@keyframes float { + 0%, + 100% { + transform: translateY(0) rotate(0deg); + } + 25% { + transform: translateY(-20px) rotate(2deg); + } + 50% { + transform: translateY(0) rotate(0deg); + } + 75% { + transform: translateY(20px) rotate(-2deg); + } +} + +@keyframes orbFloat { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(20px, 20px); + } +} + +@keyframes floatSlow { + 0% { + transform: translate(0, 0) rotate(0deg); + } + 100% { + transform: translate(15px, 15px) rotate(5deg); + } +} + +@keyframes rotate { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@keyframes slidingGlow { + 0%, + 100% { + opacity: 0; + transform: translateX(-100%); + } + 50% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(100%); + } +} + +/* Responsive Styles */ +@media (max-width: 1200px) { + .container { + grid-template-columns: 1fr; + gap: 3rem; + padding: 2rem; + } + + .codeSection { + justify-self: center; + width: 100%; + } + + .codeContainer { + height: 450px; + max-width: 100%; + margin: 0 auto; + } + + .infoSection { + align-items: center; + text-align: center; + } + + .bio { + max-width: 100%; + } + + .actionLinks { + justify-content: center; + } +} + +@media (max-width: 768px) { + .container { + padding: 1.5rem; + gap: 2rem; + min-height: auto; + grid-template-columns: 1fr; + } + + .codeContainer { + height: 380px; + max-width: 100%; + } + + .editorContent { + font-size: 11px; + } + + .codeLine { + font-size: 11px; + } + + .developerName { + font-size: 3rem; + } + + .developerRole { + font-size: 1.1rem; + } + + .bio { + font-size: 1rem; + } + + .codeBlock1, + .codeBlock2, + .codeBlock3, + .codeBlock4 { + opacity: 0.05; + font-size: 120px; + } + + .codeSymbol1, + .codeSymbol2, + .codeSymbol3 { + font-size: 80px; + opacity: 0.05; + } + + .orb1, + .orb2, + .orb3 { + opacity: 0.1; + width: 70%; + height: 200px; + } + + .dotPattern { + opacity: 0.2; + } + + .infoSection { + text-align: center; + align-items: center; + margin-top: 1.5rem; + } +} + +@media (max-width: 480px) { + .container { + padding: 2rem 0; + gap: 1.5rem; + grid-template-columns: 1fr; + justify-content: center; + display: flex; + flex-direction: column; + align-items: center; + } + + /* Remove the background gradient from heroLayout */ + .heroLayout::before { + content: ''; + position: absolute; + inset: 0; + background: radial-gradient( + circle at 30% 70%, + rgba(var(--accent-color-rgb), 0.06) 0%, + transparent 65% + ); + z-index: -2; + } + + .decorElements::before { + content: ''; + position: absolute; + inset: 0; + background-image: linear-gradient( + to right, + rgba(255, 255, 255, 0.03) 1px, + transparent 1px + ), + linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px); + background-size: 20px 20px; + opacity: 0.3; + z-index: -1; + } + + .mobileAccent { + display: block; + position: absolute; + width: 180px; + height: 180px; + border-radius: 50%; + background: conic-gradient( + from 0deg, + transparent, + rgba(var(--accent-color-rgb), 0.1), + rgba(var(--accent-color-rgb), 0.2), + rgba(var(--accent-color-rgb), 0.1), + transparent + ); + top: 15%; + right: 15%; + filter: blur(30px); + opacity: 0.7; + animation: rotateMobileAccent 15s linear infinite; + z-index: -1; + } + + .mobileAccent::after { + content: ''; + position: absolute; + width: 120px; + height: 120px; + top: 80%; + left: -150px; + border-radius: 50%; + background: radial-gradient( + circle at center, + rgba(120, 200, 255, 0.2), + transparent 70% + ); + filter: blur(20px); + } + + .codeSection { + display: none; + } + + .infoSection { + text-align: center; + align-items: center; + position: relative; + max-width: 90%; + margin: 0 auto; + } + + .infoSection::before { + display: none; + } + + .developerName { + font-size: 2.8rem; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4); + line-height: 1.1; + } + + .accentText { + text-shadow: 0 0 15px rgba(var(--accent-color-rgb), 0.6); + } + + .developerRole { + font-size: 1rem; + font-weight: 500; + position: relative; + padding-bottom: 1.2rem; + margin-top: 0; + } + + .bio { + font-size: 0.9rem; + line-height: 1.6; + color: rgba(255, 255, 255, 0.9); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); + max-width: 320px; + margin-left: auto; + margin-right: auto; + } + + .primaryLink { + width: 100%; + max-width: 240px; + justify-content: center; + padding: 0.75rem 1rem; + font-size: 0.8rem; + font-weight: 600; + letter-spacing: 0.5px; + border-radius: 8px; + box-shadow: 0 4px 20px rgba(var(--accent-color-rgb), 0.4); + } + + .primaryLink:hover { + transform: translateY(-3px); + box-shadow: 0 8px 20px rgba(var(--accent-color-rgb), 0.5); + } + + /* Hide decorative elements on mobile */ + .codeBlock1, + .codeBlock2, + .codeBlock3, + .codeBlock4, + .codeSymbol1, + .codeSymbol2, + .codeSymbol3, + .dotPattern, + .orb1, + .orb2, + .orb3 { + display: none; + } + + @keyframes rotateMobileAccent { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } + } +} + +.mobileAccent { + display: none; +} diff --git a/styles/Layout.module.css b/styles/Layout.module.css new file mode 100644 index 0000000..9e246fd --- /dev/null +++ b/styles/Layout.module.css @@ -0,0 +1,45 @@ +@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600&display=swap'); + +.main { + display: flex; + background: var(--main-bg); + overflow-x: hidden; +} + +.content { + padding: 2rem; + color: var(--text-color); + font-family: 'JetBrains Mono', monospace; + flex: 1; + height: 85vh; + overflow-y: auto; + scroll-behavior: smooth; + overflow-x: hidden; + display: flex; + align-items: center; +} + +.content { + scrollbar-width: 10px; + scrollbar-color: var(--accent-color); +} + +.content::-webkit-scrollbar { + width: 15px; +} + +.content::-webkit-scrollbar-track { + background: var(--scrollbar-track-bg); + border-left: 1px solid #1e1f29; +} + +.content::-webkit-scrollbar-thumb { + background: var(--scrollbar-thumb-bg); + border-left: 1px solid #1e1f29; +} + +@media screen and (max-width: 600px) { + .content { + padding: 2rem 1rem; + } +} diff --git a/styles/ProjectCard.module.css b/styles/ProjectCard.module.css new file mode 100644 index 0000000..3c8a735 --- /dev/null +++ b/styles/ProjectCard.module.css @@ -0,0 +1,184 @@ +.card { + background: var(--article-bg); + display: flex; + flex-direction: column; + border-radius: 12px; + cursor: pointer; + overflow: hidden; + position: relative; + height: 250px; + border: 1px solid rgba(255, 255, 255, 0.08); + transition: all 0.25s ease; + text-decoration: none; + color: inherit; +} + +.card:hover { + border-color: var(--accent-color); +} + +.background { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + z-index: 0; + opacity: 0.15; + transition: opacity 0.3s ease; +} + +.card:hover .background { + opacity: 0.2; +} + +.content { + padding: 1.75rem; + display: flex; + flex-direction: column; + justify-content: space-between; + height: calc(100% - 60px); +} + +.logoWrapper { + background: rgba(255, 255, 255, 0.05); + width: 42px; + height: 42px; + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + border: 1px solid rgba(255, 255, 255, 0.1); + margin-bottom: 1.25rem; +} + +.logo { + width: 24px; + height: 24px; + object-fit: contain; +} + +.title { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + font-size: 1.35rem; + font-weight: 600; + margin-bottom: 0.75rem; + color: var(--accent-color); +} + +.description { + font-size: 0.9rem; + line-height: 1.5; + color: rgba(255, 255, 255, 0.8); + margin-bottom: 1rem; + + +} + +.link { + display: inline-flex; + align-items: center; + gap: 0.5rem; + background: transparent; + border: 1px solid var(--accent-color); + color: var(--accent-color); + padding: 0.5rem 0.9rem; + border-radius: 6px; + font-size: 0.8rem; + font-weight: 500; + text-decoration: none; + transition: all 0.2s ease; + width: fit-content; +} + +.link:hover { + background: var(--accent-color); + color: var(--bg-color); +} + +.tags { + display: flex; + flex-wrap: wrap; + margin: 0.5rem 0 1rem; +} + +.tags span { + margin: 0.5rem 0.5rem 0 0; + padding: 0.2rem 0.5rem; + border-radius: 20px; + font-size: 0.75rem; + transition: all 0.2s; +} + +.cta { + display: flex; + gap: 1rem; +} + +.underline { + padding: 0.2rem 0; + font-size: 0.9rem; + letter-spacing: 0; + cursor: pointer; + color: white; + text-decoration: none; + background-image: linear-gradient( + 120deg, + var(--accent-color) 100%, + var(--accent-color) 100% + ); + background-repeat: no-repeat; + background-size: 100% 0.2em; + background-position: 0 88%; + transition: background-size 0.25s ease-in; +} + +.underline:hover { + background-size: 100% 88%; +} + +.footer { + display: flex; + gap: 0.75rem; + flex-wrap: wrap; + padding: 0 1.75rem 1.25rem; + margin-top: auto; +} + +/* Badge styling */ +.date, .status, .skills { + background: rgba(255, 255, 255, 0.08); + padding: 0.3rem 0.75rem; + border-radius: 20px; + font-size: 0.75rem; + white-space: nowrap; + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.status[data-status="active"] { + background: rgba(40, 167, 69, 0.15); + color: #28a745; +} + +.status[data-status="pending"] { + background: rgba(255, 193, 7, 0.15); + color: #ffc107; +} + +.status[data-status="archived"] { + background: rgba(108, 117, 125, 0.15); + color: #6c757d; +} + +.type { + font-size: 0.8rem; + color: rgba(255, 255, 255, 0.7); + margin-left: auto; + padding: 0.3rem 0.7rem; + border-radius: 6px; + background: rgba(255, 255, 255, 0.05); +} \ No newline at end of file diff --git a/styles/ProjectsPage.module.css b/styles/ProjectsPage.module.css new file mode 100644 index 0000000..e00c15e --- /dev/null +++ b/styles/ProjectsPage.module.css @@ -0,0 +1,47 @@ +.layout { + max-width: 1200px; + width: 100%; + margin: 0 auto; + height: 100%; +} + +.container { + margin: 2rem 0; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 1.5rem; +} + +.pageTitle { + font-size: 2rem; + font-weight: 700; + color: var(--accent-color); + margin-bottom: 1rem; + letter-spacing: -0.03em; + line-height: 1.2; +} + +.pageSubtitle { + font-size: 1rem; + font-weight: 400; + color: rgba(255, 255, 255, 0.7); + margin-bottom: 3rem; + max-width: 600px; + line-height: 1.6; +} + +@media screen and (max-width: 768px) { + .container { + grid-template-columns: 1fr; + gap: 1.5rem; + } + + .pageTitle { + font-size: 1.75rem; + } + + .pageSubtitle { + font-size: 1rem; + margin-bottom: 2rem; + } +} diff --git a/styles/RepoCard.module.css b/styles/RepoCard.module.css new file mode 100644 index 0000000..15b0389 --- /dev/null +++ b/styles/RepoCard.module.css @@ -0,0 +1,133 @@ +.card { + display: flex; + flex-direction: column; + justify-content: space-between; + background: var(--article-bg); + border-radius: 8px; + padding: 1.25rem; + height: 100%; + border: 1px solid rgba(255, 255, 255, 0.1); + position: relative; + overflow: hidden; +} + +.cardHeader { + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-bottom: 0.75rem; + flex-wrap: wrap; + row-gap: 0.75rem; + column-gap: 0.5rem; +} + +.language { + display: flex; + align-items: center; + gap: 0.3rem; + font-size: 0.8rem; + color: rgba(255, 255, 255, 0.7); + padding: 0.2rem 0.5rem; + border-radius: 4px; + background-color: rgba(255, 255, 255, 0.05); + white-space: nowrap; +} + +.languageIcon { + color: var(--accent-color); + font-size: 0.9rem; +} + +.card p { + margin: 0.75rem 0; + color: var(--text-color); + font-size: 0.92rem; + line-height: 1.5; + flex-grow: 1; + overflow-wrap: break-word; + word-wrap: break-word; +} + +.title { + color: var(--accent-color); + margin: 0; + font-size: 1.1rem; + font-weight: 600; + position: relative; + display: inline-block; +} + +.title::after { + content: ''; + position: absolute; + left: 0; + bottom: -3px; + width: 100%; + height: 1px; + background-color: var(--accent-color); + opacity: 0.5; +} + +.stats { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: auto; + padding-top: 1rem; + border-top: 1px solid rgba(255, 255, 255, 0.05); + flex-wrap: wrap; + gap: 0.5rem; +} + +.stats > div { + display: flex; + align-items: center; +} + +.stats > div:first-child { + display: flex; + gap: 1rem; + flex-wrap: wrap; +} + +.stats > div:first-child > div { + display: flex; + align-items: center; + font-size: 0.85rem; + color: rgba(255, 255, 255, 0.7); + white-space: nowrap; +} + +.stats > div:nth-child(2) { + display: flex; + gap: 1rem; +} + +.stats > div:nth-child(2) a { + opacity: 0.7; + transition: opacity 0.1s ease; +} + +.stats > div:nth-child(2) a:hover { + opacity: 1; +} + +.icon { + color: var(--accent-color); + margin-right: 0.3rem; + font-size: 1rem; +} + +@media screen and (max-width: 400px) { + .card { + padding: 1rem; + } + + .stats > div:first-child { + gap: 0.75rem; + } + + .stats > div:nth-child(2) { + gap: 0.75rem; + } +} diff --git a/styles/SettingsPage.module.css b/styles/SettingsPage.module.css new file mode 100644 index 0000000..5ef7cd7 --- /dev/null +++ b/styles/SettingsPage.module.css @@ -0,0 +1,33 @@ +.layout { + height: 100%; + width: 100%; + max-width: 1200px; + margin: 0 auto; +} + +.container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); + gap: 1rem; + width: 100%; + border-radius: 8px; + padding: 1rem; +} + +@media screen and (max-width: 768px) { + .container { + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + gap: 0.875rem; + } +} + +@media screen and (max-width: 480px) { + .container { + grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); + gap: 0.75rem; + } + + .settingsContainer { + padding: 0.5rem; + } +} diff --git a/styles/Sidebar.module.css b/styles/Sidebar.module.css new file mode 100644 index 0000000..f0a72fe --- /dev/null +++ b/styles/Sidebar.module.css @@ -0,0 +1,64 @@ +.sidebar { + background: var(--sidebar-bg); + display: flex; + flex-direction: column; + justify-content: space-between; + width: 4.5vw; + min-width: 40px; + height: calc(100vh - 30px - 25px); +} + +.iconContainer { + cursor: pointer; + width: 100%; +} + +.iconContainer:hover { + background: var(--sidebar-hover-bg); +} + +.active { + border-left: 2px solid var(--accent-color); +} + +.icon { + height: 48px; + width: 48px; + padding: 0.65rem 0; + display: block; + margin: 0 auto; +} + +@media screen and (min-width: 2000px) { + .sidebar { + width: 2.5vw; + } +} + +@media screen and (max-width: 1100px) { + .sidebar { + width: 6vw; + } +} + +@media screen and (max-width: 900px) { + .sidebar { + width: 8vw; + } + .icon { + height: 48px; + width: 48px; + padding: 0.6rem; + } +} + +@media screen and (max-width: 600px) { + .sidebar { + width: 10vw; + } + .icon { + height: 40px; + width: 40px; + padding: 0.6rem; + } +} diff --git a/styles/Tab.module.css b/styles/Tab.module.css new file mode 100644 index 0000000..9cb8392 --- /dev/null +++ b/styles/Tab.module.css @@ -0,0 +1,21 @@ +.tab { + padding: 0.5rem 1.25rem; + background: var(--tab-bg); + color: #ececec; + display: flex; + align-items: center; + border: 1px solid var(--tab-border); + font-family: 'Source Sans Pro', sans-serif; + font-size: 0.9rem; + cursor: pointer; +} + +.tab p { + margin-left: 5px; +} + +.active { + border-top: 1px solid var(--accent-color); + background: var(--tab-active-bg); + border-bottom: none; +} diff --git a/styles/Tabsbar.module.css b/styles/Tabsbar.module.css new file mode 100644 index 0000000..510c6df --- /dev/null +++ b/styles/Tabsbar.module.css @@ -0,0 +1,18 @@ +.tabs { + display: flex; + /* flex-wrap: wrap; */ + background: var(--tabs-bg); + overflow-x: auto; +} + +@media screen and (max-width: 900px) { + .tabs { + width: 78vw; + } +} + +@media screen and (max-width: 600px) { + .tabs { + width: 89.5vw; + } +} diff --git a/styles/ThemeInfo.module.css b/styles/ThemeInfo.module.css new file mode 100644 index 0000000..22621e6 --- /dev/null +++ b/styles/ThemeInfo.module.css @@ -0,0 +1,74 @@ +.container { + display: flex; + flex-direction: column; + align-items: center; + margin: 0.5rem 0; + text-align: center; + padding: 2rem; + background-color: var(--explorer-bg); + border-radius: 4px; + border: 1px solid transparent; + position: relative; +} + +.imageWrapper { + width: 80px; + height: 80px; + display: flex; + align-items: center; + justify-content: center; + padding: 0.25rem; + margin-bottom: 0.5rem; +} + +.themeImage { + object-fit: contain; +} + +.info { + margin-top: 0.75rem; + display: flex; + flex-direction: column; + justify-content: space-between; + width: 100%; +} + +.info h3 { + font-size: 0.95rem; + margin: 0 0 0.15rem 0; + color: var(--text-color); +} + +.info h5 { + font-size: 0.75rem; + margin: 0 0 0.75rem 0; + color: rgba(255, 255, 255, 0.6); + font-weight: 400; +} + +.info button { + margin-top: 0.5rem; + border: none; + background: var(--button-bg); + color: var(--button-text); + padding: 0.35rem 0.5rem; + font-weight: 600; + cursor: pointer; + border-radius: 2px; + width: 100%; + font-size: 0.8rem; +} + +.info button:focus { + outline: 1px solid var(--accent-color); +} + +@media screen and (max-width: 768px) { + .container { + padding: 0.75rem; + } + + .info h3 { + font-size: 0.9rem; + } +} diff --git a/styles/Titlebar.module.css b/styles/Titlebar.module.css new file mode 100644 index 0000000..af67d3f --- /dev/null +++ b/styles/Titlebar.module.css @@ -0,0 +1,66 @@ +.titlebar { + background: var(--titlebar-bg); + height: 30px; + padding: 0 0.5rem; + display: flex; + align-items: center; + justify-content: center; + color: #fff; + font-family: 'Source Sans Pro', sans-serif; + font-size: 0.85rem; + border-bottom: 1px solid #191d20; +} + +.items { + flex: 1; + display: flex; + margin-right: auto; + margin-left: 0.5rem; +} + +.title { + flex: 1; + text-align: center; +} + +.items > * { + padding: 0 0.5rem; + cursor: pointer; +} + +.windowButtons { + flex: 1; + display: flex; + align-items: center; + margin-left: auto; +} + +.windowButtons * { + margin-left: 0.5rem; + height: 13px; + width: 13px; + border-radius: 50%; + cursor: pointer; +} + +.minimize { + background: #f1fa8c; + margin-left: auto; +} + +.maximize { + background: #50fa7b; +} + +.close { + background: #ff5555; +} + +@media screen and (max-width: 900px) { + .items p { + display: none; + } + .title { + flex: 4; + } +} diff --git a/styles/globals.css b/styles/globals.css new file mode 100644 index 0000000..9205b1a --- /dev/null +++ b/styles/globals.css @@ -0,0 +1,25 @@ +@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400&display=swap'); + +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +a { + text-decoration: none; +} + +html, +body { + height: 100%; + scroll-behavior: smooth; +} + +#__next { + min-height: 100vh; + display: flex; + flex-direction: column; +} \ No newline at end of file diff --git a/styles/themes.css b/styles/themes.css new file mode 100644 index 0000000..2e7c7cc --- /dev/null +++ b/styles/themes.css @@ -0,0 +1,155 @@ +/* GitHub Dark */ +:root { + --main-bg: #24292e; + --bg-text: rgba(56, 58, 61, 0.35); + --text-color: #efefef; + --accent-color: #f9826c; + --titlebar-bg: #1f2428; + --sidebar-bg: #24292e; + --sidebar-hover-bg: #1f2428; + --explorer-bg: #1f2428; + --explorer-hover-bg: #24292e; + --explorer-border: #161a1d; + --tabs-bg: #1f2428; + --tab-bg: #1f2428; + --tab-active-bg: #24292e; + --tab-border: #24292e; + --bottombar-bg: #24292e; + --bottombar-border: #1b1f23; + --button-bg: #176f2c; + --button-text: #dcffe4; + --bottombar-hover-bg: #4f4f52; + --scrollbar-track-bg: #24292e; + --scrollbar-thumb-bg: #333536; + --article-bg: #1f2428; +} + +/* Dracula */ +[data-theme='dracula'] { + --main-bg: #282a36; + --bg-text: #313340; + --text-color: #efefef; + --accent-color: #bd93f9; + --titlebar-bg: #1e1f29; + --sidebar-bg: #343746; + --sidebar-hover-bg: #3c3d51; + --explorer-bg: #21222c; + --explorer-hover-bg: #313241; + --explorer-border: #161a1d; + --tabs-bg: #191a21; + --tab-bg: #21222c; + --tab-active-bg: #282a36; + --tab-border: #191a21; + --bottombar-bg: #191a21; + --bottombar-border: #191a21; + --button-bg: #44475a; + --button-text: #f8f8f2; + --bottombar-hover-bg: #4f4f52; + --scrollbar-track-bg: #282a36; + --scrollbar-thumb-bg: #454647; + --article-bg: #21222c; +} + +/* Ayu Dark */ +[data-theme='ayu-dark'] { + --main-bg: #0a0e14; + --bg-text: #101620; + --text-color: #efefef; + --accent-color: #e6b450; + --titlebar-bg: #1f2428; + --sidebar-bg: #0a0e14; + --sidebar-hover-bg: #00010a; + --explorer-bg: #0a0e14; + --explorer-hover-bg: #00010a; + --explorer-border: transparent; + --tabs-bg: #0a0e14; + --tab-bg: #0a0e14; + --tab-active-bg: #0a0e14; + --tab-border: transparent; + --bottombar-bg: #0a0e14; + --bottombar-border: transparent; + --button-bg: #e6b450; + --button-text: #0a0e14; + --bottombar-hover-bg: #4f4f52; + --scrollbar-track-bg: #0a0e14; + --scrollbar-thumb-bg: #454647; + --article-bg: #10121a; +} + +/* Ayu Mirage */ +[data-theme='ayu-mirage'] { + --main-bg: #1f2430; + --bg-text: #21242b; + --text-color: #efefef; + --accent-color: #e6b450; + --titlebar-bg: #1f2428; + --sidebar-bg: #1f2430; + --sidebar-hover-bg: #191e2a; + --explorer-bg: #1f2430; + --explorer-hover-bg: #191e2a; + --explorer-border: transparent; + --tabs-bg: #1f2430; + --tab-bg: #1f2430; + --tab-active-bg: #1f2430; + --tab-border: transparent; + --bottombar-bg: #1f2430; + --bottombar-border: transparent; + --button-bg: #e6b450; + --button-text: #1f2430; + --bottombar-hover-bg: #4f4f52; + --scrollbar-track-bg: #1f2430; + --scrollbar-thumb-bg: #454647; + --article-bg: #252e3d; +} + +/* Nord */ +[data-theme='nord'] { + --main-bg: #2e3440; + --bg-text: #3b414d; + --text-color: #efefef; + --accent-color: #88c0d0; + --titlebar-bg: #1f2428; + --sidebar-bg: #2e3440; + --sidebar-hover-bg: #434c5e; + --explorer-bg: #2e3440; + --explorer-hover-bg: #434c5e; + --explorer-border: rgba(136, 192, 208, 0.2); + --tabs-bg: #2e3440; + --tab-bg: #2e3440; + --tab-active-bg: #3b4252; + --tab-border: transparent; + --bottombar-bg: #3b4252; + --bottombar-border: transparent; + --button-bg: #434c5e; + --button-text: #d8dee9; + --bottombar-hover-bg: #4f4f52; + --scrollbar-track-bg: #2e3440; + --scrollbar-thumb-bg: #454647; + --article-bg: #363f50; +} + +/* Night Owl */ +[data-theme='night-owl'] { + --main-bg: #011627; + --bg-text: #031d33; + --text-color: #89a4bb; + --accent-color: rgb(95, 126, 151); + --titlebar-bg: #011627; + --sidebar-bg: #011627; + --sidebar-hover-bg: #0e293f; + --explorer-bg: #011627; + --explorer-hover-bg: #0e293f; + --explorer-border: transparent; + --tabs-bg: #011627; + --tab-bg: #01111d; + --tab-active-bg: #0b2942; + --tab-border: rgb(39, 43, 59); + --bottombar-bg: #011627; + --bottombar-border: #262a39; + --button-bg: rgb(95, 126, 151); + --button-text: #fff; + --bottombar-hover-bg: #1b222f; + --scrollbar-track-bg: #011627; + --scrollbar-thumb-bg: #043254; + --article-bg: #031d33; +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..ead02f9 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,44 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": [ + "./*" + ] + }, + "typeRoots": [ + "./types", + "./node_modules/@types" + ], + "allowJs": true + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/types/index.ts b/types/index.ts new file mode 100644 index 0000000..96e7974 --- /dev/null +++ b/types/index.ts @@ -0,0 +1,41 @@ +export interface Article { + id: string; + title: string; + description: string; + cover_image: string; + url: string; + page_views_count: number; + public_reactions_count: number; + comments_count: number; +} + +export interface Project { + date: String; + status: String; + skills: String; + type: string; + title: string; + description: string; + logo: string; + link: string; + slug: string; +} + +export interface Repo { + id: number; + name: string; + description: string; + language: string; + watchers: number; + forks: number; + stargazers_count: number; + html_url: string; + homepage: string; +} + +export interface User { + login: string; + avatar_url: string; + public_repos: number; + followers: number; +}