initial commit with new name
Seto Elkahfi committed
Nov 24, 2024 at 21:38 UTC
4aaff318687511972c2f91445e38b77274fa563e
39 files changed
+4184
.eslintrc.json
new
+3
@@ -0,0 +1,3 @@
1
+{
2
+ "extends": "next/core-web-vitals"
3
+}
.gitignore
new
+32
@@ -0,0 +1,32 @@
1
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2
+
3
+# dependencies
4
+/node_modules
5
+/.pnp
6
+.pnp.js
7
+
8
+# testing
9
+/coverage
10
+
11
+# next.js
12
+/.next/
13
+/out/
14
+
15
+# production
16
+/build
17
+
18
+# misc
19
+.DS_Store
20
+*.pem
21
+
22
+# debug
23
+npm-debug.log*
24
+yarn-debug.log*
25
+yarn-error.log*
26
+.pnpm-debug.log*
27
+
28
+# local env files
29
+.env*.local
30
+
31
+# vercel
32
+.vercel
.npmrc
new
+1
@@ -0,0 +1 @@
1
+registry=https://registry.npmjs.org
.nvmrc
new
+1
@@ -0,0 +1 @@
1
+v21.7.3
README.md
new
+34
@@ -0,0 +1,34 @@
1
+This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
2
+
3
+## Getting Started
4
+
5
+First, run the development server:
6
+
7
+```bash
8
+yarn dev
9
+```
10
+
11
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
12
+
13
+You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
14
+
15
+[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
16
+
17
+The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
18
+
19
+This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
20
+
21
+## Learn More
22
+
23
+To learn more about Next.js, take a look at the following resources:
24
+
25
+- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
26
+- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
27
+
28
+You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
29
+
30
+## Deploy on smbCloud
31
+
32
+The easiest way to deploy your Next.js app is to use the [smbCloud Platform](https://console.smbcloud.xyz/new?utm_medium=github&filter=next.js&utm_source=create-next-app&utm_campaign=smbcloud-web-readme).
33
+
34
+Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
jsconfig.json
new
+8
@@ -0,0 +1,8 @@
1
+{
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "paths": {
5
+ "@/*": ["./*"]
6
+ }
7
+ }
8
+}
lib/axios.js
new
+7
@@ -0,0 +1,7 @@
1
+import axios from "axios";
2
+
3
+const baseURL = process.env.NEXT_PUBLIC_BASE_URL_API || "http://localhost:8088/v1/";
4
+
5
+export default axios.create({
6
+ baseURL: baseURL
7
+});
\ No newline at end of file
next-env.d.ts
new
+5
@@ -0,0 +1,5 @@
1
+/// <reference types="next" />
2
+/// <reference types="next/image-types/global" />
3
+
4
+// NOTE: This file should not be edited
5
+// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information.
next.config.js
new
+9
@@ -0,0 +1,9 @@
1
+/** @type {import('next').NextConfig} */
2
+const nextConfig = {
3
+ reactStrictMode: true,
4
+ images: {
5
+ domains: ['avatars.githubusercontent.com'],
6
+ },
7
+}
8
+
9
+module.exports = nextConfig
package.json
new
+25
@@ -0,0 +1,25 @@
1
+{
2
+ "name": "smbcloud-web",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "dev": "next dev",
7
+ "build": "next build",
8
+ "start": "next start",
9
+ "lint": "next lint"
10
+ },
11
+ "dependencies": {
12
+ "@vercel/analytics": "^0.1.11",
13
+ "axios": "^1.0.0",
14
+ "eslint": "^8.32.0",
15
+ "eslint-config-next": "^14.0.0",
16
+ "next": "^14.0.0",
17
+ "react": "18.2.0",
18
+ "react-dom": "18.2.0",
19
+ "react-icons": "^4.10.1"
20
+ },
21
+ "devDependencies": {
22
+ "@types/node": "22.7.6",
23
+ "@types/react": "18.3.11"
24
+ }
25
+}
pages/_app.tsx
new
+11
@@ -0,0 +1,11 @@
1
+import '@/styles/globals.css'
2
+import { Analytics } from '@vercel/analytics/react'
3
+
4
+export default function App({ Component, pageProps }) {
5
+ return (
6
+ <>
7
+ <Component {...pageProps} />
8
+ <Analytics />
9
+ </>
10
+ )
11
+}
pages/_document.tsx
new
+13
@@ -0,0 +1,13 @@
1
+import { Html, Head, Main, NextScript } from 'next/document'
2
+
3
+export default function Document() {
4
+ return (
5
+ <Html lang="en">
6
+ <Head />
7
+ <body>
8
+ <Main />
9
+ <NextScript />
10
+ </body>
11
+ </Html>
12
+ )
13
+}
pages/about.tsx
new
+29
@@ -0,0 +1,29 @@
1
+import { Inter } from "next/font/google"
2
+import sharedStyles from '@/styles/Shared.module.css'
3
+import SharedTopBar from './shared/topbar'
4
+import SharedHead from './shared/head'
5
+import SharedFooter from './shared/footer'
6
+const inter = Inter({ subsets: ['latin'] })
7
+
8
+export default function About() {
9
+ return (
10
+ <>
11
+ <SharedHead
12
+ title="Login with your GitHub account."
13
+ description="Learn smbCloud, a new cloud platform. For your explosive ideas: a controlled demolition."
14
+ />
15
+ <main className={sharedStyles.main}>
16
+ <SharedTopBar />
17
+ <div>
18
+ <h1 className={inter.className}>
19
+ About
20
+ </h1>
21
+ <p className={inter.className}>
22
+ smbCloud is a new cloud platform. For your explosive ideas: a controlled demolition.
23
+ </p>
24
+ </div>
25
+ <SharedFooter />
26
+ </main>
27
+ </>
28
+ )
29
+}
\ No newline at end of file
pages/api/hello.ts
new
+5
@@ -0,0 +1,5 @@
1
+// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
2
+
3
+export default function handler(req, res) {
4
+ res.status(200).json({ name: 'John Doe' })
5
+}
pages/authorize.tsx
new
+123
@@ -0,0 +1,123 @@
1
+import { Inter } from "next/font/google"
2
+import sharedStyles from '@/styles/Shared.module.css'
3
+import authorizeStyles from '@/styles/Authorize.module.css'
4
+import SharedTopBar from './shared/topbar'
5
+import SharedHead from './shared/head'
6
+import SharedFooter from './shared/footer'
7
+import axios from "../lib/axios"
8
+import Link from "next/link"
9
+import Image from "next/image"
10
+import Router from "next/router"
11
+const inter = Inter({ subsets: ['latin'] })
12
+
13
+export const getServerSideProps = async (context) => {
14
+ const code = context.query.code
15
+ const res = await axios.post(`authorize`, { code })
16
+ const obj = res.data
17
+ return {
18
+ props: obj
19
+ }
20
+}
21
+
22
+
23
+export default function Authorize({
24
+ status, message, user_info, user_email
25
+}) {
26
+
27
+ // render singup form if we have success response
28
+ // render error message if we have error response
29
+ if (status === 200) {
30
+ return <SignupForm
31
+ status={status}
32
+ message={message}
33
+ user_email={user_email}
34
+ user_info={user_info}
35
+ />
36
+ }
37
+
38
+ return (
39
+ <>
40
+ <SharedHead
41
+ title="Something wrong when login with your GitHub account."
42
+ description="Something wrong when login with your GitHub account.."
43
+ />
44
+ <main className={sharedStyles.main}>
45
+ <SharedTopBar />
46
+ <h1 className={inter.className}>Error</h1>
47
+ <div className={inter.className}>
48
+ <span >{message} Please retry: </span>
49
+ <Link href="/login" >
50
+ <code className={sharedStyles.code}>
51
+ $ smb login retry
52
+ </code>
53
+ </Link>
54
+ </div>
55
+ <SharedFooter />
56
+ </main>
57
+ </>
58
+ )
59
+}
60
+
61
+function SignupForm(props) {
62
+
63
+ const createAccount = async (user_info, user_email) => {
64
+ console.log(user_info)
65
+ Router.push({
66
+ pathname: '/signup',
67
+ query: {
68
+ user_info: JSON.stringify(user_info),
69
+ user_email: JSON.stringify(user_email)
70
+ }
71
+ }, '/signup')
72
+ }
73
+
74
+ return (
75
+ <>
76
+ <SharedHead
77
+ title="Link your GitHub account to smbCloud."
78
+ description="Link your GitHub account to smbCloud, the full-suite front-end developer platforms."
79
+ />
80
+ <main className={sharedStyles.main}>
81
+ <SharedTopBar />
82
+ <h1 className={inter.className}>Signup</h1>
83
+ <p className={inter.className}>
84
+ Link your GitHub account to smbCloud, the full-suite front-end developer platforms.
85
+ You will need to confirm your email address {props.user_email.email} to complete the signup process.
86
+ </p>
87
+ <div className={authorizeStyles.syncContainer}>
88
+ <div>
89
+ <Image
90
+ src={props.user_info?.avatar_url}
91
+ alt="Picture of the author"
92
+ width={50}
93
+ height={50}
94
+ blurDataURL="data:..."
95
+ placeholder="blur"
96
+ className={sharedStyles.avatar}
97
+ />
98
+ </div>
99
+ <div>
100
+ <div className={authorizeStyles.arrow}>
101
+ <span></span>
102
+ <span></span>
103
+ <span></span>
104
+ </div>
105
+ </div>
106
+ <div>
107
+ <code className={sharedStyles.code}>
108
+ $ smb
109
+ </code>
110
+ </div>
111
+ </div>
112
+ <Link onClick={() => {
113
+ createAccount(props.user_info, props.user_email)
114
+ }} href=''>
115
+ <code className={sharedStyles.code}>
116
+ $ smb account create
117
+ </code>
118
+ </Link>
119
+ <SharedFooter />
120
+ </main>
121
+ </>
122
+ )
123
+}
\ No newline at end of file
pages/contact.tsx
new
+29
@@ -0,0 +1,29 @@
1
+import { Inter } from "next/font/google"
2
+import sharedStyles from '@/styles/Shared.module.css'
3
+import SharedTopBar from './shared/topbar'
4
+import SharedHead from './shared/head'
5
+import SharedFooter from './shared/footer'
6
+const inter = Inter({ subsets: ['latin'] })
7
+
8
+export default function Github() {
9
+ return (
10
+ <>
11
+ <SharedHead
12
+ title="Login with your GitHub account."
13
+ description="Learn smbCloud, a new cloud platform. For your explosive ideas: a controlled demolition."
14
+ />
15
+ <main className={sharedStyles.main}>
16
+ <SharedTopBar />
17
+ <div>
18
+ <h1 className={inter.className}>
19
+ Contact
20
+ </h1>
21
+ <p className={inter.className}>
22
+ smbCloud is a new cloud platform. For your explosive ideas: a controlled demolition.
23
+ </p>
24
+ </div>
25
+ <SharedFooter/>
26
+ </main>
27
+ </>
28
+ )
29
+}
\ No newline at end of file
pages/index.tsx
new
+64
@@ -0,0 +1,64 @@
1
+import { Inter } from 'next/font/google'
2
+import sharedStyles from '@/styles/Shared.module.css'
3
+import SharedTopBar from './shared/topbar'
4
+import SharedHead from './shared/head'
5
+import SharedFooter from './shared/footer'
6
+
7
+const inter = Inter({ subsets: ['latin'] })
8
+
9
+function Breadcrumb() {
10
+ return (
11
+ <>
12
+ <a href={process.env.NEXT_PUBLIC_BASE_URL}>
13
+ Home
14
+ </a>
15
+ </>
16
+ )
17
+}
18
+
19
+export default function Home() {
20
+ return (
21
+ <>
22
+ <SharedHead
23
+ title="smbCloud - A new cloud."
24
+ description="A new cloud platform. For your explosive ideas: a controlled demolition."
25
+ />
26
+ <main className={sharedStyles.main}>
27
+ <SharedTopBar />
28
+ <div className={sharedStyles.center}>
29
+ <h1 className={inter.className}>smbCloud</h1>
30
+ </div>
31
+
32
+ <div className={sharedStyles.grid}>
33
+ <a
34
+ href={process.env.NEXT_PUBLIC_BASE_URL_DOCS}
35
+ className={sharedStyles.card}
36
+ target="_blank"
37
+ rel="noopener noreferrer"
38
+ >
39
+ <h2 className={inter.className}>
40
+ Docs <span>-></span>
41
+ </h2>
42
+ <p className={inter.className}>
43
+ Find in-depth information about smbCloud features and API.
44
+ </p>
45
+ </a>
46
+
47
+ <a
48
+ href={process.env.NEXT_PUBLIC_BASE_URL + `/learn`}
49
+ className={sharedStyles.card}
50
+ >
51
+ <h2 className={inter.className}>
52
+ Learn <span>-></span>
53
+ </h2>
54
+ <p className={inter.className}>
55
+ Learn about smbCloud in an interactive course with quizzes!
56
+ </p>
57
+ </a>
58
+ </div>
59
+
60
+ <SharedFooter />
61
+ </main>
62
+ </>
63
+ )
64
+}
pages/learn.tsx
new
+51
@@ -0,0 +1,51 @@
1
+import { Inter } from '@next/font/google'
2
+import sharedStyles from '@/styles/Shared.module.css'
3
+import SharedTopBar from './shared/topbar'
4
+import SharedHead from './shared/head'
5
+import SharedFooter from './shared/footer'
6
+const inter = Inter({ subsets: ['latin'] })
7
+
8
+export default function Learn() {
9
+ return (
10
+ <>
11
+ <SharedHead
12
+ title="Learn smbCloud - A new cloud."
13
+ description="Learn smbCloud, a new cloud platform. For your explosive ideas: a controlled demolition."
14
+ />
15
+ <main className={sharedStyles.main}>
16
+ <SharedTopBar />
17
+ <div className={sharedStyles.center}>
18
+ <h2 className={inter.className}>
19
+ Learn smbCloud
20
+ </h2>
21
+ </div>
22
+ <div className={sharedStyles.grid}>
23
+ <a
24
+ href={process.env.NEXT_PUBLIC_BASE_URL + `/learn/platform`}
25
+ className={sharedStyles.card}
26
+ >
27
+ <h2 className={inter.className}>
28
+ Platform <span>-></span>
29
+ </h2>
30
+ <p className={inter.className}>
31
+ Learn about smbCloud platform.
32
+ </p>
33
+ </a>
34
+
35
+ <a
36
+ href={process.env.NEXT_PUBLIC_BASE_URL + `/learn/sdk`}
37
+ className={sharedStyles.card}
38
+ >
39
+ <h2 className={inter.className}>
40
+ SDK<span>-></span>
41
+ </h2>
42
+ <p className={inter.className}>
43
+ Learn about smbCloud SDK!
44
+ </p>
45
+ </a>
46
+ </div>
47
+ <SharedFooter />
48
+ </main>
49
+ </>
50
+ )
51
+}
\ No newline at end of file
pages/learn/platform.tsx
new
+57
@@ -0,0 +1,57 @@
1
+import { Inter } from '@next/font/google'
2
+import SharedHead from "./../shared/head";
3
+import SharedTopBar from "./../shared/topbar";
4
+import sharedStyles from "./../../styles/Shared.module.css";
5
+import SharedFooter from '../shared/footer';
6
+const inter = Inter({ subsets: ["latin"] });
7
+
8
+function Breadcrumb() {
9
+ return (
10
+ <>
11
+ <a href={process.env.NEXT_PUBLIC_BASE_URL}>
12
+ Home
13
+ </a>
14
+ /
15
+ <a href={process.env.NEXT_PUBLIC_BASE_URL + `learn`}>
16
+ Learn
17
+ </a>
18
+ /
19
+ <a href={process.env.NEXT_PUBLIC_BASE_URL + `learn/platform`}>
20
+ Platform
21
+ </a>
22
+ </>
23
+ )
24
+}
25
+
26
+export default function Platform() {
27
+ return (
28
+ <>
29
+ <SharedHead
30
+ title="smbCloud Platform - Learn smbCloud - A new cloud."
31
+ description="Learn smbCloud Platform, a new cloud platform. For your explosive ideas: a controlled demolition."
32
+ />
33
+ <main className={sharedStyles.main}>
34
+ <SharedTopBar breadcrumb={<Breadcrumb />} />
35
+ <div className={sharedStyles.center}>
36
+ <h2 className={inter.className}>
37
+ smbCloud Platform
38
+ </h2>
39
+ </div>
40
+ <div className={sharedStyles.grid}>
41
+ <a
42
+ href={process.env.NEXT_PUBLIC_BASE_URL}
43
+ className={sharedStyles.card}
44
+ >
45
+ <h2 className={inter.className}>
46
+ Frontend Platform <span>-></span>
47
+ </h2>
48
+ <p className={inter.className}>
49
+ Learn about smbCloud platform.
50
+ </p>
51
+ </a>
52
+ </div>
53
+ <SharedFooter />
54
+ </main>
55
+ </>
56
+ )
57
+}
\ No newline at end of file
pages/learn/sdk.tsx
new
+60
@@ -0,0 +1,60 @@
1
+import { Inter } from '@next/font/google'
2
+import SharedHead from "./../shared/head";
3
+import SharedTopBar from "./../shared/topbar";
4
+import sharedStyles from "./../../styles/Shared.module.css";
5
+import SharedFooter from '../shared/footer';
6
+const inter = Inter({ subsets: ["latin"] });
7
+
8
+function Breadcrumb() {
9
+ return (
10
+ <>
11
+ <a href={process.env.NEXT_PUBLIC_BASE_URL}>
12
+ Home
13
+ </a>
14
+ /
15
+ <a href={process.env.NEXT_PUBLIC_BASE_URL + `/learn`}>
16
+ Learn
17
+ </a>
18
+ /
19
+ <a href={process.env.NEXT_PUBLIC_BASE_URL + `/learn/sdk`}>
20
+ SDK
21
+ </a>
22
+ </>
23
+ )
24
+}
25
+
26
+export default function Sdk() {
27
+ return (
28
+ <>
29
+ <SharedHead
30
+ title="smbCloud SDK - Learn smbCloud - A new cloud."
31
+ description="Learn smbCloud SDK, a new cloud platform. For your explosive ideas: a controlled demolition."
32
+ />
33
+ <main className={sharedStyles.main}>
34
+ <SharedTopBar breadcrumb={<Breadcrumb />} />
35
+ <div className={inter.className}>
36
+ <h1 className={inter.className}>
37
+ SDK
38
+ </h1>
39
+ <p className={inter.className}>SDK (Software development Kit) is a set of library that one can use to integrate an existing software.</p>
40
+ </div>
41
+
42
+ <div className={sharedStyles.center}></div>
43
+ <div className={sharedStyles.grid}>
44
+ <a
45
+ href={process.env.NEXT_PUBLIC_BASE_URL}
46
+ className={sharedStyles.card}
47
+ >
48
+ <h2 className={inter.className}>
49
+ SDK <span>-></span>
50
+ </h2>
51
+ <p className={inter.className}>
52
+ Learn about smbCloud SDK.
53
+ </p>
54
+ </a>
55
+ </div>
56
+ <SharedFooter />
57
+ </main>
58
+ </>
59
+ )
60
+}
\ No newline at end of file
pages/login.tsx
new
+49
@@ -0,0 +1,49 @@
1
+import { Inter } from "next/font/google"
2
+import sharedStyles from '@/styles/Shared.module.css'
3
+import loginStyles from '@/styles/Login.module.css'
4
+import SharedTopBar from './shared/topbar'
5
+import SharedHead from './shared/head'
6
+import SharedFooter from './shared/footer'
7
+const inter = Inter({ subsets: ['latin'] })
8
+
9
+export const getServerSideProps = (context) => {
10
+ console.log('getServerSideProps body', context.query)
11
+ return {
12
+ props: JSON.parse(JSON.stringify(context.query))
13
+ }
14
+}
15
+
16
+export default function Login(props) {
17
+ let errorMessage = ''
18
+ if (props.error) {
19
+ const error = JSON.parse(props.error)
20
+ errorMessage = error.message
21
+ }
22
+
23
+ const styleGithub = { "--color": '#e8eaea' };
24
+
25
+ return (
26
+ <>
27
+ <SharedHead
28
+ title="Login with your GitHub account."
29
+ description="Learn smbCloud, a new cloud platform. For your explosive ideas: a controlled demolition."
30
+ />
31
+ <main className={sharedStyles.main}>
32
+ <SharedTopBar />
33
+ <div className={inter.className}>
34
+ <a className={loginStyles.button} href="https://github.com/login/oauth/authorize?client_id=053e152f1b78ecee552b&redirect_uri=http://localhost:3000/authorize" style={styleGithub}>
35
+ <span></span>
36
+ <span></span>
37
+ <span></span>
38
+ <span></span>
39
+ Login with Github
40
+ </a>
41
+ </div>
42
+ <div className={inter.className}>
43
+ <span className={loginStyles.error}>{errorMessage}</span>
44
+ </div>
45
+ <SharedFooter />
46
+ </main>
47
+ </>
48
+ )
49
+}
\ No newline at end of file
pages/shared/footer.tsx
new
+18
@@ -0,0 +1,18 @@
1
+import styles from '@/styles/Shared.module.css'
2
+import { BsGithub } from 'react-icons/bs'
3
+import { GrDebian } from 'react-icons/gr'
4
+
5
+export default function SharedFooter(props) {
6
+ return (
7
+ <>
8
+ <div className={styles.footer}>
9
+ <a href={process.env.NEXT_PUBLIC_GITHUB_URL} rel="noopener noreferrer" target='__blank' title='smbCloud GitHub page'>
10
+ <BsGithub size={25}/>
11
+ </a>
12
+ <a href='https://debian.org' rel="noopener noreferrer" target='__blank' title='Running on Debian'>
13
+ <GrDebian size={25}/>
14
+ </a>
15
+ </div>
16
+ </>
17
+ )
18
+}
\ No newline at end of file
pages/shared/head.tsx
new
+14
@@ -0,0 +1,14 @@
1
+import Head from 'next/head'
2
+
3
+export default function SharedHead(props) {
4
+ return (
5
+ <>
6
+ <Head>
7
+ <title>{props.title}</title>
8
+ <meta name="description" content={props.description} />
9
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
10
+ <link rel="icon" href="/favicon.ico" />
11
+ </Head>
12
+ </>
13
+ )
14
+}
\ No newline at end of file
pages/shared/topbar.tsx
new
+39
@@ -0,0 +1,39 @@
1
+
2
+import styles from '@/styles/Shared.module.css'
3
+
4
+function PageLinks() {
5
+ return (
6
+ <>
7
+ <a href={process.env.NEXT_PUBLIC_BASE_URL}>
8
+ Home
9
+ </a>
10
+ /
11
+ <a href={process.env.NEXT_PUBLIC_BASE_URL + `about`}>
12
+ About
13
+ </a>
14
+ /
15
+ <a href={process.env.NEXT_PUBLIC_BASE_URL + `contact`}>
16
+ Contact
17
+ </a>
18
+ </>
19
+ )
20
+}
21
+
22
+export default function SharedTopBar(props) {
23
+ return (
24
+ <>
25
+ <div className={styles.description}>
26
+ <p>
27
+ <code className={styles.code}>
28
+ <a href={process.env.NEXT_PUBLIC_BASE_URL + `login`} >
29
+ $ smb login
30
+ </a>
31
+ </code>
32
+ </p>
33
+ <div>
34
+ <PageLinks />
35
+ </div>
36
+ </div>
37
+ </>
38
+ )
39
+}
\ No newline at end of file
pages/signup.tsx
new
+60
@@ -0,0 +1,60 @@
1
+import axios from "../lib/axios"
2
+import SharedTopBar from './shared/topbar'
3
+import SharedHead from './shared/head'
4
+import sharedStyles from '@/styles/Shared.module.css'
5
+import { Inter } from "next/font/google"
6
+import SharedFooter from './shared/footer'
7
+const inter = Inter({ subsets: ['latin'] })
8
+
9
+export const getServerSideProps = async (context) => {
10
+ const query = context.query
11
+ // Check if we have user_info and user_email
12
+ if (!query.user_info || !query.user_email) {
13
+ return {
14
+ redirect: {
15
+ destination: '/login',
16
+ permanent: false,
17
+ },
18
+ }
19
+ }
20
+
21
+ const userInfo = JSON.parse(query.user_info)
22
+ const userEmail = JSON.parse(query.user_email)
23
+
24
+ const res = await axios.post(`users`, {
25
+ user: {
26
+ email: userEmail.email,
27
+ authorizations_attributes: [{
28
+ provider: 0,
29
+ uid: userInfo.id
30
+ }]
31
+ }
32
+ })
33
+ const obj = res.data
34
+ return {
35
+ props: obj
36
+ }
37
+}
38
+
39
+export default function Signup() {
40
+ return (
41
+ <>
42
+ <SharedHead
43
+ title="Create your account"
44
+ description="Create your account."
45
+ />
46
+ <main className={sharedStyles.main}>
47
+ <SharedTopBar />
48
+ <h1 className={inter.className}>Create your account</h1>
49
+ <div className={inter.className}>
50
+ <div className={sharedStyles.center}>
51
+ <p className={inter.className}>
52
+ Your account has been created. You need to confirm your email.
53
+ You will be redirect to the login page. Or click the link on the top left corner.</p>
54
+ </div>
55
+ </div>
56
+ <SharedFooter />
57
+ </main>
58
+ </>
59
+ )
60
+}
\ No newline at end of file
pages/terms.tsx
new
+40
@@ -0,0 +1,40 @@
1
+import { Inter } from "next/font/google"
2
+import sharedStyles from '@/styles/Shared.module.css'
3
+import SharedTopBar from './shared/topbar'
4
+import SharedHead from './shared/head'
5
+import SharedFooter from './shared/footer'
6
+const inter = Inter({ subsets: ['latin'] })
7
+
8
+function Breadcrumb() {
9
+ return (
10
+ <>
11
+ <a href={process.env.NEXT_PUBLIC_BASE_URL}>
12
+ Home
13
+ </a>
14
+ /
15
+ <a href={process.env.NEXT_PUBLIC_BASE_URL + `/login`}>
16
+ Login
17
+ </a>
18
+ </>
19
+ )
20
+}
21
+
22
+export default function Github() {
23
+ return (
24
+ <>
25
+ <SharedHead
26
+ title="Login with your GitHub account."
27
+ description="Learn smbCloud, a new cloud platform. For your explosive ideas: a controlled demolition."
28
+ />
29
+ <main className={sharedStyles.main}>
30
+ <SharedTopBar />
31
+ <div>
32
+ <a href="https://github.com/login/oauth/authorize?client_id=Iv1.07128cb5ebc13f09" className={sharedStyles.button}>
33
+ Login with Github
34
+ </a>
35
+ </div>
36
+ <SharedFooter breadcrumb={ <Breadcrumb /> }/>
37
+ </main>
38
+ </>
39
+ )
40
+}
\ No newline at end of file
pages/v1/keep
pages/v1/users/confirmation.ts
new
+58
@@ -0,0 +1,58 @@
1
+import axios from "../../../lib/axios"
2
+import SharedHead from "../../shared/head"
3
+import sharedStyles from '@/styles/Shared.module.css'
4
+import SharedTopBar from "@/pages/shared/topbar"
5
+import { Inter } from "next/font/google"
6
+import SharedFooter from "@/pages/shared/footer"
7
+import { BsMailbox2 } from "react-icons/bs"
8
+import Link from "next/link"
9
+const inter = Inter({ subsets: ['latin'] })
10
+
11
+export const getServerSideProps = async ({ query }) => {
12
+ const confirmationToken = query.confirmation_token
13
+ try {
14
+ const res = await axios.get(`users/confirmation?confirmation_token=${confirmationToken}`)
15
+ console.log(res)
16
+ const user = res.data
17
+ return {
18
+ props: {
19
+ user
20
+ }
21
+ }
22
+ } catch (error) {
23
+ console.log('Error confirmation', error.response.data)
24
+ return {
25
+ redirect: {
26
+ destination: `/login?error=${JSON.stringify(error.response.data)}`,
27
+ permanent: false,
28
+ }
29
+ }
30
+ }
31
+}
32
+
33
+export default function Confirmation({ user }) {
34
+
35
+ return (
36
+ <>
37
+ <SharedHead
38
+ title="Your email has been verified."
39
+ description="Your email has been verified. Now you can login with your GitHub account."
40
+ />
41
+ <main className={sharedStyles.main}>
42
+ <SharedTopBar />
43
+ <h1 className={inter.className}>Confirmation</h1>
44
+ <div className={inter.className}>
45
+ <div className={sharedStyles.center}>
46
+ <BsMailbox2 size="5em" />
47
+ </div>
48
+ <div className={sharedStyles.center}>
49
+ <p className={inter.className}>
50
+ Your email has been verified. Now you can login with your GitHub account.
51
+ You will be redirect to the login page. Or click the link on the top left corner.</p>
52
+ </div>
53
+ </div>
54
+ <SharedFooter />
55
+ </main>
56
+ </>
57
+ )
58
+}
\ No newline at end of file
pnpm-lock.yaml
new
+2756
@@ -0,0 +1,2756 @@
1
+lockfileVersion: '6.0'
2
+
3
+settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+dependencies:
8
+ '@vercel/analytics':
9
+ specifier: ^0.1.11
10
+ version: 0.1.11(react@18.2.0)
11
+ axios:
12
+ specifier: ^1.0.0
13
+ version: 1.7.7
14
+ eslint:
15
+ specifier: ^8.32.0
16
+ version: 8.57.1
17
+ eslint-config-next:
18
+ specifier: ^14.0.0
19
+ version: 14.2.15(eslint@8.57.1)(typescript@5.6.3)
20
+ next:
21
+ specifier: ^14.0.0
22
+ version: 14.2.15(react-dom@18.2.0)(react@18.2.0)
23
+ react:
24
+ specifier: 18.2.0
25
+ version: 18.2.0
26
+ react-dom:
27
+ specifier: 18.2.0
28
+ version: 18.2.0(react@18.2.0)
29
+ react-icons:
30
+ specifier: ^4.10.1
31
+ version: 4.12.0(react@18.2.0)
32
+
33
+devDependencies:
34
+ '@types/node':
35
+ specifier: 22.7.6
36
+ version: 22.7.6
37
+ '@types/react':
38
+ specifier: 18.3.11
39
+ version: 18.3.11
40
+
41
+packages:
42
+
43
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.57.1):
44
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
45
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
46
+ peerDependencies:
47
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
48
+ dependencies:
49
+ eslint: 8.57.1
50
+ eslint-visitor-keys: 3.4.3
51
+ dev: false
52
+
53
+ /@eslint-community/regexpp@4.11.1:
54
+ resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
55
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
56
+ dev: false
57
+
58
+ /@eslint/eslintrc@2.1.4:
59
+ resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
60
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
61
+ dependencies:
62
+ ajv: 6.12.6
63
+ debug: 4.3.7
64
+ espree: 9.6.1
65
+ globals: 13.24.0
66
+ ignore: 5.3.2
67
+ import-fresh: 3.3.0
68
+ js-yaml: 4.1.0
69
+ minimatch: 3.1.2
70
+ strip-json-comments: 3.1.1
71
+ transitivePeerDependencies:
72
+ - supports-color
73
+ dev: false
74
+
75
+ /@eslint/js@8.57.1:
76
+ resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
77
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
78
+ dev: false
79
+
80
+ /@humanwhocodes/config-array@0.13.0:
81
+ resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
82
+ engines: {node: '>=10.10.0'}
83
+ deprecated: Use @eslint/config-array instead
84
+ dependencies:
85
+ '@humanwhocodes/object-schema': 2.0.3
86
+ debug: 4.3.7
87
+ minimatch: 3.1.2
88
+ transitivePeerDependencies:
89
+ - supports-color
90
+ dev: false
91
+
92
+ /@humanwhocodes/module-importer@1.0.1:
93
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
94
+ engines: {node: '>=12.22'}
95
+ dev: false
96
+
97
+ /@humanwhocodes/object-schema@2.0.3:
98
+ resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
99
+ deprecated: Use @eslint/object-schema instead
100
+ dev: false
101
+
102
+ /@isaacs/cliui@8.0.2:
103
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
104
+ engines: {node: '>=12'}
105
+ dependencies:
106
+ string-width: 5.1.2
107
+ string-width-cjs: /string-width@4.2.3
108
+ strip-ansi: 7.1.0
109
+ strip-ansi-cjs: /strip-ansi@6.0.1
110
+ wrap-ansi: 8.1.0
111
+ wrap-ansi-cjs: /wrap-ansi@7.0.0
112
+ dev: false
113
+
114
+ /@next/env@14.2.15:
115
+ resolution: {integrity: sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ==}
116
+ dev: false
117
+
118
+ /@next/eslint-plugin-next@14.2.15:
119
+ resolution: {integrity: sha512-pKU0iqKRBlFB/ocOI1Ip2CkKePZpYpnw5bEItEkuZ/Nr9FQP1+p7VDWr4VfOdff4i9bFmrOaeaU1bFEyAcxiMQ==}
120
+ dependencies:
121
+ glob: 10.3.10
122
+ dev: false
123
+
124
+ /@next/swc-darwin-arm64@14.2.15:
125
+ resolution: {integrity: sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==}
126
+ engines: {node: '>= 10'}
127
+ cpu: [arm64]
128
+ os: [darwin]
129
+ requiresBuild: true
130
+ dev: false
131
+ optional: true
132
+
133
+ /@next/swc-darwin-x64@14.2.15:
134
+ resolution: {integrity: sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==}
135
+ engines: {node: '>= 10'}
136
+ cpu: [x64]
137
+ os: [darwin]
138
+ requiresBuild: true
139
+ dev: false
140
+ optional: true
141
+
142
+ /@next/swc-linux-arm64-gnu@14.2.15:
143
+ resolution: {integrity: sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==}
144
+ engines: {node: '>= 10'}
145
+ cpu: [arm64]
146
+ os: [linux]
147
+ requiresBuild: true
148
+ dev: false
149
+ optional: true
150
+
151
+ /@next/swc-linux-arm64-musl@14.2.15:
152
+ resolution: {integrity: sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==}
153
+ engines: {node: '>= 10'}
154
+ cpu: [arm64]
155
+ os: [linux]
156
+ requiresBuild: true
157
+ dev: false
158
+ optional: true
159
+
160
+ /@next/swc-linux-x64-gnu@14.2.15:
161
+ resolution: {integrity: sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==}
162
+ engines: {node: '>= 10'}
163
+ cpu: [x64]
164
+ os: [linux]
165
+ requiresBuild: true
166
+ dev: false
167
+ optional: true
168
+
169
+ /@next/swc-linux-x64-musl@14.2.15:
170
+ resolution: {integrity: sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==}
171
+ engines: {node: '>= 10'}
172
+ cpu: [x64]
173
+ os: [linux]
174
+ requiresBuild: true
175
+ dev: false
176
+ optional: true
177
+
178
+ /@next/swc-win32-arm64-msvc@14.2.15:
179
+ resolution: {integrity: sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==}
180
+ engines: {node: '>= 10'}
181
+ cpu: [arm64]
182
+ os: [win32]
183
+ requiresBuild: true
184
+ dev: false
185
+ optional: true
186
+
187
+ /@next/swc-win32-ia32-msvc@14.2.15:
188
+ resolution: {integrity: sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==}
189
+ engines: {node: '>= 10'}
190
+ cpu: [ia32]
191
+ os: [win32]
192
+ requiresBuild: true
193
+ dev: false
194
+ optional: true
195
+
196
+ /@next/swc-win32-x64-msvc@14.2.15:
197
+ resolution: {integrity: sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==}
198
+ engines: {node: '>= 10'}
199
+ cpu: [x64]
200
+ os: [win32]
201
+ requiresBuild: true
202
+ dev: false
203
+ optional: true
204
+
205
+ /@nodelib/fs.scandir@2.1.5:
206
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
207
+ engines: {node: '>= 8'}
208
+ dependencies:
209
+ '@nodelib/fs.stat': 2.0.5
210
+ run-parallel: 1.2.0
211
+ dev: false
212
+
213
+ /@nodelib/fs.stat@2.0.5:
214
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
215
+ engines: {node: '>= 8'}
216
+ dev: false
217
+
218
+ /@nodelib/fs.walk@1.2.8:
219
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
220
+ engines: {node: '>= 8'}
221
+ dependencies:
222
+ '@nodelib/fs.scandir': 2.1.5
223
+ fastq: 1.17.1
224
+ dev: false
225
+
226
+ /@nolyfill/is-core-module@1.0.39:
227
+ resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
228
+ engines: {node: '>=12.4.0'}
229
+ dev: false
230
+
231
+ /@pkgjs/parseargs@0.11.0:
232
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
233
+ engines: {node: '>=14'}
234
+ requiresBuild: true
235
+ dev: false
236
+ optional: true
237
+
238
+ /@rtsao/scc@1.1.0:
239
+ resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
240
+ dev: false
241
+
242
+ /@rushstack/eslint-patch@1.10.4:
243
+ resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==}
244
+ dev: false
245
+
246
+ /@swc/counter@0.1.3:
247
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
248
+ dev: false
249
+
250
+ /@swc/helpers@0.5.5:
251
+ resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
252
+ dependencies:
253
+ '@swc/counter': 0.1.3
254
+ tslib: 2.8.0
255
+ dev: false
256
+
257
+ /@types/json5@0.0.29:
258
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
259
+ dev: false
260
+
261
+ /@types/node@22.7.6:
262
+ resolution: {integrity: sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==}
263
+ dependencies:
264
+ undici-types: 6.19.8
265
+ dev: true
266
+
267
+ /@types/prop-types@15.7.13:
268
+ resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
269
+ dev: true
270
+
271
+ /@types/react@18.3.11:
272
+ resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==}
273
+ dependencies:
274
+ '@types/prop-types': 15.7.13
275
+ csstype: 3.1.3
276
+ dev: true
277
+
278
+ /@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.1)(typescript@5.6.3):
279
+ resolution: {integrity: sha512-phuB3hoP7FFKbRXxjl+DRlQDuJqhpOnm5MmtROXyWi3uS/Xg2ZXqiQfcG2BJHiN4QKyzdOJi3NEn/qTnjUlkmQ==}
280
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
281
+ peerDependencies:
282
+ '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
283
+ eslint: ^8.57.0 || ^9.0.0
284
+ typescript: '*'
285
+ peerDependenciesMeta:
286
+ typescript:
287
+ optional: true
288
+ dependencies:
289
+ '@eslint-community/regexpp': 4.11.1
290
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.6.3)
291
+ '@typescript-eslint/scope-manager': 8.10.0
292
+ '@typescript-eslint/type-utils': 8.10.0(eslint@8.57.1)(typescript@5.6.3)
293
+ '@typescript-eslint/utils': 8.10.0(eslint@8.57.1)(typescript@5.6.3)
294
+ '@typescript-eslint/visitor-keys': 8.10.0
295
+ eslint: 8.57.1
296
+ graphemer: 1.4.0
297
+ ignore: 5.3.2
298
+ natural-compare: 1.4.0
299
+ ts-api-utils: 1.3.0(typescript@5.6.3)
300
+ typescript: 5.6.3
301
+ transitivePeerDependencies:
302
+ - supports-color
303
+ dev: false
304
+
305
+ /@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3):
306
+ resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
307
+ engines: {node: ^16.0.0 || >=18.0.0}
308
+ peerDependencies:
309
+ eslint: ^7.0.0 || ^8.0.0
310
+ typescript: '*'
311
+ peerDependenciesMeta:
312
+ typescript:
313
+ optional: true
314
+ dependencies:
315
+ '@typescript-eslint/scope-manager': 6.21.0
316
+ '@typescript-eslint/types': 6.21.0
317
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3)
318
+ '@typescript-eslint/visitor-keys': 6.21.0
319
+ debug: 4.3.7
320
+ eslint: 8.57.1
321
+ typescript: 5.6.3
322
+ transitivePeerDependencies:
323
+ - supports-color
324
+ dev: false
325
+
326
+ /@typescript-eslint/scope-manager@6.21.0:
327
+ resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
328
+ engines: {node: ^16.0.0 || >=18.0.0}
329
+ dependencies:
330
+ '@typescript-eslint/types': 6.21.0
331
+ '@typescript-eslint/visitor-keys': 6.21.0
332
+ dev: false
333
+
334
+ /@typescript-eslint/scope-manager@8.10.0:
335
+ resolution: {integrity: sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==}
336
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
337
+ dependencies:
338
+ '@typescript-eslint/types': 8.10.0
339
+ '@typescript-eslint/visitor-keys': 8.10.0
340
+ dev: false
341
+
342
+ /@typescript-eslint/type-utils@8.10.0(eslint@8.57.1)(typescript@5.6.3):
343
+ resolution: {integrity: sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg==}
344
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
345
+ peerDependencies:
346
+ typescript: '*'
347
+ peerDependenciesMeta:
348
+ typescript:
349
+ optional: true
350
+ dependencies:
351
+ '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3)
352
+ '@typescript-eslint/utils': 8.10.0(eslint@8.57.1)(typescript@5.6.3)
353
+ debug: 4.3.7
354
+ ts-api-utils: 1.3.0(typescript@5.6.3)
355
+ typescript: 5.6.3
356
+ transitivePeerDependencies:
357
+ - eslint
358
+ - supports-color
359
+ dev: false
360
+
361
+ /@typescript-eslint/types@6.21.0:
362
+ resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
363
+ engines: {node: ^16.0.0 || >=18.0.0}
364
+ dev: false
365
+
366
+ /@typescript-eslint/types@8.10.0:
367
+ resolution: {integrity: sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==}
368
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
369
+ dev: false
370
+
371
+ /@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.3):
372
+ resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
373
+ engines: {node: ^16.0.0 || >=18.0.0}
374
+ peerDependencies:
375
+ typescript: '*'
376
+ peerDependenciesMeta:
377
+ typescript:
378
+ optional: true
379
+ dependencies:
380
+ '@typescript-eslint/types': 6.21.0
381
+ '@typescript-eslint/visitor-keys': 6.21.0
382
+ debug: 4.3.7
383
+ globby: 11.1.0
384
+ is-glob: 4.0.3
385
+ minimatch: 9.0.3
386
+ semver: 7.6.3
387
+ ts-api-utils: 1.3.0(typescript@5.6.3)
388
+ typescript: 5.6.3
389
+ transitivePeerDependencies:
390
+ - supports-color
391
+ dev: false
392
+
393
+ /@typescript-eslint/typescript-estree@8.10.0(typescript@5.6.3):
394
+ resolution: {integrity: sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==}
395
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
396
+ peerDependencies:
397
+ typescript: '*'
398
+ peerDependenciesMeta:
399
+ typescript:
400
+ optional: true
401
+ dependencies:
402
+ '@typescript-eslint/types': 8.10.0
403
+ '@typescript-eslint/visitor-keys': 8.10.0
404
+ debug: 4.3.7
405
+ fast-glob: 3.3.2
406
+ is-glob: 4.0.3
407
+ minimatch: 9.0.5
408
+ semver: 7.6.3
409
+ ts-api-utils: 1.3.0(typescript@5.6.3)
410
+ typescript: 5.6.3
411
+ transitivePeerDependencies:
412
+ - supports-color
413
+ dev: false
414
+
415
+ /@typescript-eslint/utils@8.10.0(eslint@8.57.1)(typescript@5.6.3):
416
+ resolution: {integrity: sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w==}
417
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
418
+ peerDependencies:
419
+ eslint: ^8.57.0 || ^9.0.0
420
+ dependencies:
421
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1)
422
+ '@typescript-eslint/scope-manager': 8.10.0
423
+ '@typescript-eslint/types': 8.10.0
424
+ '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3)
425
+ eslint: 8.57.1
426
+ transitivePeerDependencies:
427
+ - supports-color
428
+ - typescript
429
+ dev: false
430
+
431
+ /@typescript-eslint/visitor-keys@6.21.0:
432
+ resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
433
+ engines: {node: ^16.0.0 || >=18.0.0}
434
+ dependencies:
435
+ '@typescript-eslint/types': 6.21.0
436
+ eslint-visitor-keys: 3.4.3
437
+ dev: false
438
+
439
+ /@typescript-eslint/visitor-keys@8.10.0:
440
+ resolution: {integrity: sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==}
441
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
442
+ dependencies:
443
+ '@typescript-eslint/types': 8.10.0
444
+ eslint-visitor-keys: 3.4.3
445
+ dev: false
446
+
447
+ /@ungap/structured-clone@1.2.0:
448
+ resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
449
+ dev: false
450
+
451
+ /@vercel/analytics@0.1.11(react@18.2.0):
452
+ resolution: {integrity: sha512-mj5CPR02y0BRs1tN3oZcBNAX9a8NxsIUl9vElDPcqxnMfP0RbRc9fI9Ud7+QDg/1Izvt5uMumsr+6YsmVHcyuw==}
453
+ peerDependencies:
454
+ react: ^16.8||^17||^18
455
+ dependencies:
456
+ react: 18.2.0
457
+ dev: false
458
+
459
+ /acorn-jsx@5.3.2(acorn@8.13.0):
460
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
461
+ peerDependencies:
462
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
463
+ dependencies:
464
+ acorn: 8.13.0
465
+ dev: false
466
+
467
+ /acorn@8.13.0:
468
+ resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==}
469
+ engines: {node: '>=0.4.0'}
470
+ hasBin: true
471
+ dev: false
472
+
473
+ /ajv@6.12.6:
474
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
475
+ dependencies:
476
+ fast-deep-equal: 3.1.3
477
+ fast-json-stable-stringify: 2.1.0
478
+ json-schema-traverse: 0.4.1
479
+ uri-js: 4.4.1
480
+ dev: false
481
+
482
+ /ansi-regex@5.0.1:
483
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
484
+ engines: {node: '>=8'}
485
+ dev: false
486
+
487
+ /ansi-regex@6.1.0:
488
+ resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
489
+ engines: {node: '>=12'}
490
+ dev: false
491
+
492
+ /ansi-styles@4.3.0:
493
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
494
+ engines: {node: '>=8'}
495
+ dependencies:
496
+ color-convert: 2.0.1
497
+ dev: false
498
+
499
+ /ansi-styles@6.2.1:
500
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
501
+ engines: {node: '>=12'}
502
+ dev: false
503
+
504
+ /argparse@2.0.1:
505
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
506
+ dev: false
507
+
508
+ /aria-query@5.1.3:
509
+ resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
510
+ dependencies:
511
+ deep-equal: 2.2.3
512
+ dev: false
513
+
514
+ /array-buffer-byte-length@1.0.1:
515
+ resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
516
+ engines: {node: '>= 0.4'}
517
+ dependencies:
518
+ call-bind: 1.0.7
519
+ is-array-buffer: 3.0.4
520
+ dev: false
521
+
522
+ /array-includes@3.1.8:
523
+ resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
524
+ engines: {node: '>= 0.4'}
525
+ dependencies:
526
+ call-bind: 1.0.7
527
+ define-properties: 1.2.1
528
+ es-abstract: 1.23.3
529
+ es-object-atoms: 1.0.0
530
+ get-intrinsic: 1.2.4
531
+ is-string: 1.0.7
532
+ dev: false
533
+
534
+ /array-union@2.1.0:
535
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
536
+ engines: {node: '>=8'}
537
+ dev: false
538
+
539
+ /array.prototype.findlast@1.2.5:
540
+ resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
541
+ engines: {node: '>= 0.4'}
542
+ dependencies:
543
+ call-bind: 1.0.7
544
+ define-properties: 1.2.1
545
+ es-abstract: 1.23.3
546
+ es-errors: 1.3.0
547
+ es-object-atoms: 1.0.0
548
+ es-shim-unscopables: 1.0.2
549
+ dev: false
550
+
551
+ /array.prototype.findlastindex@1.2.5:
552
+ resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
553
+ engines: {node: '>= 0.4'}
554
+ dependencies:
555
+ call-bind: 1.0.7
556
+ define-properties: 1.2.1
557
+ es-abstract: 1.23.3
558
+ es-errors: 1.3.0
559
+ es-object-atoms: 1.0.0
560
+ es-shim-unscopables: 1.0.2
561
+ dev: false
562
+
563
+ /array.prototype.flat@1.3.2:
564
+ resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
565
+ engines: {node: '>= 0.4'}
566
+ dependencies:
567
+ call-bind: 1.0.7
568
+ define-properties: 1.2.1
569
+ es-abstract: 1.23.3
570
+ es-shim-unscopables: 1.0.2
571
+ dev: false
572
+
573
+ /array.prototype.flatmap@1.3.2:
574
+ resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
575
+ engines: {node: '>= 0.4'}
576
+ dependencies:
577
+ call-bind: 1.0.7
578
+ define-properties: 1.2.1
579
+ es-abstract: 1.23.3
580
+ es-shim-unscopables: 1.0.2
581
+ dev: false
582
+
583
+ /array.prototype.tosorted@1.1.4:
584
+ resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
585
+ engines: {node: '>= 0.4'}
586
+ dependencies:
587
+ call-bind: 1.0.7
588
+ define-properties: 1.2.1
589
+ es-abstract: 1.23.3
590
+ es-errors: 1.3.0
591
+ es-shim-unscopables: 1.0.2
592
+ dev: false
593
+
594
+ /arraybuffer.prototype.slice@1.0.3:
595
+ resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
596
+ engines: {node: '>= 0.4'}
597
+ dependencies:
598
+ array-buffer-byte-length: 1.0.1
599
+ call-bind: 1.0.7
600
+ define-properties: 1.2.1
601
+ es-abstract: 1.23.3
602
+ es-errors: 1.3.0
603
+ get-intrinsic: 1.2.4
604
+ is-array-buffer: 3.0.4
605
+ is-shared-array-buffer: 1.0.3
606
+ dev: false
607
+
608
+ /ast-types-flow@0.0.8:
609
+ resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
610
+ dev: false
611
+
612
+ /asynckit@0.4.0:
613
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
614
+ dev: false
615
+
616
+ /available-typed-arrays@1.0.7:
617
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
618
+ engines: {node: '>= 0.4'}
619
+ dependencies:
620
+ possible-typed-array-names: 1.0.0
621
+ dev: false
622
+
623
+ /axe-core@4.10.1:
624
+ resolution: {integrity: sha512-qPC9o+kD8Tir0lzNGLeghbOrWMr3ZJpaRlCIb6Uobt/7N4FiEDvqUMnxzCHRHmg8vOg14kr5gVNyScRmbMaJ9g==}
625
+ engines: {node: '>=4'}
626
+ dev: false
627
+
628
+ /axios@1.7.7:
629
+ resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==}
630
+ dependencies:
631
+ follow-redirects: 1.15.9
632
+ form-data: 4.0.1
633
+ proxy-from-env: 1.1.0
634
+ transitivePeerDependencies:
635
+ - debug
636
+ dev: false
637
+
638
+ /axobject-query@4.1.0:
639
+ resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
640
+ engines: {node: '>= 0.4'}
641
+ dev: false
642
+
643
+ /balanced-match@1.0.2:
644
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
645
+ dev: false
646
+
647
+ /brace-expansion@1.1.11:
648
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
649
+ dependencies:
650
+ balanced-match: 1.0.2
651
+ concat-map: 0.0.1
652
+ dev: false
653
+
654
+ /brace-expansion@2.0.1:
655
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
656
+ dependencies:
657
+ balanced-match: 1.0.2
658
+ dev: false
659
+
660
+ /braces@3.0.3:
661
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
662
+ engines: {node: '>=8'}
663
+ dependencies:
664
+ fill-range: 7.1.1
665
+ dev: false
666
+
667
+ /busboy@1.6.0:
668
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
669
+ engines: {node: '>=10.16.0'}
670
+ dependencies:
671
+ streamsearch: 1.1.0
672
+ dev: false
673
+
674
+ /call-bind@1.0.7:
675
+ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
676
+ engines: {node: '>= 0.4'}
677
+ dependencies:
678
+ es-define-property: 1.0.0
679
+ es-errors: 1.3.0
680
+ function-bind: 1.1.2
681
+ get-intrinsic: 1.2.4
682
+ set-function-length: 1.2.2
683
+ dev: false
684
+
685
+ /callsites@3.1.0:
686
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
687
+ engines: {node: '>=6'}
688
+ dev: false
689
+
690
+ /caniuse-lite@1.0.30001669:
691
+ resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==}
692
+ dev: false
693
+
694
+ /chalk@4.1.2:
695
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
696
+ engines: {node: '>=10'}
697
+ dependencies:
698
+ ansi-styles: 4.3.0
699
+ supports-color: 7.2.0
700
+ dev: false
701
+
702
+ /client-only@0.0.1:
703
+ resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
704
+ dev: false
705
+
706
+ /color-convert@2.0.1:
707
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
708
+ engines: {node: '>=7.0.0'}
709
+ dependencies:
710
+ color-name: 1.1.4
711
+ dev: false
712
+
713
+ /color-name@1.1.4:
714
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
715
+ dev: false
716
+
717
+ /combined-stream@1.0.8:
718
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
719
+ engines: {node: '>= 0.8'}
720
+ dependencies:
721
+ delayed-stream: 1.0.0
722
+ dev: false
723
+
724
+ /concat-map@0.0.1:
725
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
726
+ dev: false
727
+
728
+ /cross-spawn@7.0.3:
729
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
730
+ engines: {node: '>= 8'}
731
+ dependencies:
732
+ path-key: 3.1.1
733
+ shebang-command: 2.0.0
734
+ which: 2.0.2
735
+ dev: false
736
+
737
+ /csstype@3.1.3:
738
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
739
+ dev: true
740
+
741
+ /damerau-levenshtein@1.0.8:
742
+ resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
743
+ dev: false
744
+
745
+ /data-view-buffer@1.0.1:
746
+ resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
747
+ engines: {node: '>= 0.4'}
748
+ dependencies:
749
+ call-bind: 1.0.7
750
+ es-errors: 1.3.0
751
+ is-data-view: 1.0.1
752
+ dev: false
753
+
754
+ /data-view-byte-length@1.0.1:
755
+ resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
756
+ engines: {node: '>= 0.4'}
757
+ dependencies:
758
+ call-bind: 1.0.7
759
+ es-errors: 1.3.0
760
+ is-data-view: 1.0.1
761
+ dev: false
762
+
763
+ /data-view-byte-offset@1.0.0:
764
+ resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
765
+ engines: {node: '>= 0.4'}
766
+ dependencies:
767
+ call-bind: 1.0.7
768
+ es-errors: 1.3.0
769
+ is-data-view: 1.0.1
770
+ dev: false
771
+
772
+ /debug@3.2.7:
773
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
774
+ peerDependencies:
775
+ supports-color: '*'
776
+ peerDependenciesMeta:
777
+ supports-color:
778
+ optional: true
779
+ dependencies:
780
+ ms: 2.1.3
781
+ dev: false
782
+
783
+ /debug@4.3.7:
784
+ resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
785
+ engines: {node: '>=6.0'}
786
+ peerDependencies:
787
+ supports-color: '*'
788
+ peerDependenciesMeta:
789
+ supports-color:
790
+ optional: true
791
+ dependencies:
792
+ ms: 2.1.3
793
+ dev: false
794
+
795
+ /deep-equal@2.2.3:
796
+ resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
797
+ engines: {node: '>= 0.4'}
798
+ dependencies:
799
+ array-buffer-byte-length: 1.0.1
800
+ call-bind: 1.0.7
801
+ es-get-iterator: 1.1.3
802
+ get-intrinsic: 1.2.4
803
+ is-arguments: 1.1.1
804
+ is-array-buffer: 3.0.4
805
+ is-date-object: 1.0.5
806
+ is-regex: 1.1.4
807
+ is-shared-array-buffer: 1.0.3
808
+ isarray: 2.0.5
809
+ object-is: 1.1.6
810
+ object-keys: 1.1.1
811
+ object.assign: 4.1.5
812
+ regexp.prototype.flags: 1.5.3
813
+ side-channel: 1.0.6
814
+ which-boxed-primitive: 1.0.2
815
+ which-collection: 1.0.2
816
+ which-typed-array: 1.1.15
817
+ dev: false
818
+
819
+ /deep-is@0.1.4:
820
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
821
+ dev: false
822
+
823
+ /define-data-property@1.1.4:
824
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
825
+ engines: {node: '>= 0.4'}
826
+ dependencies:
827
+ es-define-property: 1.0.0
828
+ es-errors: 1.3.0
829
+ gopd: 1.0.1
830
+ dev: false
831
+
832
+ /define-properties@1.2.1:
833
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
834
+ engines: {node: '>= 0.4'}
835
+ dependencies:
836
+ define-data-property: 1.1.4
837
+ has-property-descriptors: 1.0.2
838
+ object-keys: 1.1.1
839
+ dev: false
840
+
841
+ /delayed-stream@1.0.0:
842
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
843
+ engines: {node: '>=0.4.0'}
844
+ dev: false
845
+
846
+ /dir-glob@3.0.1:
847
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
848
+ engines: {node: '>=8'}
849
+ dependencies:
850
+ path-type: 4.0.0
851
+ dev: false
852
+
853
+ /doctrine@2.1.0:
854
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
855
+ engines: {node: '>=0.10.0'}
856
+ dependencies:
857
+ esutils: 2.0.3
858
+ dev: false
859
+
860
+ /doctrine@3.0.0:
861
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
862
+ engines: {node: '>=6.0.0'}
863
+ dependencies:
864
+ esutils: 2.0.3
865
+ dev: false
866
+
867
+ /eastasianwidth@0.2.0:
868
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
869
+ dev: false
870
+
871
+ /emoji-regex@8.0.0:
872
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
873
+ dev: false
874
+
875
+ /emoji-regex@9.2.2:
876
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
877
+ dev: false
878
+
879
+ /enhanced-resolve@5.17.1:
880
+ resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==}
881
+ engines: {node: '>=10.13.0'}
882
+ dependencies:
883
+ graceful-fs: 4.2.11
884
+ tapable: 2.2.1
885
+ dev: false
886
+
887
+ /es-abstract@1.23.3:
888
+ resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==}
889
+ engines: {node: '>= 0.4'}
890
+ dependencies:
891
+ array-buffer-byte-length: 1.0.1
892
+ arraybuffer.prototype.slice: 1.0.3
893
+ available-typed-arrays: 1.0.7
894
+ call-bind: 1.0.7
895
+ data-view-buffer: 1.0.1
896
+ data-view-byte-length: 1.0.1
897
+ data-view-byte-offset: 1.0.0
898
+ es-define-property: 1.0.0
899
+ es-errors: 1.3.0
900
+ es-object-atoms: 1.0.0
901
+ es-set-tostringtag: 2.0.3
902
+ es-to-primitive: 1.2.1
903
+ function.prototype.name: 1.1.6
904
+ get-intrinsic: 1.2.4
905
+ get-symbol-description: 1.0.2
906
+ globalthis: 1.0.4
907
+ gopd: 1.0.1
908
+ has-property-descriptors: 1.0.2
909
+ has-proto: 1.0.3
910
+ has-symbols: 1.0.3
911
+ hasown: 2.0.2
912
+ internal-slot: 1.0.7
913
+ is-array-buffer: 3.0.4
914
+ is-callable: 1.2.7
915
+ is-data-view: 1.0.1
916
+ is-negative-zero: 2.0.3
917
+ is-regex: 1.1.4
918
+ is-shared-array-buffer: 1.0.3
919
+ is-string: 1.0.7
920
+ is-typed-array: 1.1.13
921
+ is-weakref: 1.0.2
922
+ object-inspect: 1.13.2
923
+ object-keys: 1.1.1
924
+ object.assign: 4.1.5
925
+ regexp.prototype.flags: 1.5.3
926
+ safe-array-concat: 1.1.2
927
+ safe-regex-test: 1.0.3
928
+ string.prototype.trim: 1.2.9
929
+ string.prototype.trimend: 1.0.8
930
+ string.prototype.trimstart: 1.0.8
931
+ typed-array-buffer: 1.0.2
932
+ typed-array-byte-length: 1.0.1
933
+ typed-array-byte-offset: 1.0.2
934
+ typed-array-length: 1.0.6
935
+ unbox-primitive: 1.0.2
936
+ which-typed-array: 1.1.15
937
+ dev: false
938
+
939
+ /es-define-property@1.0.0:
940
+ resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
941
+ engines: {node: '>= 0.4'}
942
+ dependencies:
943
+ get-intrinsic: 1.2.4
944
+ dev: false
945
+
946
+ /es-errors@1.3.0:
947
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
948
+ engines: {node: '>= 0.4'}
949
+ dev: false
950
+
951
+ /es-get-iterator@1.1.3:
952
+ resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
953
+ dependencies:
954
+ call-bind: 1.0.7
955
+ get-intrinsic: 1.2.4
956
+ has-symbols: 1.0.3
957
+ is-arguments: 1.1.1
958
+ is-map: 2.0.3
959
+ is-set: 2.0.3
960
+ is-string: 1.0.7
961
+ isarray: 2.0.5
962
+ stop-iteration-iterator: 1.0.0
963
+ dev: false
964
+
965
+ /es-iterator-helpers@1.1.0:
966
+ resolution: {integrity: sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==}
967
+ engines: {node: '>= 0.4'}
968
+ dependencies:
969
+ call-bind: 1.0.7
970
+ define-properties: 1.2.1
971
+ es-abstract: 1.23.3
972
+ es-errors: 1.3.0
973
+ es-set-tostringtag: 2.0.3
974
+ function-bind: 1.1.2
975
+ get-intrinsic: 1.2.4
976
+ globalthis: 1.0.4
977
+ has-property-descriptors: 1.0.2
978
+ has-proto: 1.0.3
979
+ has-symbols: 1.0.3
980
+ internal-slot: 1.0.7
981
+ iterator.prototype: 1.1.3
982
+ safe-array-concat: 1.1.2
983
+ dev: false
984
+
985
+ /es-object-atoms@1.0.0:
986
+ resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
987
+ engines: {node: '>= 0.4'}
988
+ dependencies:
989
+ es-errors: 1.3.0
990
+ dev: false
991
+
992
+ /es-set-tostringtag@2.0.3:
993
+ resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
994
+ engines: {node: '>= 0.4'}
995
+ dependencies:
996
+ get-intrinsic: 1.2.4
997
+ has-tostringtag: 1.0.2
998
+ hasown: 2.0.2
999
+ dev: false
1000
+
1001
+ /es-shim-unscopables@1.0.2:
1002
+ resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
1003
+ dependencies:
1004
+ hasown: 2.0.2
1005
+ dev: false
1006
+
1007
+ /es-to-primitive@1.2.1:
1008
+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
1009
+ engines: {node: '>= 0.4'}
1010
+ dependencies:
1011
+ is-callable: 1.2.7
1012
+ is-date-object: 1.0.5
1013
+ is-symbol: 1.0.4
1014
+ dev: false
1015
+
1016
+ /escape-string-regexp@4.0.0:
1017
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
1018
+ engines: {node: '>=10'}
1019
+ dev: false
1020
+
1021
+ /eslint-config-next@14.2.15(eslint@8.57.1)(typescript@5.6.3):
1022
+ resolution: {integrity: sha512-mKg+NC/8a4JKLZRIOBplxXNdStgxy7lzWuedUaCc8tev+Al9mwDUTujQH6W6qXDH9kycWiVo28tADWGvpBsZcQ==}
1023
+ peerDependencies:
1024
+ eslint: ^7.23.0 || ^8.0.0
1025
+ typescript: '>=3.3.1'
1026
+ peerDependenciesMeta:
1027
+ typescript:
1028
+ optional: true
1029
+ dependencies:
1030
+ '@next/eslint-plugin-next': 14.2.15
1031
+ '@rushstack/eslint-patch': 1.10.4
1032
+ '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.1)(typescript@5.6.3)
1033
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.6.3)
1034
+ eslint: 8.57.1
1035
+ eslint-import-resolver-node: 0.3.9
1036
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1)
1037
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
1038
+ eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1)
1039
+ eslint-plugin-react: 7.37.1(eslint@8.57.1)
1040
+ eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1)
1041
+ typescript: 5.6.3
1042
+ transitivePeerDependencies:
1043
+ - eslint-import-resolver-webpack
1044
+ - eslint-plugin-import-x
1045
+ - supports-color
1046
+ dev: false
1047
+
1048
+ /eslint-import-resolver-node@0.3.9:
1049
+ resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
1050
+ dependencies:
1051
+ debug: 3.2.7
1052
+ is-core-module: 2.15.1
1053
+ resolve: 1.22.8
1054
+ transitivePeerDependencies:
1055
+ - supports-color
1056
+ dev: false
1057
+
1058
+ /eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1):
1059
+ resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==}
1060
+ engines: {node: ^14.18.0 || >=16.0.0}
1061
+ peerDependencies:
1062
+ eslint: '*'
1063
+ eslint-plugin-import: '*'
1064
+ eslint-plugin-import-x: '*'
1065
+ peerDependenciesMeta:
1066
+ eslint-plugin-import:
1067
+ optional: true
1068
+ eslint-plugin-import-x:
1069
+ optional: true
1070
+ dependencies:
1071
+ '@nolyfill/is-core-module': 1.0.39
1072
+ debug: 4.3.7
1073
+ enhanced-resolve: 5.17.1
1074
+ eslint: 8.57.1
1075
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
1076
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
1077
+ fast-glob: 3.3.2
1078
+ get-tsconfig: 4.8.1
1079
+ is-bun-module: 1.2.1
1080
+ is-glob: 4.0.3
1081
+ transitivePeerDependencies:
1082
+ - '@typescript-eslint/parser'
1083
+ - eslint-import-resolver-node
1084
+ - eslint-import-resolver-webpack
1085
+ - supports-color
1086
+ dev: false
1087
+
1088
+ /eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1):
1089
+ resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
1090
+ engines: {node: '>=4'}
1091
+ peerDependencies:
1092
+ '@typescript-eslint/parser': '*'
1093
+ eslint: '*'
1094
+ eslint-import-resolver-node: '*'
1095
+ eslint-import-resolver-typescript: '*'
1096
+ eslint-import-resolver-webpack: '*'
1097
+ peerDependenciesMeta:
1098
+ '@typescript-eslint/parser':
1099
+ optional: true
1100
+ eslint:
1101
+ optional: true
1102
+ eslint-import-resolver-node:
1103
+ optional: true
1104
+ eslint-import-resolver-typescript:
1105
+ optional: true
1106
+ eslint-import-resolver-webpack:
1107
+ optional: true
1108
+ dependencies:
1109
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.6.3)
1110
+ debug: 3.2.7
1111
+ eslint: 8.57.1
1112
+ eslint-import-resolver-node: 0.3.9
1113
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1)
1114
+ transitivePeerDependencies:
1115
+ - supports-color
1116
+ dev: false
1117
+
1118
+ /eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1):
1119
+ resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
1120
+ engines: {node: '>=4'}
1121
+ peerDependencies:
1122
+ '@typescript-eslint/parser': '*'
1123
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
1124
+ peerDependenciesMeta:
1125
+ '@typescript-eslint/parser':
1126
+ optional: true
1127
+ dependencies:
1128
+ '@rtsao/scc': 1.1.0
1129
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.6.3)
1130
+ array-includes: 3.1.8
1131
+ array.prototype.findlastindex: 1.2.5
1132
+ array.prototype.flat: 1.3.2
1133
+ array.prototype.flatmap: 1.3.2
1134
+ debug: 3.2.7
1135
+ doctrine: 2.1.0
1136
+ eslint: 8.57.1
1137
+ eslint-import-resolver-node: 0.3.9
1138
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
1139
+ hasown: 2.0.2
1140
+ is-core-module: 2.15.1
1141
+ is-glob: 4.0.3
1142
+ minimatch: 3.1.2
1143
+ object.fromentries: 2.0.8
1144
+ object.groupby: 1.0.3
1145
+ object.values: 1.2.0
1146
+ semver: 6.3.1
1147
+ string.prototype.trimend: 1.0.8
1148
+ tsconfig-paths: 3.15.0
1149
+ transitivePeerDependencies:
1150
+ - eslint-import-resolver-typescript
1151
+ - eslint-import-resolver-webpack
1152
+ - supports-color
1153
+ dev: false
1154
+
1155
+ /eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1):
1156
+ resolution: {integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==}
1157
+ engines: {node: '>=4.0'}
1158
+ peerDependencies:
1159
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
1160
+ dependencies:
1161
+ aria-query: 5.1.3
1162
+ array-includes: 3.1.8
1163
+ array.prototype.flatmap: 1.3.2
1164
+ ast-types-flow: 0.0.8
1165
+ axe-core: 4.10.1
1166
+ axobject-query: 4.1.0
1167
+ damerau-levenshtein: 1.0.8
1168
+ emoji-regex: 9.2.2
1169
+ es-iterator-helpers: 1.1.0
1170
+ eslint: 8.57.1
1171
+ hasown: 2.0.2
1172
+ jsx-ast-utils: 3.3.5
1173
+ language-tags: 1.0.9
1174
+ minimatch: 3.1.2
1175
+ object.fromentries: 2.0.8
1176
+ safe-regex-test: 1.0.3
1177
+ string.prototype.includes: 2.0.1
1178
+ dev: false
1179
+
1180
+ /eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1):
1181
+ resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==}
1182
+ engines: {node: '>=10'}
1183
+ peerDependencies:
1184
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
1185
+ dependencies:
1186
+ eslint: 8.57.1
1187
+ dev: false
1188
+
1189
+ /eslint-plugin-react@7.37.1(eslint@8.57.1):
1190
+ resolution: {integrity: sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==}
1191
+ engines: {node: '>=4'}
1192
+ peerDependencies:
1193
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
1194
+ dependencies:
1195
+ array-includes: 3.1.8
1196
+ array.prototype.findlast: 1.2.5
1197
+ array.prototype.flatmap: 1.3.2
1198
+ array.prototype.tosorted: 1.1.4
1199
+ doctrine: 2.1.0
1200
+ es-iterator-helpers: 1.1.0
1201
+ eslint: 8.57.1
1202
+ estraverse: 5.3.0
1203
+ hasown: 2.0.2
1204
+ jsx-ast-utils: 3.3.5
1205
+ minimatch: 3.1.2
1206
+ object.entries: 1.1.8
1207
+ object.fromentries: 2.0.8
1208
+ object.values: 1.2.0
1209
+ prop-types: 15.8.1
1210
+ resolve: 2.0.0-next.5
1211
+ semver: 6.3.1
1212
+ string.prototype.matchall: 4.0.11
1213
+ string.prototype.repeat: 1.0.0
1214
+ dev: false
1215
+
1216
+ /eslint-scope@7.2.2:
1217
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
1218
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1219
+ dependencies:
1220
+ esrecurse: 4.3.0
1221
+ estraverse: 5.3.0
1222
+ dev: false
1223
+
1224
+ /eslint-visitor-keys@3.4.3:
1225
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
1226
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1227
+ dev: false
1228
+
1229
+ /eslint@8.57.1:
1230
+ resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
1231
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1232
+ deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
1233
+ hasBin: true
1234
+ dependencies:
1235
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1)
1236
+ '@eslint-community/regexpp': 4.11.1
1237
+ '@eslint/eslintrc': 2.1.4
1238
+ '@eslint/js': 8.57.1
1239
+ '@humanwhocodes/config-array': 0.13.0
1240
+ '@humanwhocodes/module-importer': 1.0.1
1241
+ '@nodelib/fs.walk': 1.2.8
1242
+ '@ungap/structured-clone': 1.2.0
1243
+ ajv: 6.12.6
1244
+ chalk: 4.1.2
1245
+ cross-spawn: 7.0.3
1246
+ debug: 4.3.7
1247
+ doctrine: 3.0.0
1248
+ escape-string-regexp: 4.0.0
1249
+ eslint-scope: 7.2.2
1250
+ eslint-visitor-keys: 3.4.3
1251
+ espree: 9.6.1
1252
+ esquery: 1.6.0
1253
+ esutils: 2.0.3
1254
+ fast-deep-equal: 3.1.3
1255
+ file-entry-cache: 6.0.1
1256
+ find-up: 5.0.0
1257
+ glob-parent: 6.0.2
1258
+ globals: 13.24.0
1259
+ graphemer: 1.4.0
1260
+ ignore: 5.3.2
1261
+ imurmurhash: 0.1.4
1262
+ is-glob: 4.0.3
1263
+ is-path-inside: 3.0.3
1264
+ js-yaml: 4.1.0
1265
+ json-stable-stringify-without-jsonify: 1.0.1
1266
+ levn: 0.4.1
1267
+ lodash.merge: 4.6.2
1268
+ minimatch: 3.1.2
1269
+ natural-compare: 1.4.0
1270
+ optionator: 0.9.4
1271
+ strip-ansi: 6.0.1
1272
+ text-table: 0.2.0
1273
+ transitivePeerDependencies:
1274
+ - supports-color
1275
+ dev: false
1276
+
1277
+ /espree@9.6.1:
1278
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
1279
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1280
+ dependencies:
1281
+ acorn: 8.13.0
1282
+ acorn-jsx: 5.3.2(acorn@8.13.0)
1283
+ eslint-visitor-keys: 3.4.3
1284
+ dev: false
1285
+
1286
+ /esquery@1.6.0:
1287
+ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
1288
+ engines: {node: '>=0.10'}
1289
+ dependencies:
1290
+ estraverse: 5.3.0
1291
+ dev: false
1292
+
1293
+ /esrecurse@4.3.0:
1294
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1295
+ engines: {node: '>=4.0'}
1296
+ dependencies:
1297
+ estraverse: 5.3.0
1298
+ dev: false
1299
+
1300
+ /estraverse@5.3.0:
1301
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1302
+ engines: {node: '>=4.0'}
1303
+ dev: false
1304
+
1305
+ /esutils@2.0.3:
1306
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1307
+ engines: {node: '>=0.10.0'}
1308
+ dev: false
1309
+
1310
+ /fast-deep-equal@3.1.3:
1311
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1312
+ dev: false
1313
+
1314
+ /fast-glob@3.3.2:
1315
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
1316
+ engines: {node: '>=8.6.0'}
1317
+ dependencies:
1318
+ '@nodelib/fs.stat': 2.0.5
1319
+ '@nodelib/fs.walk': 1.2.8
1320
+ glob-parent: 5.1.2
1321
+ merge2: 1.4.1
1322
+ micromatch: 4.0.8
1323
+ dev: false
1324
+
1325
+ /fast-json-stable-stringify@2.1.0:
1326
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1327
+ dev: false
1328
+
1329
+ /fast-levenshtein@2.0.6:
1330
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1331
+ dev: false
1332
+
1333
+ /fastq@1.17.1:
1334
+ resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
1335
+ dependencies:
1336
+ reusify: 1.0.4
1337
+ dev: false
1338
+
1339
+ /file-entry-cache@6.0.1:
1340
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1341
+ engines: {node: ^10.12.0 || >=12.0.0}
1342
+ dependencies:
1343
+ flat-cache: 3.2.0
1344
+ dev: false
1345
+
1346
+ /fill-range@7.1.1:
1347
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
1348
+ engines: {node: '>=8'}
1349
+ dependencies:
1350
+ to-regex-range: 5.0.1
1351
+ dev: false
1352
+
1353
+ /find-up@5.0.0:
1354
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1355
+ engines: {node: '>=10'}
1356
+ dependencies:
1357
+ locate-path: 6.0.0
1358
+ path-exists: 4.0.0
1359
+ dev: false
1360
+
1361
+ /flat-cache@3.2.0:
1362
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
1363
+ engines: {node: ^10.12.0 || >=12.0.0}
1364
+ dependencies:
1365
+ flatted: 3.3.1
1366
+ keyv: 4.5.4
1367
+ rimraf: 3.0.2
1368
+ dev: false
1369
+
1370
+ /flatted@3.3.1:
1371
+ resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
1372
+ dev: false
1373
+
1374
+ /follow-redirects@1.15.9:
1375
+ resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
1376
+ engines: {node: '>=4.0'}
1377
+ peerDependencies:
1378
+ debug: '*'
1379
+ peerDependenciesMeta:
1380
+ debug:
1381
+ optional: true
1382
+ dev: false
1383
+
1384
+ /for-each@0.3.3:
1385
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
1386
+ dependencies:
1387
+ is-callable: 1.2.7
1388
+ dev: false
1389
+
1390
+ /foreground-child@3.3.0:
1391
+ resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
1392
+ engines: {node: '>=14'}
1393
+ dependencies:
1394
+ cross-spawn: 7.0.3
1395
+ signal-exit: 4.1.0
1396
+ dev: false
1397
+
1398
+ /form-data@4.0.1:
1399
+ resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==}
1400
+ engines: {node: '>= 6'}
1401
+ dependencies:
1402
+ asynckit: 0.4.0
1403
+ combined-stream: 1.0.8
1404
+ mime-types: 2.1.35
1405
+ dev: false
1406
+
1407
+ /fs.realpath@1.0.0:
1408
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1409
+ dev: false
1410
+
1411
+ /function-bind@1.1.2:
1412
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
1413
+ dev: false
1414
+
1415
+ /function.prototype.name@1.1.6:
1416
+ resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
1417
+ engines: {node: '>= 0.4'}
1418
+ dependencies:
1419
+ call-bind: 1.0.7
1420
+ define-properties: 1.2.1
1421
+ es-abstract: 1.23.3
1422
+ functions-have-names: 1.2.3
1423
+ dev: false
1424
+
1425
+ /functions-have-names@1.2.3:
1426
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
1427
+ dev: false
1428
+
1429
+ /get-intrinsic@1.2.4:
1430
+ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
1431
+ engines: {node: '>= 0.4'}
1432
+ dependencies:
1433
+ es-errors: 1.3.0
1434
+ function-bind: 1.1.2
1435
+ has-proto: 1.0.3
1436
+ has-symbols: 1.0.3
1437
+ hasown: 2.0.2
1438
+ dev: false
1439
+
1440
+ /get-symbol-description@1.0.2:
1441
+ resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
1442
+ engines: {node: '>= 0.4'}
1443
+ dependencies:
1444
+ call-bind: 1.0.7
1445
+ es-errors: 1.3.0
1446
+ get-intrinsic: 1.2.4
1447
+ dev: false
1448
+
1449
+ /get-tsconfig@4.8.1:
1450
+ resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==}
1451
+ dependencies:
1452
+ resolve-pkg-maps: 1.0.0
1453
+ dev: false
1454
+
1455
+ /glob-parent@5.1.2:
1456
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1457
+ engines: {node: '>= 6'}
1458
+ dependencies:
1459
+ is-glob: 4.0.3
1460
+ dev: false
1461
+
1462
+ /glob-parent@6.0.2:
1463
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1464
+ engines: {node: '>=10.13.0'}
1465
+ dependencies:
1466
+ is-glob: 4.0.3
1467
+ dev: false
1468
+
1469
+ /glob@10.3.10:
1470
+ resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
1471
+ engines: {node: '>=16 || 14 >=14.17'}
1472
+ hasBin: true
1473
+ dependencies:
1474
+ foreground-child: 3.3.0
1475
+ jackspeak: 2.3.6
1476
+ minimatch: 9.0.3
1477
+ minipass: 7.1.2
1478
+ path-scurry: 1.11.1
1479
+ dev: false
1480
+
1481
+ /glob@7.2.3:
1482
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1483
+ deprecated: Glob versions prior to v9 are no longer supported
1484
+ dependencies:
1485
+ fs.realpath: 1.0.0
1486
+ inflight: 1.0.6
1487
+ inherits: 2.0.4
1488
+ minimatch: 3.1.2
1489
+ once: 1.4.0
1490
+ path-is-absolute: 1.0.1
1491
+ dev: false
1492
+
1493
+ /globals@13.24.0:
1494
+ resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
1495
+ engines: {node: '>=8'}
1496
+ dependencies:
1497
+ type-fest: 0.20.2
1498
+ dev: false
1499
+
1500
+ /globalthis@1.0.4:
1501
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
1502
+ engines: {node: '>= 0.4'}
1503
+ dependencies:
1504
+ define-properties: 1.2.1
1505
+ gopd: 1.0.1
1506
+ dev: false
1507
+
1508
+ /globby@11.1.0:
1509
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1510
+ engines: {node: '>=10'}
1511
+ dependencies:
1512
+ array-union: 2.1.0
1513
+ dir-glob: 3.0.1
1514
+ fast-glob: 3.3.2
1515
+ ignore: 5.3.2
1516
+ merge2: 1.4.1
1517
+ slash: 3.0.0
1518
+ dev: false
1519
+
1520
+ /gopd@1.0.1:
1521
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
1522
+ dependencies:
1523
+ get-intrinsic: 1.2.4
1524
+ dev: false
1525
+
1526
+ /graceful-fs@4.2.11:
1527
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1528
+ dev: false
1529
+
1530
+ /graphemer@1.4.0:
1531
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1532
+ dev: false
1533
+
1534
+ /has-bigints@1.0.2:
1535
+ resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
1536
+ dev: false
1537
+
1538
+ /has-flag@4.0.0:
1539
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1540
+ engines: {node: '>=8'}
1541
+ dev: false
1542
+
1543
+ /has-property-descriptors@1.0.2:
1544
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
1545
+ dependencies:
1546
+ es-define-property: 1.0.0
1547
+ dev: false
1548
+
1549
+ /has-proto@1.0.3:
1550
+ resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
1551
+ engines: {node: '>= 0.4'}
1552
+ dev: false
1553
+
1554
+ /has-symbols@1.0.3:
1555
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
1556
+ engines: {node: '>= 0.4'}
1557
+ dev: false
1558
+
1559
+ /has-tostringtag@1.0.2:
1560
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
1561
+ engines: {node: '>= 0.4'}
1562
+ dependencies:
1563
+ has-symbols: 1.0.3
1564
+ dev: false
1565
+
1566
+ /hasown@2.0.2:
1567
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
1568
+ engines: {node: '>= 0.4'}
1569
+ dependencies:
1570
+ function-bind: 1.1.2
1571
+ dev: false
1572
+
1573
+ /ignore@5.3.2:
1574
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
1575
+ engines: {node: '>= 4'}
1576
+ dev: false
1577
+
1578
+ /import-fresh@3.3.0:
1579
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1580
+ engines: {node: '>=6'}
1581
+ dependencies:
1582
+ parent-module: 1.0.1
1583
+ resolve-from: 4.0.0
1584
+ dev: false
1585
+
1586
+ /imurmurhash@0.1.4:
1587
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1588
+ engines: {node: '>=0.8.19'}
1589
+ dev: false
1590
+
1591
+ /inflight@1.0.6:
1592
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1593
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
1594
+ dependencies:
1595
+ once: 1.4.0
1596
+ wrappy: 1.0.2
1597
+ dev: false
1598
+
1599
+ /inherits@2.0.4:
1600
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1601
+ dev: false
1602
+
1603
+ /internal-slot@1.0.7:
1604
+ resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
1605
+ engines: {node: '>= 0.4'}
1606
+ dependencies:
1607
+ es-errors: 1.3.0
1608
+ hasown: 2.0.2
1609
+ side-channel: 1.0.6
1610
+ dev: false
1611
+
1612
+ /is-arguments@1.1.1:
1613
+ resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
1614
+ engines: {node: '>= 0.4'}
1615
+ dependencies:
1616
+ call-bind: 1.0.7
1617
+ has-tostringtag: 1.0.2
1618
+ dev: false
1619
+
1620
+ /is-array-buffer@3.0.4:
1621
+ resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
1622
+ engines: {node: '>= 0.4'}
1623
+ dependencies:
1624
+ call-bind: 1.0.7
1625
+ get-intrinsic: 1.2.4
1626
+ dev: false
1627
+
1628
+ /is-async-function@2.0.0:
1629
+ resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
1630
+ engines: {node: '>= 0.4'}
1631
+ dependencies:
1632
+ has-tostringtag: 1.0.2
1633
+ dev: false
1634
+
1635
+ /is-bigint@1.0.4:
1636
+ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
1637
+ dependencies:
1638
+ has-bigints: 1.0.2
1639
+ dev: false
1640
+
1641
+ /is-boolean-object@1.1.2:
1642
+ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
1643
+ engines: {node: '>= 0.4'}
1644
+ dependencies:
1645
+ call-bind: 1.0.7
1646
+ has-tostringtag: 1.0.2
1647
+ dev: false
1648
+
1649
+ /is-bun-module@1.2.1:
1650
+ resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==}
1651
+ dependencies:
1652
+ semver: 7.6.3
1653
+ dev: false
1654
+
1655
+ /is-callable@1.2.7:
1656
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
1657
+ engines: {node: '>= 0.4'}
1658
+ dev: false
1659
+
1660
+ /is-core-module@2.15.1:
1661
+ resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
1662
+ engines: {node: '>= 0.4'}
1663
+ dependencies:
1664
+ hasown: 2.0.2
1665
+ dev: false
1666
+
1667
+ /is-data-view@1.0.1:
1668
+ resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
1669
+ engines: {node: '>= 0.4'}
1670
+ dependencies:
1671
+ is-typed-array: 1.1.13
1672
+ dev: false
1673
+
1674
+ /is-date-object@1.0.5:
1675
+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
1676
+ engines: {node: '>= 0.4'}
1677
+ dependencies:
1678
+ has-tostringtag: 1.0.2
1679
+ dev: false
1680
+
1681
+ /is-extglob@2.1.1:
1682
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1683
+ engines: {node: '>=0.10.0'}
1684
+ dev: false
1685
+
1686
+ /is-finalizationregistry@1.0.2:
1687
+ resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
1688
+ dependencies:
1689
+ call-bind: 1.0.7
1690
+ dev: false
1691
+
1692
+ /is-fullwidth-code-point@3.0.0:
1693
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1694
+ engines: {node: '>=8'}
1695
+ dev: false
1696
+
1697
+ /is-generator-function@1.0.10:
1698
+ resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
1699
+ engines: {node: '>= 0.4'}
1700
+ dependencies:
1701
+ has-tostringtag: 1.0.2
1702
+ dev: false
1703
+
1704
+ /is-glob@4.0.3:
1705
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1706
+ engines: {node: '>=0.10.0'}
1707
+ dependencies:
1708
+ is-extglob: 2.1.1
1709
+ dev: false
1710
+
1711
+ /is-map@2.0.3:
1712
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
1713
+ engines: {node: '>= 0.4'}
1714
+ dev: false
1715
+
1716
+ /is-negative-zero@2.0.3:
1717
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
1718
+ engines: {node: '>= 0.4'}
1719
+ dev: false
1720
+
1721
+ /is-number-object@1.0.7:
1722
+ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1723
+ engines: {node: '>= 0.4'}
1724
+ dependencies:
1725
+ has-tostringtag: 1.0.2
1726
+ dev: false
1727
+
1728
+ /is-number@7.0.0:
1729
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1730
+ engines: {node: '>=0.12.0'}
1731
+ dev: false
1732
+
1733
+ /is-path-inside@3.0.3:
1734
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1735
+ engines: {node: '>=8'}
1736
+ dev: false
1737
+
1738
+ /is-regex@1.1.4:
1739
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1740
+ engines: {node: '>= 0.4'}
1741
+ dependencies:
1742
+ call-bind: 1.0.7
1743
+ has-tostringtag: 1.0.2
1744
+ dev: false
1745
+
1746
+ /is-set@2.0.3:
1747
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
1748
+ engines: {node: '>= 0.4'}
1749
+ dev: false
1750
+
1751
+ /is-shared-array-buffer@1.0.3:
1752
+ resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
1753
+ engines: {node: '>= 0.4'}
1754
+ dependencies:
1755
+ call-bind: 1.0.7
1756
+ dev: false
1757
+
1758
+ /is-string@1.0.7:
1759
+ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1760
+ engines: {node: '>= 0.4'}
1761
+ dependencies:
1762
+ has-tostringtag: 1.0.2
1763
+ dev: false
1764
+
1765
+ /is-symbol@1.0.4:
1766
+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1767
+ engines: {node: '>= 0.4'}
1768
+ dependencies:
1769
+ has-symbols: 1.0.3
1770
+ dev: false
1771
+
1772
+ /is-typed-array@1.1.13:
1773
+ resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
1774
+ engines: {node: '>= 0.4'}
1775
+ dependencies:
1776
+ which-typed-array: 1.1.15
1777
+ dev: false
1778
+
1779
+ /is-weakmap@2.0.2:
1780
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
1781
+ engines: {node: '>= 0.4'}
1782
+ dev: false
1783
+
1784
+ /is-weakref@1.0.2:
1785
+ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1786
+ dependencies:
1787
+ call-bind: 1.0.7
1788
+ dev: false
1789
+
1790
+ /is-weakset@2.0.3:
1791
+ resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
1792
+ engines: {node: '>= 0.4'}
1793
+ dependencies:
1794
+ call-bind: 1.0.7
1795
+ get-intrinsic: 1.2.4
1796
+ dev: false
1797
+
1798
+ /isarray@2.0.5:
1799
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
1800
+ dev: false
1801
+
1802
+ /isexe@2.0.0:
1803
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1804
+ dev: false
1805
+
1806
+ /iterator.prototype@1.1.3:
1807
+ resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==}
1808
+ engines: {node: '>= 0.4'}
1809
+ dependencies:
1810
+ define-properties: 1.2.1
1811
+ get-intrinsic: 1.2.4
1812
+ has-symbols: 1.0.3
1813
+ reflect.getprototypeof: 1.0.6
1814
+ set-function-name: 2.0.2
1815
+ dev: false
1816
+
1817
+ /jackspeak@2.3.6:
1818
+ resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
1819
+ engines: {node: '>=14'}
1820
+ dependencies:
1821
+ '@isaacs/cliui': 8.0.2
1822
+ optionalDependencies:
1823
+ '@pkgjs/parseargs': 0.11.0
1824
+ dev: false
1825
+
1826
+ /js-tokens@4.0.0:
1827
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1828
+ dev: false
1829
+
1830
+ /js-yaml@4.1.0:
1831
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1832
+ hasBin: true
1833
+ dependencies:
1834
+ argparse: 2.0.1
1835
+ dev: false
1836
+
1837
+ /json-buffer@3.0.1:
1838
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1839
+ dev: false
1840
+
1841
+ /json-schema-traverse@0.4.1:
1842
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1843
+ dev: false
1844
+
1845
+ /json-stable-stringify-without-jsonify@1.0.1:
1846
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1847
+ dev: false
1848
+
1849
+ /json5@1.0.2:
1850
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
1851
+ hasBin: true
1852
+ dependencies:
1853
+ minimist: 1.2.8
1854
+ dev: false
1855
+
1856
+ /jsx-ast-utils@3.3.5:
1857
+ resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
1858
+ engines: {node: '>=4.0'}
1859
+ dependencies:
1860
+ array-includes: 3.1.8
1861
+ array.prototype.flat: 1.3.2
1862
+ object.assign: 4.1.5
1863
+ object.values: 1.2.0
1864
+ dev: false
1865
+
1866
+ /keyv@4.5.4:
1867
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1868
+ dependencies:
1869
+ json-buffer: 3.0.1
1870
+ dev: false
1871
+
1872
+ /language-subtag-registry@0.3.23:
1873
+ resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
1874
+ dev: false
1875
+
1876
+ /language-tags@1.0.9:
1877
+ resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
1878
+ engines: {node: '>=0.10'}
1879
+ dependencies:
1880
+ language-subtag-registry: 0.3.23
1881
+ dev: false
1882
+
1883
+ /levn@0.4.1:
1884
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1885
+ engines: {node: '>= 0.8.0'}
1886
+ dependencies:
1887
+ prelude-ls: 1.2.1
1888
+ type-check: 0.4.0
1889
+ dev: false
1890
+
1891
+ /locate-path@6.0.0:
1892
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1893
+ engines: {node: '>=10'}
1894
+ dependencies:
1895
+ p-locate: 5.0.0
1896
+ dev: false
1897
+
1898
+ /lodash.merge@4.6.2:
1899
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1900
+ dev: false
1901
+
1902
+ /loose-envify@1.4.0:
1903
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1904
+ hasBin: true
1905
+ dependencies:
1906
+ js-tokens: 4.0.0
1907
+ dev: false
1908
+
1909
+ /lru-cache@10.4.3:
1910
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
1911
+ dev: false
1912
+
1913
+ /merge2@1.4.1:
1914
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1915
+ engines: {node: '>= 8'}
1916
+ dev: false
1917
+
1918
+ /micromatch@4.0.8:
1919
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1920
+ engines: {node: '>=8.6'}
1921
+ dependencies:
1922
+ braces: 3.0.3
1923
+ picomatch: 2.3.1
1924
+ dev: false
1925
+
1926
+ /mime-db@1.52.0:
1927
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
1928
+ engines: {node: '>= 0.6'}
1929
+ dev: false
1930
+
1931
+ /mime-types@2.1.35:
1932
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
1933
+ engines: {node: '>= 0.6'}
1934
+ dependencies:
1935
+ mime-db: 1.52.0
1936
+ dev: false
1937
+
1938
+ /minimatch@3.1.2:
1939
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1940
+ dependencies:
1941
+ brace-expansion: 1.1.11
1942
+ dev: false
1943
+
1944
+ /minimatch@9.0.3:
1945
+ resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
1946
+ engines: {node: '>=16 || 14 >=14.17'}
1947
+ dependencies:
1948
+ brace-expansion: 2.0.1
1949
+ dev: false
1950
+
1951
+ /minimatch@9.0.5:
1952
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1953
+ engines: {node: '>=16 || 14 >=14.17'}
1954
+ dependencies:
1955
+ brace-expansion: 2.0.1
1956
+ dev: false
1957
+
1958
+ /minimist@1.2.8:
1959
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
1960
+ dev: false
1961
+
1962
+ /minipass@7.1.2:
1963
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
1964
+ engines: {node: '>=16 || 14 >=14.17'}
1965
+ dev: false
1966
+
1967
+ /ms@2.1.3:
1968
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1969
+ dev: false
1970
+
1971
+ /nanoid@3.3.7:
1972
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
1973
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1974
+ hasBin: true
1975
+ dev: false
1976
+
1977
+ /natural-compare@1.4.0:
1978
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1979
+ dev: false
1980
+
1981
+ /next@14.2.15(react-dom@18.2.0)(react@18.2.0):
1982
+ resolution: {integrity: sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==}
1983
+ engines: {node: '>=18.17.0'}
1984
+ hasBin: true
1985
+ peerDependencies:
1986
+ '@opentelemetry/api': ^1.1.0
1987
+ '@playwright/test': ^1.41.2
1988
+ react: ^18.2.0
1989
+ react-dom: ^18.2.0
1990
+ sass: ^1.3.0
1991
+ peerDependenciesMeta:
1992
+ '@opentelemetry/api':
1993
+ optional: true
1994
+ '@playwright/test':
1995
+ optional: true
1996
+ sass:
1997
+ optional: true
1998
+ dependencies:
1999
+ '@next/env': 14.2.15
2000
+ '@swc/helpers': 0.5.5
2001
+ busboy: 1.6.0
2002
+ caniuse-lite: 1.0.30001669
2003
+ graceful-fs: 4.2.11
2004
+ postcss: 8.4.31
2005
+ react: 18.2.0
2006
+ react-dom: 18.2.0(react@18.2.0)
2007
+ styled-jsx: 5.1.1(react@18.2.0)
2008
+ optionalDependencies:
2009
+ '@next/swc-darwin-arm64': 14.2.15
2010
+ '@next/swc-darwin-x64': 14.2.15
2011
+ '@next/swc-linux-arm64-gnu': 14.2.15
2012
+ '@next/swc-linux-arm64-musl': 14.2.15
2013
+ '@next/swc-linux-x64-gnu': 14.2.15
2014
+ '@next/swc-linux-x64-musl': 14.2.15
2015
+ '@next/swc-win32-arm64-msvc': 14.2.15
2016
+ '@next/swc-win32-ia32-msvc': 14.2.15
2017
+ '@next/swc-win32-x64-msvc': 14.2.15
2018
+ transitivePeerDependencies:
2019
+ - '@babel/core'
2020
+ - babel-plugin-macros
2021
+ dev: false
2022
+
2023
+ /object-assign@4.1.1:
2024
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
2025
+ engines: {node: '>=0.10.0'}
2026
+ dev: false
2027
+
2028
+ /object-inspect@1.13.2:
2029
+ resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
2030
+ engines: {node: '>= 0.4'}
2031
+ dev: false
2032
+
2033
+ /object-is@1.1.6:
2034
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
2035
+ engines: {node: '>= 0.4'}
2036
+ dependencies:
2037
+ call-bind: 1.0.7
2038
+ define-properties: 1.2.1
2039
+ dev: false
2040
+
2041
+ /object-keys@1.1.1:
2042
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
2043
+ engines: {node: '>= 0.4'}
2044
+ dev: false
2045
+
2046
+ /object.assign@4.1.5:
2047
+ resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
2048
+ engines: {node: '>= 0.4'}
2049
+ dependencies:
2050
+ call-bind: 1.0.7
2051
+ define-properties: 1.2.1
2052
+ has-symbols: 1.0.3
2053
+ object-keys: 1.1.1
2054
+ dev: false
2055
+
2056
+ /object.entries@1.1.8:
2057
+ resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
2058
+ engines: {node: '>= 0.4'}
2059
+ dependencies:
2060
+ call-bind: 1.0.7
2061
+ define-properties: 1.2.1
2062
+ es-object-atoms: 1.0.0
2063
+ dev: false
2064
+
2065
+ /object.fromentries@2.0.8:
2066
+ resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
2067
+ engines: {node: '>= 0.4'}
2068
+ dependencies:
2069
+ call-bind: 1.0.7
2070
+ define-properties: 1.2.1
2071
+ es-abstract: 1.23.3
2072
+ es-object-atoms: 1.0.0
2073
+ dev: false
2074
+
2075
+ /object.groupby@1.0.3:
2076
+ resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
2077
+ engines: {node: '>= 0.4'}
2078
+ dependencies:
2079
+ call-bind: 1.0.7
2080
+ define-properties: 1.2.1
2081
+ es-abstract: 1.23.3
2082
+ dev: false
2083
+
2084
+ /object.values@1.2.0:
2085
+ resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
2086
+ engines: {node: '>= 0.4'}
2087
+ dependencies:
2088
+ call-bind: 1.0.7
2089
+ define-properties: 1.2.1
2090
+ es-object-atoms: 1.0.0
2091
+ dev: false
2092
+
2093
+ /once@1.4.0:
2094
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
2095
+ dependencies:
2096
+ wrappy: 1.0.2
2097
+ dev: false
2098
+
2099
+ /optionator@0.9.4:
2100
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
2101
+ engines: {node: '>= 0.8.0'}
2102
+ dependencies:
2103
+ deep-is: 0.1.4
2104
+ fast-levenshtein: 2.0.6
2105
+ levn: 0.4.1
2106
+ prelude-ls: 1.2.1
2107
+ type-check: 0.4.0
2108
+ word-wrap: 1.2.5
2109
+ dev: false
2110
+
2111
+ /p-limit@3.1.0:
2112
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
2113
+ engines: {node: '>=10'}
2114
+ dependencies:
2115
+ yocto-queue: 0.1.0
2116
+ dev: false
2117
+
2118
+ /p-locate@5.0.0:
2119
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
2120
+ engines: {node: '>=10'}
2121
+ dependencies:
2122
+ p-limit: 3.1.0
2123
+ dev: false
2124
+
2125
+ /parent-module@1.0.1:
2126
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
2127
+ engines: {node: '>=6'}
2128
+ dependencies:
2129
+ callsites: 3.1.0
2130
+ dev: false
2131
+
2132
+ /path-exists@4.0.0:
2133
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
2134
+ engines: {node: '>=8'}
2135
+ dev: false
2136
+
2137
+ /path-is-absolute@1.0.1:
2138
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
2139
+ engines: {node: '>=0.10.0'}
2140
+ dev: false
2141
+
2142
+ /path-key@3.1.1:
2143
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
2144
+ engines: {node: '>=8'}
2145
+ dev: false
2146
+
2147
+ /path-parse@1.0.7:
2148
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
2149
+ dev: false
2150
+
2151
+ /path-scurry@1.11.1:
2152
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
2153
+ engines: {node: '>=16 || 14 >=14.18'}
2154
+ dependencies:
2155
+ lru-cache: 10.4.3
2156
+ minipass: 7.1.2
2157
+ dev: false
2158
+
2159
+ /path-type@4.0.0:
2160
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
2161
+ engines: {node: '>=8'}
2162
+ dev: false
2163
+
2164
+ /picocolors@1.1.1:
2165
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
2166
+ dev: false
2167
+
2168
+ /picomatch@2.3.1:
2169
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
2170
+ engines: {node: '>=8.6'}
2171
+ dev: false
2172
+
2173
+ /possible-typed-array-names@1.0.0:
2174
+ resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
2175
+ engines: {node: '>= 0.4'}
2176
+ dev: false
2177
+
2178
+ /postcss@8.4.31:
2179
+ resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
2180
+ engines: {node: ^10 || ^12 || >=14}
2181
+ dependencies:
2182
+ nanoid: 3.3.7
2183
+ picocolors: 1.1.1
2184
+ source-map-js: 1.2.1
2185
+ dev: false
2186
+
2187
+ /prelude-ls@1.2.1:
2188
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
2189
+ engines: {node: '>= 0.8.0'}
2190
+ dev: false
2191
+
2192
+ /prop-types@15.8.1:
2193
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
2194
+ dependencies:
2195
+ loose-envify: 1.4.0
2196
+ object-assign: 4.1.1
2197
+ react-is: 16.13.1
2198
+ dev: false
2199
+
2200
+ /proxy-from-env@1.1.0:
2201
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
2202
+ dev: false
2203
+
2204
+ /punycode@2.3.1:
2205
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
2206
+ engines: {node: '>=6'}
2207
+ dev: false
2208
+
2209
+ /queue-microtask@1.2.3:
2210
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
2211
+ dev: false
2212
+
2213
+ /react-dom@18.2.0(react@18.2.0):
2214
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
2215
+ peerDependencies:
2216
+ react: ^18.2.0
2217
+ dependencies:
2218
+ loose-envify: 1.4.0
2219
+ react: 18.2.0
2220
+ scheduler: 0.23.2
2221
+ dev: false
2222
+
2223
+ /react-icons@4.12.0(react@18.2.0):
2224
+ resolution: {integrity: sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==}
2225
+ peerDependencies:
2226
+ react: '*'
2227
+ dependencies:
2228
+ react: 18.2.0
2229
+ dev: false
2230
+
2231
+ /react-is@16.13.1:
2232
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
2233
+ dev: false
2234
+
2235
+ /react@18.2.0:
2236
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
2237
+ engines: {node: '>=0.10.0'}
2238
+ dependencies:
2239
+ loose-envify: 1.4.0
2240
+ dev: false
2241
+
2242
+ /reflect.getprototypeof@1.0.6:
2243
+ resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
2244
+ engines: {node: '>= 0.4'}
2245
+ dependencies:
2246
+ call-bind: 1.0.7
2247
+ define-properties: 1.2.1
2248
+ es-abstract: 1.23.3
2249
+ es-errors: 1.3.0
2250
+ get-intrinsic: 1.2.4
2251
+ globalthis: 1.0.4
2252
+ which-builtin-type: 1.1.4
2253
+ dev: false
2254
+
2255
+ /regexp.prototype.flags@1.5.3:
2256
+ resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==}
2257
+ engines: {node: '>= 0.4'}
2258
+ dependencies:
2259
+ call-bind: 1.0.7
2260
+ define-properties: 1.2.1
2261
+ es-errors: 1.3.0
2262
+ set-function-name: 2.0.2
2263
+ dev: false
2264
+
2265
+ /resolve-from@4.0.0:
2266
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
2267
+ engines: {node: '>=4'}
2268
+ dev: false
2269
+
2270
+ /resolve-pkg-maps@1.0.0:
2271
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
2272
+ dev: false
2273
+
2274
+ /resolve@1.22.8:
2275
+ resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
2276
+ hasBin: true
2277
+ dependencies:
2278
+ is-core-module: 2.15.1
2279
+ path-parse: 1.0.7
2280
+ supports-preserve-symlinks-flag: 1.0.0
2281
+ dev: false
2282
+
2283
+ /resolve@2.0.0-next.5:
2284
+ resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
2285
+ hasBin: true
2286
+ dependencies:
2287
+ is-core-module: 2.15.1
2288
+ path-parse: 1.0.7
2289
+ supports-preserve-symlinks-flag: 1.0.0
2290
+ dev: false
2291
+
2292
+ /reusify@1.0.4:
2293
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
2294
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
2295
+ dev: false
2296
+
2297
+ /rimraf@3.0.2:
2298
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
2299
+ deprecated: Rimraf versions prior to v4 are no longer supported
2300
+ hasBin: true
2301
+ dependencies:
2302
+ glob: 7.2.3
2303
+ dev: false
2304
+
2305
+ /run-parallel@1.2.0:
2306
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2307
+ dependencies:
2308
+ queue-microtask: 1.2.3
2309
+ dev: false
2310
+
2311
+ /safe-array-concat@1.1.2:
2312
+ resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
2313
+ engines: {node: '>=0.4'}
2314
+ dependencies:
2315
+ call-bind: 1.0.7
2316
+ get-intrinsic: 1.2.4
2317
+ has-symbols: 1.0.3
2318
+ isarray: 2.0.5
2319
+ dev: false
2320
+
2321
+ /safe-regex-test@1.0.3:
2322
+ resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
2323
+ engines: {node: '>= 0.4'}
2324
+ dependencies:
2325
+ call-bind: 1.0.7
2326
+ es-errors: 1.3.0
2327
+ is-regex: 1.1.4
2328
+ dev: false
2329
+
2330
+ /scheduler@0.23.2:
2331
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
2332
+ dependencies:
2333
+ loose-envify: 1.4.0
2334
+ dev: false
2335
+
2336
+ /semver@6.3.1:
2337
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
2338
+ hasBin: true
2339
+ dev: false
2340
+
2341
+ /semver@7.6.3:
2342
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
2343
+ engines: {node: '>=10'}
2344
+ hasBin: true
2345
+ dev: false
2346
+
2347
+ /set-function-length@1.2.2:
2348
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
2349
+ engines: {node: '>= 0.4'}
2350
+ dependencies:
2351
+ define-data-property: 1.1.4
2352
+ es-errors: 1.3.0
2353
+ function-bind: 1.1.2
2354
+ get-intrinsic: 1.2.4
2355
+ gopd: 1.0.1
2356
+ has-property-descriptors: 1.0.2
2357
+ dev: false
2358
+
2359
+ /set-function-name@2.0.2:
2360
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
2361
+ engines: {node: '>= 0.4'}
2362
+ dependencies:
2363
+ define-data-property: 1.1.4
2364
+ es-errors: 1.3.0
2365
+ functions-have-names: 1.2.3
2366
+ has-property-descriptors: 1.0.2
2367
+ dev: false
2368
+
2369
+ /shebang-command@2.0.0:
2370
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
2371
+ engines: {node: '>=8'}
2372
+ dependencies:
2373
+ shebang-regex: 3.0.0
2374
+ dev: false
2375
+
2376
+ /shebang-regex@3.0.0:
2377
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
2378
+ engines: {node: '>=8'}
2379
+ dev: false
2380
+
2381
+ /side-channel@1.0.6:
2382
+ resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
2383
+ engines: {node: '>= 0.4'}
2384
+ dependencies:
2385
+ call-bind: 1.0.7
2386
+ es-errors: 1.3.0
2387
+ get-intrinsic: 1.2.4
2388
+ object-inspect: 1.13.2
2389
+ dev: false
2390
+
2391
+ /signal-exit@4.1.0:
2392
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
2393
+ engines: {node: '>=14'}
2394
+ dev: false
2395
+
2396
+ /slash@3.0.0:
2397
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
2398
+ engines: {node: '>=8'}
2399
+ dev: false
2400
+
2401
+ /source-map-js@1.2.1:
2402
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
2403
+ engines: {node: '>=0.10.0'}
2404
+ dev: false
2405
+
2406
+ /stop-iteration-iterator@1.0.0:
2407
+ resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
2408
+ engines: {node: '>= 0.4'}
2409
+ dependencies:
2410
+ internal-slot: 1.0.7
2411
+ dev: false
2412
+
2413
+ /streamsearch@1.1.0:
2414
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
2415
+ engines: {node: '>=10.0.0'}
2416
+ dev: false
2417
+
2418
+ /string-width@4.2.3:
2419
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
2420
+ engines: {node: '>=8'}
2421
+ dependencies:
2422
+ emoji-regex: 8.0.0
2423
+ is-fullwidth-code-point: 3.0.0
2424
+ strip-ansi: 6.0.1
2425
+ dev: false
2426
+
2427
+ /string-width@5.1.2:
2428
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
2429
+ engines: {node: '>=12'}
2430
+ dependencies:
2431
+ eastasianwidth: 0.2.0
2432
+ emoji-regex: 9.2.2
2433
+ strip-ansi: 7.1.0
2434
+ dev: false
2435
+
2436
+ /string.prototype.includes@2.0.1:
2437
+ resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
2438
+ engines: {node: '>= 0.4'}
2439
+ dependencies:
2440
+ call-bind: 1.0.7
2441
+ define-properties: 1.2.1
2442
+ es-abstract: 1.23.3
2443
+ dev: false
2444
+
2445
+ /string.prototype.matchall@4.0.11:
2446
+ resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
2447
+ engines: {node: '>= 0.4'}
2448
+ dependencies:
2449
+ call-bind: 1.0.7
2450
+ define-properties: 1.2.1
2451
+ es-abstract: 1.23.3
2452
+ es-errors: 1.3.0
2453
+ es-object-atoms: 1.0.0
2454
+ get-intrinsic: 1.2.4
2455
+ gopd: 1.0.1
2456
+ has-symbols: 1.0.3
2457
+ internal-slot: 1.0.7
2458
+ regexp.prototype.flags: 1.5.3
2459
+ set-function-name: 2.0.2
2460
+ side-channel: 1.0.6
2461
+ dev: false
2462
+
2463
+ /string.prototype.repeat@1.0.0:
2464
+ resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
2465
+ dependencies:
2466
+ define-properties: 1.2.1
2467
+ es-abstract: 1.23.3
2468
+ dev: false
2469
+
2470
+ /string.prototype.trim@1.2.9:
2471
+ resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
2472
+ engines: {node: '>= 0.4'}
2473
+ dependencies:
2474
+ call-bind: 1.0.7
2475
+ define-properties: 1.2.1
2476
+ es-abstract: 1.23.3
2477
+ es-object-atoms: 1.0.0
2478
+ dev: false
2479
+
2480
+ /string.prototype.trimend@1.0.8:
2481
+ resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
2482
+ dependencies:
2483
+ call-bind: 1.0.7
2484
+ define-properties: 1.2.1
2485
+ es-object-atoms: 1.0.0
2486
+ dev: false
2487
+
2488
+ /string.prototype.trimstart@1.0.8:
2489
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
2490
+ engines: {node: '>= 0.4'}
2491
+ dependencies:
2492
+ call-bind: 1.0.7
2493
+ define-properties: 1.2.1
2494
+ es-object-atoms: 1.0.0
2495
+ dev: false
2496
+
2497
+ /strip-ansi@6.0.1:
2498
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
2499
+ engines: {node: '>=8'}
2500
+ dependencies:
2501
+ ansi-regex: 5.0.1
2502
+ dev: false
2503
+
2504
+ /strip-ansi@7.1.0:
2505
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
2506
+ engines: {node: '>=12'}
2507
+ dependencies:
2508
+ ansi-regex: 6.1.0
2509
+ dev: false
2510
+
2511
+ /strip-bom@3.0.0:
2512
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
2513
+ engines: {node: '>=4'}
2514
+ dev: false
2515
+
2516
+ /strip-json-comments@3.1.1:
2517
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
2518
+ engines: {node: '>=8'}
2519
+ dev: false
2520
+
2521
+ /styled-jsx@5.1.1(react@18.2.0):
2522
+ resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
2523
+ engines: {node: '>= 12.0.0'}
2524
+ peerDependencies:
2525
+ '@babel/core': '*'
2526
+ babel-plugin-macros: '*'
2527
+ react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
2528
+ peerDependenciesMeta:
2529
+ '@babel/core':
2530
+ optional: true
2531
+ babel-plugin-macros:
2532
+ optional: true
2533
+ dependencies:
2534
+ client-only: 0.0.1
2535
+ react: 18.2.0
2536
+ dev: false
2537
+
2538
+ /supports-color@7.2.0:
2539
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
2540
+ engines: {node: '>=8'}
2541
+ dependencies:
2542
+ has-flag: 4.0.0
2543
+ dev: false
2544
+
2545
+ /supports-preserve-symlinks-flag@1.0.0:
2546
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
2547
+ engines: {node: '>= 0.4'}
2548
+ dev: false
2549
+
2550
+ /tapable@2.2.1:
2551
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
2552
+ engines: {node: '>=6'}
2553
+ dev: false
2554
+
2555
+ /text-table@0.2.0:
2556
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
2557
+ dev: false
2558
+
2559
+ /to-regex-range@5.0.1:
2560
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2561
+ engines: {node: '>=8.0'}
2562
+ dependencies:
2563
+ is-number: 7.0.0
2564
+ dev: false
2565
+
2566
+ /ts-api-utils@1.3.0(typescript@5.6.3):
2567
+ resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
2568
+ engines: {node: '>=16'}
2569
+ peerDependencies:
2570
+ typescript: '>=4.2.0'
2571
+ dependencies:
2572
+ typescript: 5.6.3
2573
+ dev: false
2574
+
2575
+ /tsconfig-paths@3.15.0:
2576
+ resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
2577
+ dependencies:
2578
+ '@types/json5': 0.0.29
2579
+ json5: 1.0.2
2580
+ minimist: 1.2.8
2581
+ strip-bom: 3.0.0
2582
+ dev: false
2583
+
2584
+ /tslib@2.8.0:
2585
+ resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==}
2586
+ dev: false
2587
+
2588
+ /type-check@0.4.0:
2589
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
2590
+ engines: {node: '>= 0.8.0'}
2591
+ dependencies:
2592
+ prelude-ls: 1.2.1
2593
+ dev: false
2594
+
2595
+ /type-fest@0.20.2:
2596
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
2597
+ engines: {node: '>=10'}
2598
+ dev: false
2599
+
2600
+ /typed-array-buffer@1.0.2:
2601
+ resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
2602
+ engines: {node: '>= 0.4'}
2603
+ dependencies:
2604
+ call-bind: 1.0.7
2605
+ es-errors: 1.3.0
2606
+ is-typed-array: 1.1.13
2607
+ dev: false
2608
+
2609
+ /typed-array-byte-length@1.0.1:
2610
+ resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
2611
+ engines: {node: '>= 0.4'}
2612
+ dependencies:
2613
+ call-bind: 1.0.7
2614
+ for-each: 0.3.3
2615
+ gopd: 1.0.1
2616
+ has-proto: 1.0.3
2617
+ is-typed-array: 1.1.13
2618
+ dev: false
2619
+
2620
+ /typed-array-byte-offset@1.0.2:
2621
+ resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
2622
+ engines: {node: '>= 0.4'}
2623
+ dependencies:
2624
+ available-typed-arrays: 1.0.7
2625
+ call-bind: 1.0.7
2626
+ for-each: 0.3.3
2627
+ gopd: 1.0.1
2628
+ has-proto: 1.0.3
2629
+ is-typed-array: 1.1.13
2630
+ dev: false
2631
+
2632
+ /typed-array-length@1.0.6:
2633
+ resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
2634
+ engines: {node: '>= 0.4'}
2635
+ dependencies:
2636
+ call-bind: 1.0.7
2637
+ for-each: 0.3.3
2638
+ gopd: 1.0.1
2639
+ has-proto: 1.0.3
2640
+ is-typed-array: 1.1.13
2641
+ possible-typed-array-names: 1.0.0
2642
+ dev: false
2643
+
2644
+ /typescript@5.6.3:
2645
+ resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
2646
+ engines: {node: '>=14.17'}
2647
+ hasBin: true
2648
+ dev: false
2649
+
2650
+ /unbox-primitive@1.0.2:
2651
+ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
2652
+ dependencies:
2653
+ call-bind: 1.0.7
2654
+ has-bigints: 1.0.2
2655
+ has-symbols: 1.0.3
2656
+ which-boxed-primitive: 1.0.2
2657
+ dev: false
2658
+
2659
+ /undici-types@6.19.8:
2660
+ resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
2661
+ dev: true
2662
+
2663
+ /uri-js@4.4.1:
2664
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
2665
+ dependencies:
2666
+ punycode: 2.3.1
2667
+ dev: false
2668
+
2669
+ /which-boxed-primitive@1.0.2:
2670
+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
2671
+ dependencies:
2672
+ is-bigint: 1.0.4
2673
+ is-boolean-object: 1.1.2
2674
+ is-number-object: 1.0.7
2675
+ is-string: 1.0.7
2676
+ is-symbol: 1.0.4
2677
+ dev: false
2678
+
2679
+ /which-builtin-type@1.1.4:
2680
+ resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==}
2681
+ engines: {node: '>= 0.4'}
2682
+ dependencies:
2683
+ function.prototype.name: 1.1.6
2684
+ has-tostringtag: 1.0.2
2685
+ is-async-function: 2.0.0
2686
+ is-date-object: 1.0.5
2687
+ is-finalizationregistry: 1.0.2
2688
+ is-generator-function: 1.0.10
2689
+ is-regex: 1.1.4
2690
+ is-weakref: 1.0.2
2691
+ isarray: 2.0.5
2692
+ which-boxed-primitive: 1.0.2
2693
+ which-collection: 1.0.2
2694
+ which-typed-array: 1.1.15
2695
+ dev: false
2696
+
2697
+ /which-collection@1.0.2:
2698
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
2699
+ engines: {node: '>= 0.4'}
2700
+ dependencies:
2701
+ is-map: 2.0.3
2702
+ is-set: 2.0.3
2703
+ is-weakmap: 2.0.2
2704
+ is-weakset: 2.0.3
2705
+ dev: false
2706
+
2707
+ /which-typed-array@1.1.15:
2708
+ resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
2709
+ engines: {node: '>= 0.4'}
2710
+ dependencies:
2711
+ available-typed-arrays: 1.0.7
2712
+ call-bind: 1.0.7
2713
+ for-each: 0.3.3
2714
+ gopd: 1.0.1
2715
+ has-tostringtag: 1.0.2
2716
+ dev: false
2717
+
2718
+ /which@2.0.2:
2719
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
2720
+ engines: {node: '>= 8'}
2721
+ hasBin: true
2722
+ dependencies:
2723
+ isexe: 2.0.0
2724
+ dev: false
2725
+
2726
+ /word-wrap@1.2.5:
2727
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
2728
+ engines: {node: '>=0.10.0'}
2729
+ dev: false
2730
+
2731
+ /wrap-ansi@7.0.0:
2732
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
2733
+ engines: {node: '>=10'}
2734
+ dependencies:
2735
+ ansi-styles: 4.3.0
2736
+ string-width: 4.2.3
2737
+ strip-ansi: 6.0.1
2738
+ dev: false
2739
+
2740
+ /wrap-ansi@8.1.0:
2741
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
2742
+ engines: {node: '>=12'}
2743
+ dependencies:
2744
+ ansi-styles: 6.2.1
2745
+ string-width: 5.1.2
2746
+ strip-ansi: 7.1.0
2747
+ dev: false
2748
+
2749
+ /wrappy@1.0.2:
2750
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
2751
+ dev: false
2752
+
2753
+ /yocto-queue@0.1.0:
2754
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
2755
+ engines: {node: '>=10'}
2756
+ dev: false
public/debian-openlogo.svg
new
+39
@@ -0,0 +1,39 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- Generator: Adobe Illustrator 10.0, SVG Export Plug-In . SVG Version: 3.0.0 Build 77) -->
3
+<svg xmlns:x="http://ns.adobe.com/Extensibility/1.0/" xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/" xmlns:graph="http://ns.adobe.com/Graphs/1.0/" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" i:viewOrigin="251 467" i:rulerOrigin="0 0" i:pageBounds="0 792 612 0" width="108.758" height="144.133" viewBox="0 0 108.758 144.133" overflow="visible" enable-background="new 0 0 108.758 144.133" xml:space="preserve">
4
+ <metadata>
5
+ <variableSets xmlns="http://ns.adobe.com/Variables/1.0/">
6
+ <variableSet varSetName="binding1" locked="none">
7
+ <variables/>
8
+ <v:sampleDataSets xmlns="http://ns.adobe.com/GenericCustomNamespace/1.0/" xmlns:v="http://ns.adobe.com/Variables/1.0/"/>
9
+ </variableSet>
10
+ </variableSets>
11
+ <sfw xmlns="http://ns.adobe.com/SaveForWeb/1.0/">
12
+ <slices/>
13
+ <sliceSourceBounds y="322.867" x="251" width="108.758" height="144.133" bottomLeftOrigin="true"/>
14
+ </sfw>
15
+ </metadata>
16
+ <g id="Layer_1" i:layer="yes" i:dimmedPercent="50" i:rgbTrio="#4F008000FFFF">
17
+ <g>
18
+ <path i:knockout="Off" fill="#A80030" d="M60.969,47.645c-1.494,0.02,0.281,0.768,2.232,1.069 c0.541-0.422,1.027-0.846,1.463-1.26C63.451,47.751,62.215,47.758,60.969,47.645"/>
19
+ <path i:knockout="Off" fill="#A80030" d="M68.986,45.646c0.893-1.229,1.541-2.573,1.77-3.963 c-0.201,0.99-0.736,1.845-1.244,2.749c-2.793,1.759-0.264-1.044-0.002-2.111C66.508,46.104,69.096,44.589,68.986,45.646"/>
20
+ <path i:knockout="Off" fill="#A80030" d="M71.949,37.942c0.182-2.691-0.529-1.839-0.768-0.814 C71.459,37.274,71.68,39.026,71.949,37.942"/>
21
+ <path i:knockout="Off" fill="#A80030" d="M55.301,1.163c0.798,0.142,1.724,0.252,1.591,0.443 C57.768,1.413,57.965,1.239,55.301,1.163"/>
22
+ <path i:knockout="Off" fill="#A80030" d="M56.893,1.606l-0.561,0.117l0.523-0.048L56.893,1.606"/>
23
+ <path i:knockout="Off" fill="#A80030" d="M81.762,38.962c0.09,2.416-0.705,3.59-1.424,5.666l-1.293,0.643 c-1.057,2.054,0.105,1.304-0.652,2.937c-1.652,1.467-5.006,4.589-6.08,4.875c-0.785-0.017,0.531-0.926,0.703-1.281 c-2.209,1.516-1.773,2.276-5.152,3.199l-0.098-0.221c-8.33,3.92-19.902-3.847-19.75-14.443c-0.088,0.672-0.253,0.504-0.437,0.774 c-0.43-5.451,2.518-10.926,7.49-13.165c4.863-2.406,10.564-1.42,14.045,1.829c-1.912-2.506-5.721-5.163-10.232-4.917 c-4.421,0.072-8.558,2.881-9.938,5.932c-2.264,1.425-2.528,5.496-3.514,6.242c-1.329,9.76,2.497,13.975,8.97,18.936 c1.016,0.686,0.286,0.791,0.422,1.313c-2.15-1.006-4.118-2.526-5.738-4.387c0.86,1.257,1.787,2.479,2.986,3.439 c-2.029-0.685-4.738-4.913-5.527-5.085c3.495,6.258,14.178,10.975,19.775,8.634c-2.59,0.096-5.879,0.053-8.787-1.022 c-1.225-0.629-2.884-1.93-2.587-2.173c7.636,2.851,15.522,2.158,22.128-3.137c1.682-1.31,3.518-3.537,4.049-3.567 c-0.799,1.202,0.137,0.578-0.477,1.639c1.672-2.701-0.729-1.1,1.73-4.664l0.908,1.25c-0.34-2.244,2.785-4.966,2.467-8.512 c0.717-1.084,0.799,1.168,0.039,3.662c1.055-2.767,0.279-3.212,0.549-5.496c0.291,0.768,0.678,1.583,0.875,2.394 c-0.688-2.675,0.703-4.503,1.049-6.058c-0.342-0.15-1.061,1.182-1.227-1.976c0.025-1.372,0.383-0.719,0.52-1.057 c-0.268-0.155-0.975-1.207-1.404-3.224c0.309-0.475,0.832,1.229,1.256,1.298c-0.273-1.603-0.742-2.826-0.762-4.057 c-1.24-2.59-0.439,0.346-1.443-1.112c-1.32-4.114,1.094-0.955,1.258-2.823c1.998,2.895,3.137,7.385,3.662,9.244 c-0.4-2.267-1.045-4.464-1.834-6.589c0.609,0.257-0.979-4.663,0.791-1.405c-1.889-6.945-8.078-13.435-13.773-16.479 c0.695,0.637,1.574,1.437,1.26,1.563c-2.834-1.685-2.336-1.818-2.742-2.53c-2.305-0.939-2.459,0.077-3.984,0.002 c-4.35-2.308-5.188-2.063-9.191-3.507l0.182,0.852c-2.881-0.96-3.357,0.362-6.47,0.002c-0.189-0.147,0.998-0.536,1.976-0.677 c-2.786,0.368-2.656-0.55-5.382,0.101c0.671-0.471,1.383-0.784,2.099-1.184c-2.271,0.138-5.424,1.322-4.451,0.244 c-3.705,1.654-10.286,3.975-13.979,7.438l-0.116-0.776c-1.692,2.031-7.379,6.066-7.832,8.699l-0.453,0.105 c-0.879,1.491-1.45,3.18-2.148,4.713c-1.151,1.963-1.688,0.756-1.524,1.064c-2.265,4.592-3.392,8.45-4.363,11.616 c0.692,1.035,0.017,6.232,0.278,10.391c-1.136,20.544,14.418,40.489,31.42,45.093c2.492,0.893,6.197,0.861,9.349,0.949 c-3.718-1.064-4.198-0.563-7.822-1.826c-2.613-1.232-3.185-2.637-5.037-4.244l0.733,1.295c-3.63-1.285-2.111-1.59-5.065-2.525 l0.783-1.021c-1.177-0.09-3.117-1.982-3.647-3.033l-1.288,0.051c-1.546-1.906-2.371-3.283-2.31-4.35l-0.416,0.742 c-0.471-0.809-5.691-7.158-2.983-5.68c-0.503-0.458-1.172-0.747-1.897-2.066l0.551-0.629c-1.301-1.677-2.398-3.826-2.314-4.542 c0.695,0.938,1.177,1.114,1.655,1.275c-3.291-8.164-3.476-0.449-5.967-8.31l0.526-0.042c-0.403-0.611-0.65-1.27-0.974-1.919 l0.23-2.285c-2.368-2.736-0.662-11.645-0.319-16.53c0.235-1.986,1.977-4.101,3.3-7.418l-0.806-0.138 c1.542-2.688,8.802-10.799,12.166-10.383c1.629-2.046-0.324-0.008-0.643-0.522c3.579-3.703,4.704-2.616,7.119-3.283 c2.603-1.545-2.235,0.604-1.001-0.589c4.503-1.149,3.19-2.614,9.063-3.197c0.62,0.352-1.437,0.544-1.953,1.001 c3.75-1.836,11.869-1.417,17.145,1.018c6.117,2.861,12.994,11.314,13.266,19.267l0.309,0.083 c-0.156,3.162,0.484,6.819-0.627,10.177L81.762,38.962"/>
24
+ <path i:knockout="Off" fill="#A80030" d="M44.658,49.695l-0.211,1.047c0.983,1.335,1.763,2.781,3.016,3.821 C46.561,52.804,45.892,52.077,44.658,49.695"/>
25
+ <path i:knockout="Off" fill="#A80030" d="M46.979,49.605c-0.52-0.576-0.826-1.268-1.172-1.956 c0.33,1.211,1.006,2.252,1.633,3.312L46.979,49.605"/>
26
+ <path i:knockout="Off" fill="#A80030" d="M88.063,40.675l-0.219,0.552c-0.402,2.858-1.273,5.686-2.605,8.309 C86.711,46.769,87.66,43.742,88.063,40.675"/>
27
+ <path i:knockout="Off" fill="#A80030" d="M55.598,0.446C56.607,0.077,58.08,0.243,59.154,0c-1.398,0.117-2.789,0.187-4.162,0.362 L55.598,0.446"/>
28
+ <path i:knockout="Off" fill="#A80030" d="M20.127,19.308c0.233,2.154-1.62,2.991,0.41,1.569 C21.627,18.423,20.113,20.2,20.127,19.308"/>
29
+ <path i:knockout="Off" fill="#A80030" d="M17.739,29.282c0.469-1.437,0.553-2.299,0.732-3.132 C17.178,27.804,17.875,28.157,17.739,29.282"/>
30
+ <path i:knockout="Off" d="M13.437,125.506c-0.045,0.047-0.045,7.506-0.138,9.453c-0.092,1.574-0.232,4.957-3.568,4.957 c-3.429,0-4.263-3.939-4.541-5.652c-0.324-1.9-0.324-3.477-0.324-4.17c0-2.225,0.139-8.436,5.375-8.436 c1.576,0,2.456,0.465,3.151,0.834L13.437,125.506z M0,130.975c0,13.066,6.951,13.066,7.97,13.066 c2.873,0,4.727-1.576,5.514-4.309l0.093,4.123c0.881-0.047,1.761-0.139,3.197-0.139c0.51,0,0.926,0,1.298,0.047 c0.371,0,0.741,0.045,1.158,0.092c-0.741-1.482-1.297-4.818-1.297-12.049c0-7.043,0-18.951,0.602-22.566 c-1.667,0.789-3.105,1.299-6.256,1.576c1.251,1.344,1.251,2.039,1.251,8.154c-0.879-0.277-1.992-0.602-3.892-0.602 C1.344,118.369,0,125.598,0,130.975"/>
31
+ <path i:knockout="Off" d="M25.13,128.609c0.047-3.846,0.835-7.275,4.124-7.275c3.615,0,3.891,3.984,3.799,7.275H25.13z M37.64,129.074c0-5.422-1.065-10.752-7.923-10.752c-9.452,0-9.452,10.475-9.452,12.697c0,9.406,4.216,13.113,11.306,13.113 c3.149,0,4.68-0.461,5.514-0.695c-0.046-1.668,0.185-2.734,0.465-4.17c-0.975,0.604-2.226,1.391-5.006,1.391 c-7.229,0-7.322-6.582-7.322-8.852H37.55L37.64,129.074"/>
32
+ <path i:knockout="Off" d="M52.715,131.066c0,4.309-0.787,10.102-6.162,10.102c-0.742,0-1.668-0.141-2.27-0.279 c-0.093-1.668-0.093-4.541-0.093-7.877c0-3.986,0.416-6.068,0.742-7.09c0.972-3.289,3.15-3.334,3.566-3.334 C52.02,122.588,52.715,127.453,52.715,131.066z M39.417,136.117c0,3.43,0,5.375-0.556,6.857c1.9,0.742,4.262,1.158,7.09,1.158 c1.807,0,7.043,0,9.869-5.791c1.344-2.688,1.807-6.303,1.807-9.037c0-1.668-0.186-5.328-1.529-7.646 c-1.296-2.176-3.382-3.289-5.605-3.289c-4.449,0-5.746,3.707-6.44,5.607c0-2.363,0.045-10.611,0.415-14.828 c-3.011,1.391-4.866,1.621-6.857,1.807c1.807,0.74,1.807,3.801,1.807,13.764V136.117"/>
33
+ <path i:knockout="Off" d="M66.535,143.855c-0.928-0.139-1.578-0.232-2.922-0.232c-1.48,0-2.502,0.094-3.566,0.232 c0.463-0.881,0.648-1.299,0.787-4.309c0.186-4.125,0.232-15.154-0.092-17.471c-0.232-1.762-0.648-2.039-1.297-2.502 c3.799-0.371,4.865-0.648,6.625-1.482c-0.369,2.037-0.418,3.059-0.418,6.162C65.561,140.242,65.514,141.955,66.535,143.855"/>
34
+ <path i:knockout="Off" d="M81.373,130.74c-0.092,2.92-0.139,4.959-0.928,6.58c-0.973,2.086-2.594,2.688-3.799,2.688 c-2.783,0-3.383-2.316-3.383-4.586c0-4.355,3.893-4.682,5.652-4.682H81.373z M68.629,136.441c0,2.92,0.881,5.838,3.477,7.09 c1.158,0.51,2.316,0.51,2.688,0.51c4.264,0,5.699-3.152,6.58-5.098c-0.047,2.039,0,3.289,0.139,4.912 c0.834-0.047,1.668-0.139,3.059-0.139c0.787,0,1.529,0.092,2.316,0.139c-0.51-0.787-0.787-1.252-0.928-3.059 c-0.092-1.76-0.092-3.521-0.092-5.977l0.047-9.453c0-3.523-0.928-6.998-7.879-6.998c-4.586,0-7.273,1.391-8.617,2.086 c0.557,1.02,1.02,1.898,1.436,3.893c1.809-1.576,4.172-2.41,6.58-2.41c3.848,0,3.848,2.549,3.848,6.162 c-0.881-0.045-1.623-0.137-2.875-0.137C72.521,127.963,68.629,130.23,68.629,136.441"/>
35
+ <path i:knockout="Off" d="M108.063,139.268c0.047,1.576,0.047,3.244,0.695,4.588c-1.021-0.092-1.623-0.232-3.521-0.232 c-1.113,0-1.715,0.094-2.596,0.232c0.184-0.602,0.279-0.834,0.371-1.623c0.139-1.064,0.232-4.633,0.232-5.885v-5.004 c0-2.178,0-5.33-0.141-6.441c-0.092-0.787-0.322-2.918-3.012-2.918c-2.641,0-3.521,1.945-3.846,3.521 c-0.369,1.621-0.369,3.383-0.369,10.24c0.045,5.932,0.045,6.486,0.508,8.109c-0.787-0.092-1.76-0.184-3.15-0.184 c-1.113,0-1.854,0.045-2.779,0.184c0.324-0.742,0.51-1.113,0.602-3.707c0.094-2.549,0.279-15.061-0.141-18.025 c-0.23-1.809-0.695-2.225-1.203-2.688c3.754-0.186,4.957-0.789,6.117-1.389v4.91c0.555-1.438,1.713-4.635,6.348-4.635 c5.793,0,5.838,4.217,5.885,6.996V139.268"/>
36
+ <path i:knockout="Off" fill="#A80030" d="M66.926,111.533l-3.838,3.836l-3.836-3.836l3.836-3.836L66.926,111.533"/>
37
+ </g>
38
+ </g>
39
+</svg>
public/favicon.ico
Binary files /dev/null and b/public/favicon.ico differ
public/logo.png
Binary files /dev/null and b/public/logo.png differ
styles/Authorize.module.css
new
+60
@@ -0,0 +1,60 @@
1
+.syncContainer {
2
+ display: inherit;
3
+ justify-content: space-between;
4
+ max-width: 400px;
5
+ margin: 0 auto;
6
+ padding: 10px 0;
7
+}
8
+
9
+.syncContainer div {
10
+ display: inline-block;
11
+ margin-top: auto;
12
+ margin-bottom: auto;
13
+ width: 75px;
14
+ margin-left: 3em;
15
+ margin-right: 3em;
16
+}
17
+
18
+.arrow {
19
+ position: absolute;
20
+ width: 3vw;
21
+ top: 50%;
22
+ left: 45%;
23
+ transform: translate(-50%, -50%);
24
+ transform: rotate(270deg);
25
+ cursor: pointer;
26
+ margin-left: 0;
27
+}
28
+
29
+.arrow span {
30
+ display: block;
31
+ width: 1.5vw;
32
+ height: 1.5vw;
33
+ border-bottom: 5px solid white;
34
+ border-right: 5px solid white;
35
+ transform: rotate(45deg);
36
+ margin: -10px;
37
+ animation: animate 2s infinite;
38
+}
39
+
40
+.arrow span:nth-child(2) {
41
+ animation-delay: -0.2s;
42
+}
43
+
44
+.arrow span:nth-child(3) {
45
+ animation-delay: -0.4s;
46
+}
47
+
48
+@keyframes animate {
49
+ 0% {
50
+ opacity: 0;
51
+ transform: rotate(45deg) translate(-20px, -20px);
52
+ }
53
+ 50% {
54
+ opacity: 1;
55
+ }
56
+ 100% {
57
+ opacity: 0;
58
+ transform: rotate(45deg) translate(20px, 20px);
59
+ }
60
+}
\ No newline at end of file
styles/Home.module.css
styles/Learn.module.css
styles/Login.module.css
new
+121
@@ -0,0 +1,121 @@
1
+.button {
2
+ position: relative;
3
+ padding: 16px 30px;
4
+ color: var(--color);
5
+ border: 2px solid rgba(0, 0, 0, 0.5);
6
+ border-radius: 4px;
7
+ text-shadow: 0 0 15px var(--color);
8
+ text-decoration: none;
9
+ text-transform: uppercase;
10
+ letter-spacing: 0.1rem;
11
+ transition: 0.5s;
12
+ z-index: 1;
13
+}
14
+
15
+.button:hover {
16
+ color: #1d1b1b;
17
+ border: 2px solid rgba(0, 0, 0, 0);
18
+ box-shadow: 0 0 0px var(--color);
19
+}
20
+
21
+.button::before {
22
+ content: '';
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ width: 100%;
27
+ height: 100%;
28
+ background: var(--color);
29
+ z-index: -1;
30
+ transform: scale(0);
31
+ transition: 0.5s;
32
+}
33
+
34
+.button:hover::before {
35
+ transform: scale(1);
36
+ transition-delay: 0.5s;
37
+ box-shadow: 0 0 10px var(--color),
38
+ 0 0 30px var(--color),
39
+ 0 0 60px var(--color);
40
+}
41
+
42
+.button span {
43
+ position: absolute;
44
+ background: var(--color);
45
+ pointer-events: none;
46
+ border-radius: 2px;
47
+ box-shadow: 0 0 10px var(--color),
48
+ 0 0 20px var(--color),
49
+ 0 0 30px var(--color),
50
+ 0 0 50px var(--color),
51
+ 0 0 100px var(--color);
52
+ transition: 0.5s ease-in-out;
53
+ transition-delay: 0.25s;
54
+}
55
+
56
+.button:hover span {
57
+ opacity: 0;
58
+ transition-delay: 0s;
59
+}
60
+
61
+.button span:nth-child(1),
62
+.button span:nth-child(3) {
63
+ width: 40px;
64
+ height: 4px;
65
+}
66
+
67
+.button:hover span:nth-child(1),
68
+.button:hover span:nth-child(3) {
69
+ transform: translateX(0);
70
+}
71
+
72
+.button span:nth-child(2),
73
+.button span:nth-child(4) {
74
+ width: 4px;
75
+ height: 40px;
76
+}
77
+
78
+.button:hover span:nth-child(1),
79
+.button:hover span:nth-child(3) {
80
+ transform: translateY(0);
81
+}
82
+
83
+.button span:nth-child(1) {
84
+ top: calc(50% - 2px);
85
+ left: -50px;
86
+ transform-origin: left;
87
+}
88
+
89
+.button:hover span:nth-child(1) {
90
+ left: 50%;
91
+}
92
+
93
+.button span:nth-child(3) {
94
+ top: calc(50% - 2px);
95
+ right: -50px;
96
+ transform-origin: right;
97
+}
98
+
99
+.button:hover span:nth-child(3) {
100
+ right: 50%;
101
+}
102
+
103
+.button span:nth-child(2) {
104
+ left: calc(50% - 2px);
105
+ top: -50px;
106
+ transform-origin: top;
107
+}
108
+
109
+.button:hover span:nth-child(2) {
110
+ top: 50%;
111
+}
112
+
113
+.button span:nth-child(4) {
114
+ left: calc(50% - 2px);
115
+ bottom: -50px;
116
+ transform-origin: bottom;
117
+}
118
+
119
+.button:hover span:nth-child(4) {
120
+ bottom: 50%;
121
+}
\ No newline at end of file
styles/Shared.module.css
new
+237
@@ -0,0 +1,237 @@
1
+.main {
2
+ display: flex;
3
+ flex-direction: column;
4
+ justify-content: space-between;
5
+ align-items: center;
6
+ padding: 6rem;
7
+ min-height: 100vh;
8
+}
9
+
10
+.description {
11
+ display: inherit;
12
+ justify-content: inherit;
13
+ align-items: inherit;
14
+ font-size: 0.85rem;
15
+ max-width: var(--max-width);
16
+ width: 100%;
17
+ z-index: 2;
18
+ font-family: var(--font-mono);
19
+}
20
+
21
+.description a {
22
+ display: flex;
23
+ justify-content: center;
24
+ align-items: center;
25
+ gap: 0.5rem;
26
+}
27
+
28
+.description p {
29
+ position: relative;
30
+ margin: 0;
31
+ padding: 1rem;
32
+ background-color: rgba(var(--callout-rgb), 0.5);
33
+ border: 1px solid rgba(var(--callout-border-rgb), 0.3);
34
+ border-radius: var(--border-radius);
35
+}
36
+
37
+.description div {
38
+ display: flex;
39
+ justify-content: center;
40
+ align-items: center;
41
+ gap: 0.2rem;
42
+}
43
+
44
+.footer {
45
+ display: inherit;
46
+ justify-content: inherit;
47
+}
48
+
49
+.code {
50
+ font-weight: 700;
51
+ font-family: var(--font-mono);
52
+}
53
+
54
+.grid {
55
+ display: grid;
56
+ grid-template-columns: repeat(4, minmax(50%, auto));
57
+ width: var(--max-width);
58
+ max-width: 100%;
59
+}
60
+
61
+.card {
62
+ padding: 1rem 1.2rem;
63
+ border-radius: var(--border-radius);
64
+ background: rgba(var(--card-rgb), 0);
65
+ border: 1px solid rgba(var(--card-border-rgb), 0);
66
+ transition: background 200ms, border 200ms;
67
+}
68
+
69
+.card span {
70
+ display: inline-block;
71
+ transition: transform 200ms;
72
+}
73
+
74
+.card h2 {
75
+ font-weight: 600;
76
+ margin-bottom: 0.7rem;
77
+}
78
+
79
+.card p {
80
+ margin: 0;
81
+ opacity: 0.6;
82
+ font-size: 0.9rem;
83
+ line-height: 1.5;
84
+ max-width: 30ch;
85
+}
86
+
87
+.center {
88
+ display: flex;
89
+ justify-content: center;
90
+ align-items: center;
91
+ position: relative;
92
+ padding: 4rem 0;
93
+}
94
+
95
+.center::before {
96
+ background: var(--secondary-glow);
97
+ border-radius: 50%;
98
+ width: 480px;
99
+ height: 360px;
100
+ margin-left: -400px;
101
+}
102
+
103
+.center::after {
104
+ background: var(--primary-glow);
105
+ width: 240px;
106
+ height: 180px;
107
+ z-index: -1;
108
+}
109
+
110
+.center::before,
111
+.center::after {
112
+ content: '';
113
+ left: 50%;
114
+ position: absolute;
115
+ filter: blur(45px);
116
+ transform: translateZ(0);
117
+}
118
+
119
+.avatar {
120
+ border-radius: 50%;
121
+}
122
+
123
+.footer {
124
+ display: flex;
125
+ justify-content: center;
126
+ align-items: center;
127
+ gap: 2rem;
128
+ padding: 2rem 0;
129
+}
130
+
131
+/* Enable hover only on non-touch devices */
132
+@media (hover: hover) and (pointer: fine) {
133
+ .card:hover {
134
+ background: rgba(var(--card-rgb), 0.1);
135
+ border: 1px solid rgba(var(--card-border-rgb), 0.15);
136
+ }
137
+
138
+ .card:hover span {
139
+ transform: translateX(4px);
140
+ }
141
+}
142
+
143
+@media (prefers-reduced-motion) {
144
+ .card:hover span {
145
+ transform: none;
146
+ }
147
+}
148
+
149
+/* Mobile */
150
+@media (max-width: 700px) {
151
+ .content {
152
+ padding: 4rem;
153
+ }
154
+
155
+ .grid {
156
+ grid-template-columns: 1fr;
157
+ margin-bottom: 120px;
158
+ max-width: 320px;
159
+ text-align: center;
160
+ }
161
+
162
+ .card {
163
+ padding: 1rem 2.5rem;
164
+ }
165
+
166
+ .card h2 {
167
+ margin-bottom: 0.5rem;
168
+ }
169
+
170
+ .center {
171
+ padding: 8rem 0 6rem;
172
+ }
173
+
174
+ .center::before {
175
+ transform: none;
176
+ height: 300px;
177
+ }
178
+
179
+ .description {
180
+ font-size: 0.8rem;
181
+ }
182
+
183
+ .description a {
184
+ padding: 1rem;
185
+ }
186
+
187
+ .description p,
188
+ .description div {
189
+ display: flex;
190
+ justify-content: center;
191
+ position: fixed;
192
+ width: 100%;
193
+ }
194
+
195
+ .description p {
196
+ align-items: center;
197
+ inset: 0 0 auto;
198
+ padding: 2rem 1rem 1.4rem;
199
+ border-radius: 0;
200
+ border: none;
201
+ border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25);
202
+ background: linear-gradient(to bottom,
203
+ rgba(var(--background-start-rgb), 1),
204
+ rgba(var(--callout-rgb), 0.5));
205
+ background-clip: padding-box;
206
+ backdrop-filter: blur(24px);
207
+ }
208
+
209
+ .description div {
210
+ align-items: center;
211
+ pointer-events: none;
212
+ inset: auto 0 0;
213
+ padding: 2rem;
214
+ height: 200px;
215
+ background: linear-gradient(to bottom,
216
+ transparent 0%,
217
+ rgb(var(--background-end-rgb)) 40%);
218
+ z-index: 1;
219
+ }
220
+}
221
+
222
+/* Tablet and Smaller Desktop */
223
+@media (min-width: 701px) and (max-width: 1120px) {
224
+ .grid {
225
+ grid-template-columns: repeat(2, 50%);
226
+ }
227
+}
228
+
229
+@keyframes rotate {
230
+ from {
231
+ transform: rotate(360deg);
232
+ }
233
+
234
+ to {
235
+ transform: rotate(0deg);
236
+ }
237
+}
\ No newline at end of file
styles/globals.css
new
+94
@@ -0,0 +1,94 @@
1
+:root {
2
+ --max-width: 1100px;
3
+ --border-radius: 12px;
4
+ --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono',
5
+ 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro',
6
+ 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace;
7
+
8
+ --foreground-rgb: 0, 0, 0;
9
+ --background-start-rgb: 214, 219, 220;
10
+ --background-end-rgb: 255, 255, 255;
11
+
12
+ --primary-glow: conic-gradient(from 180deg at 50% 50%,
13
+ #16abff33 0deg,
14
+ #0885ff33 55deg,
15
+ #54d6ff33 120deg,
16
+ #0071ff33 160deg,
17
+ transparent 360deg);
18
+ --secondary-glow: radial-gradient(rgba(255, 255, 255, 1),
19
+ rgba(255, 255, 255, 0));
20
+
21
+ --tile-start-rgb: 239, 245, 249;
22
+ --tile-end-rgb: 228, 232, 233;
23
+ --tile-border: conic-gradient(#00000080,
24
+ #00000040,
25
+ #00000030,
26
+ #00000020,
27
+ #00000010,
28
+ #00000010,
29
+ #00000080);
30
+
31
+ --callout-rgb: 238, 240, 241;
32
+ --callout-border-rgb: 172, 175, 176;
33
+ --card-rgb: 180, 185, 188;
34
+ --card-border-rgb: 131, 134, 135;
35
+}
36
+
37
+@media (prefers-color-scheme: dark) {
38
+ :root {
39
+ --foreground-rgb: 255, 255, 255;
40
+ --background-start-rgb: 0, 0, 0;
41
+ --background-end-rgb: 0, 0, 0;
42
+
43
+ --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0));
44
+ --secondary-glow: linear-gradient(to bottom right,
45
+ rgba(1, 65, 255, 0),
46
+ rgba(1, 65, 255, 0),
47
+ rgba(1, 65, 255, 0.3));
48
+
49
+ --tile-start-rgb: 2, 13, 46;
50
+ --tile-end-rgb: 2, 5, 19;
51
+ --tile-border: conic-gradient(#ffffff80,
52
+ #ffffff40,
53
+ #ffffff30,
54
+ #ffffff20,
55
+ #ffffff10,
56
+ #ffffff10,
57
+ #ffffff80);
58
+
59
+ --callout-rgb: 20, 20, 20;
60
+ --callout-border-rgb: 108, 108, 108;
61
+ --card-rgb: 100, 100, 100;
62
+ --card-border-rgb: 200, 200, 200;
63
+ }
64
+}
65
+
66
+* {
67
+ box-sizing: border-box;
68
+ padding: 0;
69
+ margin: 0;
70
+}
71
+
72
+html,
73
+body {
74
+ max-width: 100vw;
75
+ overflow-x: hidden;
76
+}
77
+
78
+body {
79
+ color: rgb(var(--foreground-rgb));
80
+ background: linear-gradient(to bottom,
81
+ transparent,
82
+ rgb(var(--background-end-rgb))) rgb(var(--background-start-rgb));
83
+}
84
+
85
+a {
86
+ color: inherit;
87
+ text-decoration: none;
88
+}
89
+
90
+@media (prefers-color-scheme: dark) {
91
+ html {
92
+ color-scheme: dark;
93
+ }
94
+}
\ No newline at end of file
tsconfig.json
new
+32
@@ -0,0 +1,32 @@
1
+{
2
+ "compilerOptions": {
3
+ "lib": [
4
+ "dom",
5
+ "dom.iterable",
6
+ "esnext"
7
+ ],
8
+ "allowJs": true,
9
+ "skipLibCheck": true,
10
+ "strict": false,
11
+ "noEmit": true,
12
+ "incremental": true,
13
+ "module": "esnext",
14
+ "esModuleInterop": true,
15
+ "moduleResolution": "node",
16
+ "resolveJsonModule": true,
17
+ "isolatedModules": true,
18
+ "jsx": "preserve",
19
+ "paths": {
20
+ "@/*": ["./*"]
21
+ }
22
+ },
23
+ "include": [
24
+ "next-env.d.ts",
25
+ "**/*.ts",
26
+ "**/*.tsx"
27
+ ],
28
+
29
+ "exclude": [
30
+ "node_modules"
31
+ ]
32
+}