├── .eslintrc.json
├── .gitignore
├── .prettierrc
├── LEARN.md
├── LICENSE
├── README.md
├── next.config.mjs
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── public
├── default-appAsset.png
├── default-avatar.png
├── favicon-dev.ico
├── favicon.ico
└── lanyard-logo.png
├── src
├── app
│ ├── globals.css
│ ├── hooks
│ │ └── useTime.ts
│ ├── layout.tsx
│ ├── not-found.tsx
│ ├── page.tsx
│ ├── profile
│ │ └── [id]
│ │ │ ├── error.tsx
│ │ │ └── page.tsx
│ └── template.tsx
├── components
│ ├── activities.tsx
│ ├── details.tsx
│ ├── icons
│ │ └── github.tsx
│ ├── skeletons.tsx
│ ├── social-links.tsx
│ ├── timestamps.tsx
│ └── ui
│ │ ├── background-noise.tsx
│ │ ├── evervault-card.tsx
│ │ ├── input.tsx
│ │ └── spotlight.tsx
└── utils
│ ├── activity.ts
│ ├── cn.ts
│ ├── discord-cdn.ts
│ ├── lanyard.ts
│ └── types.ts
└── tsconfig.json
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 | .yarn/install-state.gz
8 |
9 | # testing
10 | /coverage
11 |
12 | # next.js
13 | /.next/
14 | /out/
15 |
16 | # production
17 | /build
18 |
19 | # misc
20 | .vscode
21 | .DS_Store
22 | *.pem
23 |
24 | # debug
25 | npm-debug.log*
26 | yarn-debug.log*
27 | yarn-error.log*
28 |
29 | # local env files
30 | .env*.local
31 |
32 | # vercel
33 | .vercel
34 |
35 | # typescript
36 | *.tsbuildinfo
37 | next-env.d.ts
38 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": ["prettier-plugin-tailwindcss"]
3 | }
4 |
--------------------------------------------------------------------------------
/LEARN.md:
--------------------------------------------------------------------------------
1 | # Learning resource
2 |
3 | - [Learn Next.js | Next.js by Vercel - The React Framework](https://nextjs.org/learn)
4 | - [Frontend Masters](https://frontendmasters.com/)
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Zai Santillan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
Lanyard Visualizer
3 |
An interactive example of how you could use Lanyard API to create amazing real-time Discord status related things!
4 |
5 |
6 |
7 |
8 |
13 |
14 |
15 |
16 | ### Features
17 |
18 | - Spotify integration
19 | - It will display what you're listening, it'll show a progress bar just like the one on your Discord profile!
20 | - Every RPCs work!
21 | - If there's something visible on your status (only RPCs), it's visible here too!
22 | - Everything is real-time!
23 | - We use Lanyard's WebSocket so everything is updated in real-time!
24 |
25 | See [figma](https://www.figma.com/file/ShikDN3EN1uAajmu0yJsWi/lanyard-visualizer?type=design&node-id=0%3A1&mode=design&t=jUlkOCK9urCzOp39-1) file.
26 |
27 | ## Tech Stack & Tools
28 |
29 | - Next.js / TypeScript
30 | - TailwindCSS
31 | - Aceternity UI
32 | - Figma
33 |
34 | ## Libraries
35 |
36 | - [use-lanyard](https://github.com/alii/use-lanyard)
37 | - [framer/motion](https://github.com/framer/motion)
38 |
39 | ## API
40 |
41 | - [Phineas/lanyard](https://github.com/Phineas/lanyard)
42 | - [Discord Assets CDN/API](https://gist.github.com/dustinrouillard/04be36180ed80db144a4857408478854)
43 |
44 | ## Demo
45 |
46 |
47 |
48 |
49 | https://github.com/plskz/lanyard-visualizer/assets/57343545/e3aa0547-d711-4442-8d73-7ee7ae3746bc
50 |
51 | ### Inspiration
52 |
53 | - [eggsy/lanyard-visualizer](https://github.com/eggsy/lanyard-visualizer)
54 | - [pxseu/lanyard-ui](https://github.com/pxseu/lanyard-ui)
55 |
--------------------------------------------------------------------------------
/next.config.mjs:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | images: {
4 | remotePatterns: [
5 | {
6 | protocol: 'https',
7 | hostname: 'cdn.discordapp.com',
8 | },
9 | {
10 | protocol: 'https',
11 | hostname: 'i.scdn.co',
12 | },
13 | {
14 | protocol: 'https',
15 | hostname: 'dcdn.dstn.to',
16 | },
17 | {
18 | protocol: 'https',
19 | hostname: 'i.imgur.com',
20 | },
21 | {
22 | protocol: 'https',
23 | hostname: 'media.discordapp.net',
24 | },
25 | ],
26 | },
27 | logging: {
28 | fetches: {
29 | fullUrl: true,
30 | }
31 | }
32 | }
33 |
34 | export default nextConfig
35 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lanyard-visualizer",
3 | "author": "plskz",
4 | "version": "0.1.0",
5 | "private": true,
6 | "scripts": {
7 | "dev": "next dev",
8 | "build": "next build",
9 | "start": "next start",
10 | "lint": "next lint"
11 | },
12 | "dependencies": {
13 | "@vercel/analytics": "^1.3.2",
14 | "@vercel/speed-insights": "^1.0.14",
15 | "clsx": "^2.1.1",
16 | "discord-markdown": "^2.5.1",
17 | "framer-motion": "^11.11.11",
18 | "next": "14.2.15",
19 | "react": "^18.3.1",
20 | "react-dom": "^18.3.1",
21 | "tailwind-merge": "^2.5.4",
22 | "tailwind-scrollbar-hide": "^1.1.7",
23 | "use-lanyard": "^1.5.2"
24 | },
25 | "devDependencies": {
26 | "@tailwindcss/postcss": "^4.0.0",
27 | "@types/node": "^20.17.6",
28 | "@types/react": "^18.3.12",
29 | "@types/react-dom": "^18.3.1",
30 | "eslint": "^9.14.0",
31 | "eslint-config-next": "14.2.15",
32 | "postcss": "^8.4.47",
33 | "prettier": "^3.3.3",
34 | "prettier-plugin-tailwindcss": "^0.6.11",
35 | "tailwindcss": "^4.0.0",
36 | "typescript": "^5.6.3"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@vercel/analytics':
12 | specifier: ^1.3.2
13 | version: 1.3.2(next@14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
14 | '@vercel/speed-insights':
15 | specifier: ^1.0.14
16 | version: 1.0.14(next@14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
17 | clsx:
18 | specifier: ^2.1.1
19 | version: 2.1.1
20 | discord-markdown:
21 | specifier: ^2.5.1
22 | version: 2.5.1
23 | framer-motion:
24 | specifier: ^11.11.11
25 | version: 11.11.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
26 | next:
27 | specifier: 14.2.15
28 | version: 14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
29 | react:
30 | specifier: ^18.3.1
31 | version: 18.3.1
32 | react-dom:
33 | specifier: ^18.3.1
34 | version: 18.3.1(react@18.3.1)
35 | tailwind-merge:
36 | specifier: ^2.5.4
37 | version: 2.5.4
38 | tailwind-scrollbar-hide:
39 | specifier: ^1.1.7
40 | version: 1.1.7
41 | use-lanyard:
42 | specifier: ^1.5.2
43 | version: 1.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
44 | devDependencies:
45 | '@tailwindcss/postcss':
46 | specifier: ^4.0.0
47 | version: 4.0.0
48 | '@types/node':
49 | specifier: ^20.17.6
50 | version: 20.17.6
51 | '@types/react':
52 | specifier: ^18.3.12
53 | version: 18.3.12
54 | '@types/react-dom':
55 | specifier: ^18.3.1
56 | version: 18.3.1
57 | eslint:
58 | specifier: ^9.14.0
59 | version: 9.14.0(jiti@2.4.2)
60 | eslint-config-next:
61 | specifier: 14.2.15
62 | version: 14.2.15(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)
63 | postcss:
64 | specifier: ^8.4.47
65 | version: 8.4.47
66 | prettier:
67 | specifier: ^3.3.3
68 | version: 3.3.3
69 | prettier-plugin-tailwindcss:
70 | specifier: ^0.6.11
71 | version: 0.6.11(prettier@3.3.3)
72 | tailwindcss:
73 | specifier: ^4.0.0
74 | version: 4.0.0
75 | typescript:
76 | specifier: ^5.6.3
77 | version: 5.6.3
78 |
79 | packages:
80 |
81 | '@aashutoshrathi/word-wrap@1.2.6':
82 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
83 | engines: {node: '>=0.10.0'}
84 |
85 | '@alloc/quick-lru@5.2.0':
86 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
87 | engines: {node: '>=10'}
88 |
89 | '@babel/runtime@7.24.5':
90 | resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==}
91 | engines: {node: '>=6.9.0'}
92 |
93 | '@eslint-community/eslint-utils@4.4.0':
94 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
95 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
96 | peerDependencies:
97 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
98 |
99 | '@eslint-community/regexpp@4.11.0':
100 | resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==}
101 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
102 |
103 | '@eslint-community/regexpp@4.12.1':
104 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
105 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
106 |
107 | '@eslint/config-array@0.18.0':
108 | resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==}
109 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
110 |
111 | '@eslint/core@0.7.0':
112 | resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==}
113 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
114 |
115 | '@eslint/eslintrc@3.1.0':
116 | resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
117 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
118 |
119 | '@eslint/js@9.14.0':
120 | resolution: {integrity: sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==}
121 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
122 |
123 | '@eslint/object-schema@2.1.4':
124 | resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
125 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
126 |
127 | '@eslint/plugin-kit@0.2.0':
128 | resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==}
129 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
130 |
131 | '@humanfs/core@0.19.1':
132 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
133 | engines: {node: '>=18.18.0'}
134 |
135 | '@humanfs/node@0.16.6':
136 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
137 | engines: {node: '>=18.18.0'}
138 |
139 | '@humanwhocodes/module-importer@1.0.1':
140 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
141 | engines: {node: '>=12.22'}
142 |
143 | '@humanwhocodes/retry@0.3.1':
144 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
145 | engines: {node: '>=18.18'}
146 |
147 | '@humanwhocodes/retry@0.4.1':
148 | resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
149 | engines: {node: '>=18.18'}
150 |
151 | '@isaacs/cliui@8.0.2':
152 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
153 | engines: {node: '>=12'}
154 |
155 | '@next/env@14.2.15':
156 | resolution: {integrity: sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ==}
157 |
158 | '@next/eslint-plugin-next@14.2.15':
159 | resolution: {integrity: sha512-pKU0iqKRBlFB/ocOI1Ip2CkKePZpYpnw5bEItEkuZ/Nr9FQP1+p7VDWr4VfOdff4i9bFmrOaeaU1bFEyAcxiMQ==}
160 |
161 | '@next/swc-darwin-arm64@14.2.15':
162 | resolution: {integrity: sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==}
163 | engines: {node: '>= 10'}
164 | cpu: [arm64]
165 | os: [darwin]
166 |
167 | '@next/swc-darwin-x64@14.2.15':
168 | resolution: {integrity: sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==}
169 | engines: {node: '>= 10'}
170 | cpu: [x64]
171 | os: [darwin]
172 |
173 | '@next/swc-linux-arm64-gnu@14.2.15':
174 | resolution: {integrity: sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==}
175 | engines: {node: '>= 10'}
176 | cpu: [arm64]
177 | os: [linux]
178 |
179 | '@next/swc-linux-arm64-musl@14.2.15':
180 | resolution: {integrity: sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==}
181 | engines: {node: '>= 10'}
182 | cpu: [arm64]
183 | os: [linux]
184 |
185 | '@next/swc-linux-x64-gnu@14.2.15':
186 | resolution: {integrity: sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==}
187 | engines: {node: '>= 10'}
188 | cpu: [x64]
189 | os: [linux]
190 |
191 | '@next/swc-linux-x64-musl@14.2.15':
192 | resolution: {integrity: sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==}
193 | engines: {node: '>= 10'}
194 | cpu: [x64]
195 | os: [linux]
196 |
197 | '@next/swc-win32-arm64-msvc@14.2.15':
198 | resolution: {integrity: sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==}
199 | engines: {node: '>= 10'}
200 | cpu: [arm64]
201 | os: [win32]
202 |
203 | '@next/swc-win32-ia32-msvc@14.2.15':
204 | resolution: {integrity: sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==}
205 | engines: {node: '>= 10'}
206 | cpu: [ia32]
207 | os: [win32]
208 |
209 | '@next/swc-win32-x64-msvc@14.2.15':
210 | resolution: {integrity: sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==}
211 | engines: {node: '>= 10'}
212 | cpu: [x64]
213 | os: [win32]
214 |
215 | '@nodelib/fs.scandir@2.1.5':
216 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
217 | engines: {node: '>= 8'}
218 |
219 | '@nodelib/fs.stat@2.0.5':
220 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
221 | engines: {node: '>= 8'}
222 |
223 | '@nodelib/fs.walk@1.2.8':
224 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
225 | engines: {node: '>= 8'}
226 |
227 | '@pkgjs/parseargs@0.11.0':
228 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
229 | engines: {node: '>=14'}
230 |
231 | '@rushstack/eslint-patch@1.7.2':
232 | resolution: {integrity: sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==}
233 |
234 | '@swc/counter@0.1.3':
235 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
236 |
237 | '@swc/helpers@0.5.5':
238 | resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
239 |
240 | '@tailwindcss/node@4.0.4':
241 | resolution: {integrity: sha512-VLFq80IyoV1hsHPcCm1mmlyPyUT6NlovQLoO2y7PGm84mW94ZrNJ7ax5H6K4M7Aj/fdMfem5IX7Ka+LXWZpDGg==}
242 |
243 | '@tailwindcss/oxide-android-arm64@4.0.4':
244 | resolution: {integrity: sha512-hiGUA8d15ynH/LdurQNObnuTjri7i4ApAzhesusNxoz4br7vhZ6QO5CFgniYAYNZvf8Q8wCTBg0nj61RalBeVQ==}
245 | engines: {node: '>= 10'}
246 | cpu: [arm64]
247 | os: [android]
248 |
249 | '@tailwindcss/oxide-darwin-arm64@4.0.4':
250 | resolution: {integrity: sha512-vTca+ysNl8BYmYJTni9pLC+L3S4bvrj0ai1eUV3yYXYa5Cpugr5Fni6ylV0gcTZOyETm2RCCJ/0azU6MgqE6HA==}
251 | engines: {node: '>= 10'}
252 | cpu: [arm64]
253 | os: [darwin]
254 |
255 | '@tailwindcss/oxide-darwin-x64@4.0.4':
256 | resolution: {integrity: sha512-rxPWb5AQJ/aAM/5UDCjaQaMYIcrZHe/Dr9xZu9+P9nJf3WAweNsGi+e+SW9EYGRiF3hkBtP2dvxVNAkTiEbNQQ==}
257 | engines: {node: '>= 10'}
258 | cpu: [x64]
259 | os: [darwin]
260 |
261 | '@tailwindcss/oxide-freebsd-x64@4.0.4':
262 | resolution: {integrity: sha512-UOnRHzlS5V5cxaMgBo6rk1E92tTDUtO/falc9vOpNiRdWhNcofYNN9zvZP63Wuo5FC6/XCyAnJo6OXUm18TwrQ==}
263 | engines: {node: '>= 10'}
264 | cpu: [x64]
265 | os: [freebsd]
266 |
267 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.4':
268 | resolution: {integrity: sha512-0Ry9Qfnf22rmJwHxsCFmHQIl5RZw+yOUUGHaqNT42REL8r308cU/bi4UqdrjqVRfAlu51gOGxTRf2NRueczuIA==}
269 | engines: {node: '>= 10'}
270 | cpu: [arm]
271 | os: [linux]
272 |
273 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.4':
274 | resolution: {integrity: sha512-5a7WD30nVdI7Rl1ohZ0Ojj9t5yRnZkJBizvh3uIW52h9UeNpon8TfoknF6rU/TwD32dQ0Cjo5CcCHtQ2wW9PCA==}
275 | engines: {node: '>= 10'}
276 | cpu: [arm64]
277 | os: [linux]
278 |
279 | '@tailwindcss/oxide-linux-arm64-musl@4.0.4':
280 | resolution: {integrity: sha512-m6s5jKSqos07l6NtHFd49Ljcaw4jIWHE7jq6eNPNz9SCzQqRzs4esP1t7jH8UljQ7JffKOl7yZPwK5Nf+irliw==}
281 | engines: {node: '>= 10'}
282 | cpu: [arm64]
283 | os: [linux]
284 |
285 | '@tailwindcss/oxide-linux-x64-gnu@4.0.4':
286 | resolution: {integrity: sha512-K5dBjGHzby9eyUBwy9YHFhKY+5i8fzIBZM1NBWp6L2xpM7OzW9WJDgNcgESkZami9g+EozkQLt3ZmMZHAieXkw==}
287 | engines: {node: '>= 10'}
288 | cpu: [x64]
289 | os: [linux]
290 |
291 | '@tailwindcss/oxide-linux-x64-musl@4.0.4':
292 | resolution: {integrity: sha512-J8sskt+fA5ooq+kxy0Tf4E2TRWZD9Y8j3K+pnBwp9zdilLmSd8OHrB3e0/rO78KveZ6BE9ae75cKOWrT6wONmw==}
293 | engines: {node: '>= 10'}
294 | cpu: [x64]
295 | os: [linux]
296 |
297 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.4':
298 | resolution: {integrity: sha512-flFaaMc77NQbz0Fq73wBs9EH2lX1Oc2Z/3JuxoewpnGHpAGJ/j05tvBNMyTaGrKcHvf/+dk+mCDxb6+PmzGgnQ==}
299 | engines: {node: '>= 10'}
300 | cpu: [arm64]
301 | os: [win32]
302 |
303 | '@tailwindcss/oxide-win32-x64-msvc@4.0.4':
304 | resolution: {integrity: sha512-WzMA0aL/24/JyNrv2Yhr/Og24QGRPWJMjRyCJ4HRoGMs6/8svOQKrnnZ/9LUFwn56irAndFBjWWnlaqykH+g5Q==}
305 | engines: {node: '>= 10'}
306 | cpu: [x64]
307 | os: [win32]
308 |
309 | '@tailwindcss/oxide@4.0.4':
310 | resolution: {integrity: sha512-vPpu30KFLiGyPOoElkYt8WRvzGKVrrOz49KpfiGGtnQGmyUpL8VCbJzzEEcpKT5BpaaQidhFok+OXscf6hHjOQ==}
311 | engines: {node: '>= 10'}
312 |
313 | '@tailwindcss/postcss@4.0.0':
314 | resolution: {integrity: sha512-lI2bPk4TvwavHdehjr5WiC6HnZ59hacM6ySEo4RM/H7tsjWd8JpqiNW9ThH7rO/yKtrn4mGBoXshpvn8clXjPg==}
315 |
316 | '@types/estree@1.0.6':
317 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
318 |
319 | '@types/json-schema@7.0.15':
320 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
321 |
322 | '@types/json5@0.0.29':
323 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
324 |
325 | '@types/node@20.17.6':
326 | resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==}
327 |
328 | '@types/prop-types@15.7.11':
329 | resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==}
330 |
331 | '@types/react-dom@18.3.1':
332 | resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==}
333 |
334 | '@types/react@18.3.12':
335 | resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
336 |
337 | '@typescript-eslint/eslint-plugin@8.10.0':
338 | resolution: {integrity: sha512-phuB3hoP7FFKbRXxjl+DRlQDuJqhpOnm5MmtROXyWi3uS/Xg2ZXqiQfcG2BJHiN4QKyzdOJi3NEn/qTnjUlkmQ==}
339 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
340 | peerDependencies:
341 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
342 | eslint: ^8.57.0 || ^9.0.0
343 | typescript: '*'
344 | peerDependenciesMeta:
345 | typescript:
346 | optional: true
347 |
348 | '@typescript-eslint/parser@6.21.0':
349 | resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
350 | engines: {node: ^16.0.0 || >=18.0.0}
351 | peerDependencies:
352 | eslint: ^7.0.0 || ^8.0.0
353 | typescript: '*'
354 | peerDependenciesMeta:
355 | typescript:
356 | optional: true
357 |
358 | '@typescript-eslint/scope-manager@6.21.0':
359 | resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
360 | engines: {node: ^16.0.0 || >=18.0.0}
361 |
362 | '@typescript-eslint/scope-manager@8.10.0':
363 | resolution: {integrity: sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==}
364 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
365 |
366 | '@typescript-eslint/type-utils@8.10.0':
367 | resolution: {integrity: sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg==}
368 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
369 | peerDependencies:
370 | typescript: '*'
371 | peerDependenciesMeta:
372 | typescript:
373 | optional: true
374 |
375 | '@typescript-eslint/types@6.21.0':
376 | resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
377 | engines: {node: ^16.0.0 || >=18.0.0}
378 |
379 | '@typescript-eslint/types@8.10.0':
380 | resolution: {integrity: sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==}
381 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
382 |
383 | '@typescript-eslint/typescript-estree@6.21.0':
384 | resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
385 | engines: {node: ^16.0.0 || >=18.0.0}
386 | peerDependencies:
387 | typescript: '*'
388 | peerDependenciesMeta:
389 | typescript:
390 | optional: true
391 |
392 | '@typescript-eslint/typescript-estree@8.10.0':
393 | resolution: {integrity: sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==}
394 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
395 | peerDependencies:
396 | typescript: '*'
397 | peerDependenciesMeta:
398 | typescript:
399 | optional: true
400 |
401 | '@typescript-eslint/utils@8.10.0':
402 | resolution: {integrity: sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w==}
403 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
404 | peerDependencies:
405 | eslint: ^8.57.0 || ^9.0.0
406 |
407 | '@typescript-eslint/visitor-keys@6.21.0':
408 | resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
409 | engines: {node: ^16.0.0 || >=18.0.0}
410 |
411 | '@typescript-eslint/visitor-keys@8.10.0':
412 | resolution: {integrity: sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==}
413 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
414 |
415 | '@vercel/analytics@1.3.2':
416 | resolution: {integrity: sha512-n/Ws7skBbW+fUBMeg+jrT30+GP00jTHvCcL4fuVrShuML0uveEV/4vVUdvqEVnDgXIGfLm0GXW5EID2mCcRXhg==}
417 | peerDependencies:
418 | next: '>= 13'
419 | react: ^18.0 || ^19.0 || ^19.0.0-rc
420 | peerDependenciesMeta:
421 | next:
422 | optional: true
423 | react:
424 | optional: true
425 |
426 | '@vercel/speed-insights@1.0.14':
427 | resolution: {integrity: sha512-env1BkPddz1UaEZwBL4GmfRksMi2LbiYaKuoxMQjfLk83aEh7kkWMukkUhpQVs717NE6nnD+1+KO85GZHOZ4nQ==}
428 | peerDependencies:
429 | '@sveltejs/kit': ^1 || ^2
430 | next: '>= 13'
431 | react: ^18 || ^19 || ^19.0.0-rc
432 | svelte: '>= 4'
433 | vue: ^3
434 | vue-router: ^4
435 | peerDependenciesMeta:
436 | '@sveltejs/kit':
437 | optional: true
438 | next:
439 | optional: true
440 | react:
441 | optional: true
442 | svelte:
443 | optional: true
444 | vue:
445 | optional: true
446 | vue-router:
447 | optional: true
448 |
449 | acorn-jsx@5.3.2:
450 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
451 | peerDependencies:
452 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
453 |
454 | acorn@8.14.0:
455 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
456 | engines: {node: '>=0.4.0'}
457 | hasBin: true
458 |
459 | ajv@6.12.6:
460 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
461 |
462 | ansi-regex@5.0.1:
463 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
464 | engines: {node: '>=8'}
465 |
466 | ansi-regex@6.0.1:
467 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
468 | engines: {node: '>=12'}
469 |
470 | ansi-styles@4.3.0:
471 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
472 | engines: {node: '>=8'}
473 |
474 | ansi-styles@6.2.1:
475 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
476 | engines: {node: '>=12'}
477 |
478 | argparse@2.0.1:
479 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
480 |
481 | aria-query@5.3.0:
482 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
483 |
484 | array-buffer-byte-length@1.0.1:
485 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
486 | engines: {node: '>= 0.4'}
487 |
488 | array-includes@3.1.7:
489 | resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
490 | engines: {node: '>= 0.4'}
491 |
492 | array-union@2.1.0:
493 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
494 | engines: {node: '>=8'}
495 |
496 | array.prototype.filter@1.0.3:
497 | resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==}
498 | engines: {node: '>= 0.4'}
499 |
500 | array.prototype.findlastindex@1.2.4:
501 | resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==}
502 | engines: {node: '>= 0.4'}
503 |
504 | array.prototype.flat@1.3.2:
505 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
506 | engines: {node: '>= 0.4'}
507 |
508 | array.prototype.flatmap@1.3.2:
509 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
510 | engines: {node: '>= 0.4'}
511 |
512 | array.prototype.tosorted@1.1.3:
513 | resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
514 |
515 | arraybuffer.prototype.slice@1.0.3:
516 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
517 | engines: {node: '>= 0.4'}
518 |
519 | ast-types-flow@0.0.8:
520 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
521 |
522 | asynciterator.prototype@1.0.0:
523 | resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==}
524 |
525 | available-typed-arrays@1.0.7:
526 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
527 | engines: {node: '>= 0.4'}
528 |
529 | axe-core@4.7.0:
530 | resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
531 | engines: {node: '>=4'}
532 |
533 | axobject-query@3.2.1:
534 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
535 |
536 | balanced-match@1.0.2:
537 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
538 |
539 | brace-expansion@1.1.11:
540 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
541 |
542 | brace-expansion@2.0.1:
543 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
544 |
545 | braces@3.0.2:
546 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
547 | engines: {node: '>=8'}
548 |
549 | busboy@1.6.0:
550 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
551 | engines: {node: '>=10.16.0'}
552 |
553 | call-bind@1.0.7:
554 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
555 | engines: {node: '>= 0.4'}
556 |
557 | callsites@3.1.0:
558 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
559 | engines: {node: '>=6'}
560 |
561 | caniuse-lite@1.0.30001655:
562 | resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==}
563 |
564 | chalk@4.1.2:
565 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
566 | engines: {node: '>=10'}
567 |
568 | client-only@0.0.1:
569 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
570 |
571 | clsx@2.1.1:
572 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
573 | engines: {node: '>=6'}
574 |
575 | color-convert@2.0.1:
576 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
577 | engines: {node: '>=7.0.0'}
578 |
579 | color-name@1.1.4:
580 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
581 |
582 | concat-map@0.0.1:
583 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
584 |
585 | cross-spawn@7.0.3:
586 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
587 | engines: {node: '>= 8'}
588 |
589 | csstype@3.1.3:
590 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
591 |
592 | damerau-levenshtein@1.0.8:
593 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
594 |
595 | debug@3.2.7:
596 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
597 | peerDependencies:
598 | supports-color: '*'
599 | peerDependenciesMeta:
600 | supports-color:
601 | optional: true
602 |
603 | debug@4.3.4:
604 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
605 | engines: {node: '>=6.0'}
606 | peerDependencies:
607 | supports-color: '*'
608 | peerDependenciesMeta:
609 | supports-color:
610 | optional: true
611 |
612 | deep-is@0.1.4:
613 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
614 |
615 | define-data-property@1.1.4:
616 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
617 | engines: {node: '>= 0.4'}
618 |
619 | define-properties@1.2.1:
620 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
621 | engines: {node: '>= 0.4'}
622 |
623 | dequal@2.0.3:
624 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
625 | engines: {node: '>=6'}
626 |
627 | detect-libc@1.0.3:
628 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
629 | engines: {node: '>=0.10'}
630 | hasBin: true
631 |
632 | dir-glob@3.0.1:
633 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
634 | engines: {node: '>=8'}
635 |
636 | discord-markdown@2.5.1:
637 | resolution: {integrity: sha512-SGNlL1Y8NYjY2MA5Vj1SI5+Ue5GUW2HkkDAq5jPQ6fI5j/rwOB814lFNhfs2AJMT72Jij8usTEqWZfdU8C3uag==}
638 |
639 | doctrine@2.1.0:
640 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
641 | engines: {node: '>=0.10.0'}
642 |
643 | eastasianwidth@0.2.0:
644 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
645 |
646 | emoji-regex@8.0.0:
647 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
648 |
649 | emoji-regex@9.2.2:
650 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
651 |
652 | enhanced-resolve@5.15.0:
653 | resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
654 | engines: {node: '>=10.13.0'}
655 |
656 | enhanced-resolve@5.18.1:
657 | resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
658 | engines: {node: '>=10.13.0'}
659 |
660 | es-abstract@1.22.4:
661 | resolution: {integrity: sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==}
662 | engines: {node: '>= 0.4'}
663 |
664 | es-array-method-boxes-properly@1.0.0:
665 | resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==}
666 |
667 | es-define-property@1.0.0:
668 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
669 | engines: {node: '>= 0.4'}
670 |
671 | es-errors@1.3.0:
672 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
673 | engines: {node: '>= 0.4'}
674 |
675 | es-iterator-helpers@1.0.17:
676 | resolution: {integrity: sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==}
677 | engines: {node: '>= 0.4'}
678 |
679 | es-set-tostringtag@2.0.2:
680 | resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
681 | engines: {node: '>= 0.4'}
682 |
683 | es-shim-unscopables@1.0.2:
684 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
685 |
686 | es-to-primitive@1.2.1:
687 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
688 | engines: {node: '>= 0.4'}
689 |
690 | escape-string-regexp@4.0.0:
691 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
692 | engines: {node: '>=10'}
693 |
694 | eslint-config-next@14.2.15:
695 | resolution: {integrity: sha512-mKg+NC/8a4JKLZRIOBplxXNdStgxy7lzWuedUaCc8tev+Al9mwDUTujQH6W6qXDH9kycWiVo28tADWGvpBsZcQ==}
696 | peerDependencies:
697 | eslint: ^7.23.0 || ^8.0.0
698 | typescript: '>=3.3.1'
699 | peerDependenciesMeta:
700 | typescript:
701 | optional: true
702 |
703 | eslint-import-resolver-node@0.3.9:
704 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
705 |
706 | eslint-import-resolver-typescript@3.6.1:
707 | resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
708 | engines: {node: ^14.18.0 || >=16.0.0}
709 | peerDependencies:
710 | eslint: '*'
711 | eslint-plugin-import: '*'
712 |
713 | eslint-module-utils@2.8.0:
714 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
715 | engines: {node: '>=4'}
716 | peerDependencies:
717 | '@typescript-eslint/parser': '*'
718 | eslint: '*'
719 | eslint-import-resolver-node: '*'
720 | eslint-import-resolver-typescript: '*'
721 | eslint-import-resolver-webpack: '*'
722 | peerDependenciesMeta:
723 | '@typescript-eslint/parser':
724 | optional: true
725 | eslint:
726 | optional: true
727 | eslint-import-resolver-node:
728 | optional: true
729 | eslint-import-resolver-typescript:
730 | optional: true
731 | eslint-import-resolver-webpack:
732 | optional: true
733 |
734 | eslint-plugin-import@2.29.1:
735 | resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
736 | engines: {node: '>=4'}
737 | peerDependencies:
738 | '@typescript-eslint/parser': '*'
739 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
740 | peerDependenciesMeta:
741 | '@typescript-eslint/parser':
742 | optional: true
743 |
744 | eslint-plugin-jsx-a11y@6.8.0:
745 | resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
746 | engines: {node: '>=4.0'}
747 | peerDependencies:
748 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
749 |
750 | eslint-plugin-react-hooks@4.6.0:
751 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
752 | engines: {node: '>=10'}
753 | peerDependencies:
754 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
755 |
756 | eslint-plugin-react@7.33.2:
757 | resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
758 | engines: {node: '>=4'}
759 | peerDependencies:
760 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
761 |
762 | eslint-scope@8.2.0:
763 | resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
764 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
765 |
766 | eslint-visitor-keys@3.4.3:
767 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
768 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
769 |
770 | eslint-visitor-keys@4.2.0:
771 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
772 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
773 |
774 | eslint@9.14.0:
775 | resolution: {integrity: sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==}
776 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
777 | hasBin: true
778 | peerDependencies:
779 | jiti: '*'
780 | peerDependenciesMeta:
781 | jiti:
782 | optional: true
783 |
784 | espree@10.3.0:
785 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
786 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
787 |
788 | esquery@1.5.0:
789 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
790 | engines: {node: '>=0.10'}
791 |
792 | esrecurse@4.3.0:
793 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
794 | engines: {node: '>=4.0'}
795 |
796 | estraverse@5.3.0:
797 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
798 | engines: {node: '>=4.0'}
799 |
800 | esutils@2.0.3:
801 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
802 | engines: {node: '>=0.10.0'}
803 |
804 | fast-deep-equal@3.1.3:
805 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
806 |
807 | fast-glob@3.3.2:
808 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
809 | engines: {node: '>=8.6.0'}
810 |
811 | fast-json-stable-stringify@2.1.0:
812 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
813 |
814 | fast-levenshtein@2.0.6:
815 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
816 |
817 | fastq@1.17.1:
818 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
819 |
820 | file-entry-cache@8.0.0:
821 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
822 | engines: {node: '>=16.0.0'}
823 |
824 | fill-range@7.0.1:
825 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
826 | engines: {node: '>=8'}
827 |
828 | find-up@5.0.0:
829 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
830 | engines: {node: '>=10'}
831 |
832 | flat-cache@4.0.1:
833 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
834 | engines: {node: '>=16'}
835 |
836 | flatted@3.2.9:
837 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
838 |
839 | for-each@0.3.3:
840 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
841 |
842 | foreground-child@3.1.1:
843 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
844 | engines: {node: '>=14'}
845 |
846 | framer-motion@11.11.11:
847 | resolution: {integrity: sha512-tuDH23ptJAKUHGydJQII9PhABNJBpB+z0P1bmgKK9QFIssHGlfPd6kxMq00LSKwE27WFsb2z0ovY0bpUyMvfRw==}
848 | peerDependencies:
849 | '@emotion/is-prop-valid': '*'
850 | react: ^18.0.0
851 | react-dom: ^18.0.0
852 | peerDependenciesMeta:
853 | '@emotion/is-prop-valid':
854 | optional: true
855 | react:
856 | optional: true
857 | react-dom:
858 | optional: true
859 |
860 | function-bind@1.1.2:
861 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
862 |
863 | function.prototype.name@1.1.6:
864 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
865 | engines: {node: '>= 0.4'}
866 |
867 | functions-have-names@1.2.3:
868 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
869 |
870 | get-intrinsic@1.2.4:
871 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
872 | engines: {node: '>= 0.4'}
873 |
874 | get-symbol-description@1.0.2:
875 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
876 | engines: {node: '>= 0.4'}
877 |
878 | get-tsconfig@4.7.2:
879 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
880 |
881 | glob-parent@5.1.2:
882 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
883 | engines: {node: '>= 6'}
884 |
885 | glob-parent@6.0.2:
886 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
887 | engines: {node: '>=10.13.0'}
888 |
889 | glob@10.3.10:
890 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
891 | engines: {node: '>=16 || 14 >=14.17'}
892 | hasBin: true
893 |
894 | globals@14.0.0:
895 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
896 | engines: {node: '>=18'}
897 |
898 | globalthis@1.0.3:
899 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
900 | engines: {node: '>= 0.4'}
901 |
902 | globby@11.1.0:
903 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
904 | engines: {node: '>=10'}
905 |
906 | gopd@1.0.1:
907 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
908 |
909 | graceful-fs@4.2.11:
910 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
911 |
912 | graphemer@1.4.0:
913 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
914 |
915 | has-bigints@1.0.2:
916 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
917 |
918 | has-flag@4.0.0:
919 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
920 | engines: {node: '>=8'}
921 |
922 | has-property-descriptors@1.0.2:
923 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
924 |
925 | has-proto@1.0.3:
926 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
927 | engines: {node: '>= 0.4'}
928 |
929 | has-symbols@1.0.3:
930 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
931 | engines: {node: '>= 0.4'}
932 |
933 | has-tostringtag@1.0.2:
934 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
935 | engines: {node: '>= 0.4'}
936 |
937 | hasown@2.0.1:
938 | resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==}
939 | engines: {node: '>= 0.4'}
940 |
941 | highlight.js@11.9.0:
942 | resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==}
943 | engines: {node: '>=12.0.0'}
944 |
945 | ignore@5.3.1:
946 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
947 | engines: {node: '>= 4'}
948 |
949 | import-fresh@3.3.0:
950 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
951 | engines: {node: '>=6'}
952 |
953 | imurmurhash@0.1.4:
954 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
955 | engines: {node: '>=0.8.19'}
956 |
957 | internal-slot@1.0.7:
958 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
959 | engines: {node: '>= 0.4'}
960 |
961 | is-array-buffer@3.0.4:
962 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
963 | engines: {node: '>= 0.4'}
964 |
965 | is-async-function@2.0.0:
966 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
967 | engines: {node: '>= 0.4'}
968 |
969 | is-bigint@1.0.4:
970 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
971 |
972 | is-boolean-object@1.1.2:
973 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
974 | engines: {node: '>= 0.4'}
975 |
976 | is-callable@1.2.7:
977 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
978 | engines: {node: '>= 0.4'}
979 |
980 | is-core-module@2.13.1:
981 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
982 |
983 | is-date-object@1.0.5:
984 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
985 | engines: {node: '>= 0.4'}
986 |
987 | is-extglob@2.1.1:
988 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
989 | engines: {node: '>=0.10.0'}
990 |
991 | is-finalizationregistry@1.0.2:
992 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
993 |
994 | is-fullwidth-code-point@3.0.0:
995 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
996 | engines: {node: '>=8'}
997 |
998 | is-generator-function@1.0.10:
999 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
1000 | engines: {node: '>= 0.4'}
1001 |
1002 | is-glob@4.0.3:
1003 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1004 | engines: {node: '>=0.10.0'}
1005 |
1006 | is-map@2.0.2:
1007 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
1008 |
1009 | is-negative-zero@2.0.3:
1010 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
1011 | engines: {node: '>= 0.4'}
1012 |
1013 | is-number-object@1.0.7:
1014 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1015 | engines: {node: '>= 0.4'}
1016 |
1017 | is-number@7.0.0:
1018 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1019 | engines: {node: '>=0.12.0'}
1020 |
1021 | is-regex@1.1.4:
1022 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1023 | engines: {node: '>= 0.4'}
1024 |
1025 | is-set@2.0.2:
1026 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
1027 |
1028 | is-shared-array-buffer@1.0.2:
1029 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
1030 |
1031 | is-string@1.0.7:
1032 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1033 | engines: {node: '>= 0.4'}
1034 |
1035 | is-symbol@1.0.4:
1036 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1037 | engines: {node: '>= 0.4'}
1038 |
1039 | is-typed-array@1.1.13:
1040 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
1041 | engines: {node: '>= 0.4'}
1042 |
1043 | is-weakmap@2.0.1:
1044 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
1045 |
1046 | is-weakref@1.0.2:
1047 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1048 |
1049 | is-weakset@2.0.2:
1050 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
1051 |
1052 | isarray@2.0.5:
1053 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
1054 |
1055 | isexe@2.0.0:
1056 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1057 |
1058 | iterator.prototype@1.1.2:
1059 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
1060 |
1061 | jackspeak@2.3.6:
1062 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
1063 | engines: {node: '>=14'}
1064 |
1065 | jiti@2.4.2:
1066 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
1067 | hasBin: true
1068 |
1069 | js-tokens@4.0.0:
1070 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1071 |
1072 | js-yaml@4.1.0:
1073 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1074 | hasBin: true
1075 |
1076 | json-buffer@3.0.1:
1077 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1078 |
1079 | json-schema-traverse@0.4.1:
1080 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1081 |
1082 | json-stable-stringify-without-jsonify@1.0.1:
1083 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1084 |
1085 | json5@1.0.2:
1086 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
1087 | hasBin: true
1088 |
1089 | jsx-ast-utils@3.3.5:
1090 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
1091 | engines: {node: '>=4.0'}
1092 |
1093 | keyv@4.5.4:
1094 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1095 |
1096 | language-subtag-registry@0.3.22:
1097 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
1098 |
1099 | language-tags@1.0.9:
1100 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
1101 | engines: {node: '>=0.10'}
1102 |
1103 | levn@0.4.1:
1104 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1105 | engines: {node: '>= 0.8.0'}
1106 |
1107 | lightningcss-darwin-arm64@1.29.1:
1108 | resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==}
1109 | engines: {node: '>= 12.0.0'}
1110 | cpu: [arm64]
1111 | os: [darwin]
1112 |
1113 | lightningcss-darwin-x64@1.29.1:
1114 | resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==}
1115 | engines: {node: '>= 12.0.0'}
1116 | cpu: [x64]
1117 | os: [darwin]
1118 |
1119 | lightningcss-freebsd-x64@1.29.1:
1120 | resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==}
1121 | engines: {node: '>= 12.0.0'}
1122 | cpu: [x64]
1123 | os: [freebsd]
1124 |
1125 | lightningcss-linux-arm-gnueabihf@1.29.1:
1126 | resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==}
1127 | engines: {node: '>= 12.0.0'}
1128 | cpu: [arm]
1129 | os: [linux]
1130 |
1131 | lightningcss-linux-arm64-gnu@1.29.1:
1132 | resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==}
1133 | engines: {node: '>= 12.0.0'}
1134 | cpu: [arm64]
1135 | os: [linux]
1136 |
1137 | lightningcss-linux-arm64-musl@1.29.1:
1138 | resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==}
1139 | engines: {node: '>= 12.0.0'}
1140 | cpu: [arm64]
1141 | os: [linux]
1142 |
1143 | lightningcss-linux-x64-gnu@1.29.1:
1144 | resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==}
1145 | engines: {node: '>= 12.0.0'}
1146 | cpu: [x64]
1147 | os: [linux]
1148 |
1149 | lightningcss-linux-x64-musl@1.29.1:
1150 | resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==}
1151 | engines: {node: '>= 12.0.0'}
1152 | cpu: [x64]
1153 | os: [linux]
1154 |
1155 | lightningcss-win32-arm64-msvc@1.29.1:
1156 | resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==}
1157 | engines: {node: '>= 12.0.0'}
1158 | cpu: [arm64]
1159 | os: [win32]
1160 |
1161 | lightningcss-win32-x64-msvc@1.29.1:
1162 | resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==}
1163 | engines: {node: '>= 12.0.0'}
1164 | cpu: [x64]
1165 | os: [win32]
1166 |
1167 | lightningcss@1.29.1:
1168 | resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==}
1169 | engines: {node: '>= 12.0.0'}
1170 |
1171 | locate-path@6.0.0:
1172 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1173 | engines: {node: '>=10'}
1174 |
1175 | lodash.merge@4.6.2:
1176 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1177 |
1178 | loose-envify@1.4.0:
1179 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1180 | hasBin: true
1181 |
1182 | lru-cache@10.2.0:
1183 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
1184 | engines: {node: 14 || >=16.14}
1185 |
1186 | lru-cache@6.0.0:
1187 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1188 | engines: {node: '>=10'}
1189 |
1190 | merge2@1.4.1:
1191 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1192 | engines: {node: '>= 8'}
1193 |
1194 | micromatch@4.0.5:
1195 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1196 | engines: {node: '>=8.6'}
1197 |
1198 | minimatch@3.1.2:
1199 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1200 |
1201 | minimatch@9.0.3:
1202 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
1203 | engines: {node: '>=16 || 14 >=14.17'}
1204 |
1205 | minimatch@9.0.5:
1206 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1207 | engines: {node: '>=16 || 14 >=14.17'}
1208 |
1209 | minimist@1.2.8:
1210 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
1211 |
1212 | minipass@7.0.4:
1213 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
1214 | engines: {node: '>=16 || 14 >=14.17'}
1215 |
1216 | ms@2.1.2:
1217 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1218 |
1219 | ms@2.1.3:
1220 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1221 |
1222 | nanoid@3.3.7:
1223 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
1224 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1225 | hasBin: true
1226 |
1227 | natural-compare@1.4.0:
1228 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1229 |
1230 | next@14.2.15:
1231 | resolution: {integrity: sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==}
1232 | engines: {node: '>=18.17.0'}
1233 | hasBin: true
1234 | peerDependencies:
1235 | '@opentelemetry/api': ^1.1.0
1236 | '@playwright/test': ^1.41.2
1237 | react: ^18.2.0
1238 | react-dom: ^18.2.0
1239 | sass: ^1.3.0
1240 | peerDependenciesMeta:
1241 | '@opentelemetry/api':
1242 | optional: true
1243 | '@playwright/test':
1244 | optional: true
1245 | sass:
1246 | optional: true
1247 |
1248 | object-assign@4.1.1:
1249 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1250 | engines: {node: '>=0.10.0'}
1251 |
1252 | object-inspect@1.13.1:
1253 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
1254 |
1255 | object-keys@1.1.1:
1256 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
1257 | engines: {node: '>= 0.4'}
1258 |
1259 | object.assign@4.1.5:
1260 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
1261 | engines: {node: '>= 0.4'}
1262 |
1263 | object.entries@1.1.7:
1264 | resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==}
1265 | engines: {node: '>= 0.4'}
1266 |
1267 | object.fromentries@2.0.7:
1268 | resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
1269 | engines: {node: '>= 0.4'}
1270 |
1271 | object.groupby@1.0.2:
1272 | resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==}
1273 |
1274 | object.hasown@1.1.3:
1275 | resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==}
1276 |
1277 | object.values@1.1.7:
1278 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
1279 | engines: {node: '>= 0.4'}
1280 |
1281 | optionator@0.9.3:
1282 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
1283 | engines: {node: '>= 0.8.0'}
1284 |
1285 | p-limit@3.1.0:
1286 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1287 | engines: {node: '>=10'}
1288 |
1289 | p-locate@5.0.0:
1290 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1291 | engines: {node: '>=10'}
1292 |
1293 | parent-module@1.0.1:
1294 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1295 | engines: {node: '>=6'}
1296 |
1297 | path-exists@4.0.0:
1298 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1299 | engines: {node: '>=8'}
1300 |
1301 | path-key@3.1.1:
1302 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1303 | engines: {node: '>=8'}
1304 |
1305 | path-parse@1.0.7:
1306 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1307 |
1308 | path-scurry@1.10.1:
1309 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
1310 | engines: {node: '>=16 || 14 >=14.17'}
1311 |
1312 | path-type@4.0.0:
1313 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1314 | engines: {node: '>=8'}
1315 |
1316 | picocolors@1.1.0:
1317 | resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
1318 |
1319 | picomatch@2.3.1:
1320 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1321 | engines: {node: '>=8.6'}
1322 |
1323 | possible-typed-array-names@1.0.0:
1324 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
1325 | engines: {node: '>= 0.4'}
1326 |
1327 | postcss@8.4.31:
1328 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
1329 | engines: {node: ^10 || ^12 || >=14}
1330 |
1331 | postcss@8.4.47:
1332 | resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
1333 | engines: {node: ^10 || ^12 || >=14}
1334 |
1335 | prelude-ls@1.2.1:
1336 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1337 | engines: {node: '>= 0.8.0'}
1338 |
1339 | prettier-plugin-tailwindcss@0.6.11:
1340 | resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==}
1341 | engines: {node: '>=14.21.3'}
1342 | peerDependencies:
1343 | '@ianvs/prettier-plugin-sort-imports': '*'
1344 | '@prettier/plugin-pug': '*'
1345 | '@shopify/prettier-plugin-liquid': '*'
1346 | '@trivago/prettier-plugin-sort-imports': '*'
1347 | '@zackad/prettier-plugin-twig': '*'
1348 | prettier: ^3.0
1349 | prettier-plugin-astro: '*'
1350 | prettier-plugin-css-order: '*'
1351 | prettier-plugin-import-sort: '*'
1352 | prettier-plugin-jsdoc: '*'
1353 | prettier-plugin-marko: '*'
1354 | prettier-plugin-multiline-arrays: '*'
1355 | prettier-plugin-organize-attributes: '*'
1356 | prettier-plugin-organize-imports: '*'
1357 | prettier-plugin-sort-imports: '*'
1358 | prettier-plugin-style-order: '*'
1359 | prettier-plugin-svelte: '*'
1360 | peerDependenciesMeta:
1361 | '@ianvs/prettier-plugin-sort-imports':
1362 | optional: true
1363 | '@prettier/plugin-pug':
1364 | optional: true
1365 | '@shopify/prettier-plugin-liquid':
1366 | optional: true
1367 | '@trivago/prettier-plugin-sort-imports':
1368 | optional: true
1369 | '@zackad/prettier-plugin-twig':
1370 | optional: true
1371 | prettier-plugin-astro:
1372 | optional: true
1373 | prettier-plugin-css-order:
1374 | optional: true
1375 | prettier-plugin-import-sort:
1376 | optional: true
1377 | prettier-plugin-jsdoc:
1378 | optional: true
1379 | prettier-plugin-marko:
1380 | optional: true
1381 | prettier-plugin-multiline-arrays:
1382 | optional: true
1383 | prettier-plugin-organize-attributes:
1384 | optional: true
1385 | prettier-plugin-organize-imports:
1386 | optional: true
1387 | prettier-plugin-sort-imports:
1388 | optional: true
1389 | prettier-plugin-style-order:
1390 | optional: true
1391 | prettier-plugin-svelte:
1392 | optional: true
1393 |
1394 | prettier@3.3.3:
1395 | resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
1396 | engines: {node: '>=14'}
1397 | hasBin: true
1398 |
1399 | prop-types@15.8.1:
1400 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
1401 |
1402 | punycode@2.3.1:
1403 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1404 | engines: {node: '>=6'}
1405 |
1406 | queue-microtask@1.2.3:
1407 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1408 |
1409 | react-dom@18.3.1:
1410 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
1411 | peerDependencies:
1412 | react: ^18.3.1
1413 |
1414 | react-is@16.13.1:
1415 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
1416 |
1417 | react@18.3.1:
1418 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
1419 | engines: {node: '>=0.10.0'}
1420 |
1421 | reflect.getprototypeof@1.0.5:
1422 | resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==}
1423 | engines: {node: '>= 0.4'}
1424 |
1425 | regenerator-runtime@0.14.1:
1426 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
1427 |
1428 | regexp.prototype.flags@1.5.2:
1429 | resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
1430 | engines: {node: '>= 0.4'}
1431 |
1432 | resolve-from@4.0.0:
1433 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1434 | engines: {node: '>=4'}
1435 |
1436 | resolve-pkg-maps@1.0.0:
1437 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
1438 |
1439 | resolve@1.22.8:
1440 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
1441 | hasBin: true
1442 |
1443 | resolve@2.0.0-next.5:
1444 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
1445 | hasBin: true
1446 |
1447 | reusify@1.0.4:
1448 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1449 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1450 |
1451 | run-parallel@1.2.0:
1452 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1453 |
1454 | safe-array-concat@1.1.0:
1455 | resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==}
1456 | engines: {node: '>=0.4'}
1457 |
1458 | safe-regex-test@1.0.3:
1459 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
1460 | engines: {node: '>= 0.4'}
1461 |
1462 | scheduler@0.23.2:
1463 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
1464 |
1465 | semver@6.3.1:
1466 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1467 | hasBin: true
1468 |
1469 | semver@7.6.0:
1470 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
1471 | engines: {node: '>=10'}
1472 | hasBin: true
1473 |
1474 | server-only@0.0.1:
1475 | resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==}
1476 |
1477 | set-function-length@1.2.1:
1478 | resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
1479 | engines: {node: '>= 0.4'}
1480 |
1481 | set-function-name@2.0.2:
1482 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
1483 | engines: {node: '>= 0.4'}
1484 |
1485 | shebang-command@2.0.0:
1486 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1487 | engines: {node: '>=8'}
1488 |
1489 | shebang-regex@3.0.0:
1490 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1491 | engines: {node: '>=8'}
1492 |
1493 | side-channel@1.0.5:
1494 | resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==}
1495 | engines: {node: '>= 0.4'}
1496 |
1497 | signal-exit@4.1.0:
1498 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1499 | engines: {node: '>=14'}
1500 |
1501 | simple-markdown@0.7.3:
1502 | resolution: {integrity: sha512-uGXIc13NGpqfPeFJIt/7SHHxd6HekEJYtsdoCM06mEBPL9fQH/pSD7LRM6PZ7CKchpSvxKL4tvwMamqAaNDAyg==}
1503 |
1504 | slash@3.0.0:
1505 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1506 | engines: {node: '>=8'}
1507 |
1508 | source-map-js@1.2.1:
1509 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1510 | engines: {node: '>=0.10.0'}
1511 |
1512 | streamsearch@1.1.0:
1513 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
1514 | engines: {node: '>=10.0.0'}
1515 |
1516 | string-width@4.2.3:
1517 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1518 | engines: {node: '>=8'}
1519 |
1520 | string-width@5.1.2:
1521 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
1522 | engines: {node: '>=12'}
1523 |
1524 | string.prototype.matchall@4.0.10:
1525 | resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
1526 |
1527 | string.prototype.trim@1.2.8:
1528 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
1529 | engines: {node: '>= 0.4'}
1530 |
1531 | string.prototype.trimend@1.0.7:
1532 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
1533 |
1534 | string.prototype.trimstart@1.0.7:
1535 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
1536 |
1537 | strip-ansi@6.0.1:
1538 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1539 | engines: {node: '>=8'}
1540 |
1541 | strip-ansi@7.1.0:
1542 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1543 | engines: {node: '>=12'}
1544 |
1545 | strip-bom@3.0.0:
1546 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
1547 | engines: {node: '>=4'}
1548 |
1549 | strip-json-comments@3.1.1:
1550 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1551 | engines: {node: '>=8'}
1552 |
1553 | styled-jsx@5.1.1:
1554 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
1555 | engines: {node: '>= 12.0.0'}
1556 | peerDependencies:
1557 | '@babel/core': '*'
1558 | babel-plugin-macros: '*'
1559 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
1560 | peerDependenciesMeta:
1561 | '@babel/core':
1562 | optional: true
1563 | babel-plugin-macros:
1564 | optional: true
1565 |
1566 | supports-color@7.2.0:
1567 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1568 | engines: {node: '>=8'}
1569 |
1570 | supports-preserve-symlinks-flag@1.0.0:
1571 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1572 | engines: {node: '>= 0.4'}
1573 |
1574 | tailwind-merge@2.5.4:
1575 | resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==}
1576 |
1577 | tailwind-scrollbar-hide@1.1.7:
1578 | resolution: {integrity: sha512-X324n9OtpTmOMqEgDUEA/RgLrNfBF/jwJdctaPZDzB3mppxJk7TLIDmOreEDm1Bq4R9LSPu4Epf8VSdovNU+iA==}
1579 |
1580 | tailwindcss@4.0.0:
1581 | resolution: {integrity: sha512-ULRPI3A+e39T7pSaf1xoi58AqqJxVCLg8F/uM5A3FadUbnyDTgltVnXJvdkTjwCOGA6NazqHVcwPJC5h2vRYVQ==}
1582 |
1583 | tailwindcss@4.0.4:
1584 | resolution: {integrity: sha512-/ezDLEkOLf1lXkr9F2iI5BHJbexJpty5zkV2B8bGHCqAdbc9vk85Jgdkq+ZOvNkNPa3yAaqJ8DjRt584Bc84kw==}
1585 |
1586 | tapable@2.2.1:
1587 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
1588 | engines: {node: '>=6'}
1589 |
1590 | text-table@0.2.0:
1591 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1592 |
1593 | to-regex-range@5.0.1:
1594 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1595 | engines: {node: '>=8.0'}
1596 |
1597 | ts-api-utils@1.2.1:
1598 | resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==}
1599 | engines: {node: '>=16'}
1600 | peerDependencies:
1601 | typescript: '>=4.2.0'
1602 |
1603 | ts-api-utils@1.3.0:
1604 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
1605 | engines: {node: '>=16'}
1606 | peerDependencies:
1607 | typescript: '>=4.2.0'
1608 |
1609 | tsconfig-paths@3.15.0:
1610 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
1611 |
1612 | tslib@2.6.2:
1613 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
1614 |
1615 | type-check@0.4.0:
1616 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1617 | engines: {node: '>= 0.8.0'}
1618 |
1619 | typed-array-buffer@1.0.2:
1620 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
1621 | engines: {node: '>= 0.4'}
1622 |
1623 | typed-array-byte-length@1.0.0:
1624 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
1625 | engines: {node: '>= 0.4'}
1626 |
1627 | typed-array-byte-offset@1.0.1:
1628 | resolution: {integrity: sha512-tcqKMrTRXjqvHN9S3553NPCaGL0VPgFI92lXszmrE8DMhiDPLBYLlvo8Uu4WZAAX/aGqp/T1sbA4ph8EWjDF9Q==}
1629 | engines: {node: '>= 0.4'}
1630 |
1631 | typed-array-length@1.0.4:
1632 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
1633 |
1634 | typescript@5.6.3:
1635 | resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
1636 | engines: {node: '>=14.17'}
1637 | hasBin: true
1638 |
1639 | unbox-primitive@1.0.2:
1640 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
1641 |
1642 | undici-types@6.19.8:
1643 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
1644 |
1645 | uri-js@4.4.1:
1646 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1647 |
1648 | use-lanyard@1.5.2:
1649 | resolution: {integrity: sha512-clxZoUrzgvGa+9IAOv39e4yNjUEvmk/BjBbpIZ/0ymLmclypJkKJ86j5okEjBAACMkw+u1c4gf/zCifpOSwyDA==}
1650 | engines: {node: '>=14'}
1651 | peerDependencies:
1652 | react: '*'
1653 | react-dom: '*'
1654 |
1655 | which-boxed-primitive@1.0.2:
1656 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
1657 |
1658 | which-builtin-type@1.1.3:
1659 | resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
1660 | engines: {node: '>= 0.4'}
1661 |
1662 | which-collection@1.0.1:
1663 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
1664 |
1665 | which-typed-array@1.1.14:
1666 | resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==}
1667 | engines: {node: '>= 0.4'}
1668 |
1669 | which@2.0.2:
1670 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1671 | engines: {node: '>= 8'}
1672 | hasBin: true
1673 |
1674 | wrap-ansi@7.0.0:
1675 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1676 | engines: {node: '>=10'}
1677 |
1678 | wrap-ansi@8.1.0:
1679 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
1680 | engines: {node: '>=12'}
1681 |
1682 | yallist@4.0.0:
1683 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
1684 |
1685 | yocto-queue@0.1.0:
1686 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1687 | engines: {node: '>=10'}
1688 |
1689 | snapshots:
1690 |
1691 | '@aashutoshrathi/word-wrap@1.2.6': {}
1692 |
1693 | '@alloc/quick-lru@5.2.0': {}
1694 |
1695 | '@babel/runtime@7.24.5':
1696 | dependencies:
1697 | regenerator-runtime: 0.14.1
1698 |
1699 | '@eslint-community/eslint-utils@4.4.0(eslint@9.14.0(jiti@2.4.2))':
1700 | dependencies:
1701 | eslint: 9.14.0(jiti@2.4.2)
1702 | eslint-visitor-keys: 3.4.3
1703 |
1704 | '@eslint-community/regexpp@4.11.0': {}
1705 |
1706 | '@eslint-community/regexpp@4.12.1': {}
1707 |
1708 | '@eslint/config-array@0.18.0':
1709 | dependencies:
1710 | '@eslint/object-schema': 2.1.4
1711 | debug: 4.3.4
1712 | minimatch: 3.1.2
1713 | transitivePeerDependencies:
1714 | - supports-color
1715 |
1716 | '@eslint/core@0.7.0': {}
1717 |
1718 | '@eslint/eslintrc@3.1.0':
1719 | dependencies:
1720 | ajv: 6.12.6
1721 | debug: 4.3.4
1722 | espree: 10.3.0
1723 | globals: 14.0.0
1724 | ignore: 5.3.1
1725 | import-fresh: 3.3.0
1726 | js-yaml: 4.1.0
1727 | minimatch: 3.1.2
1728 | strip-json-comments: 3.1.1
1729 | transitivePeerDependencies:
1730 | - supports-color
1731 |
1732 | '@eslint/js@9.14.0': {}
1733 |
1734 | '@eslint/object-schema@2.1.4': {}
1735 |
1736 | '@eslint/plugin-kit@0.2.0':
1737 | dependencies:
1738 | levn: 0.4.1
1739 |
1740 | '@humanfs/core@0.19.1': {}
1741 |
1742 | '@humanfs/node@0.16.6':
1743 | dependencies:
1744 | '@humanfs/core': 0.19.1
1745 | '@humanwhocodes/retry': 0.3.1
1746 |
1747 | '@humanwhocodes/module-importer@1.0.1': {}
1748 |
1749 | '@humanwhocodes/retry@0.3.1': {}
1750 |
1751 | '@humanwhocodes/retry@0.4.1': {}
1752 |
1753 | '@isaacs/cliui@8.0.2':
1754 | dependencies:
1755 | string-width: 5.1.2
1756 | string-width-cjs: string-width@4.2.3
1757 | strip-ansi: 7.1.0
1758 | strip-ansi-cjs: strip-ansi@6.0.1
1759 | wrap-ansi: 8.1.0
1760 | wrap-ansi-cjs: wrap-ansi@7.0.0
1761 |
1762 | '@next/env@14.2.15': {}
1763 |
1764 | '@next/eslint-plugin-next@14.2.15':
1765 | dependencies:
1766 | glob: 10.3.10
1767 |
1768 | '@next/swc-darwin-arm64@14.2.15':
1769 | optional: true
1770 |
1771 | '@next/swc-darwin-x64@14.2.15':
1772 | optional: true
1773 |
1774 | '@next/swc-linux-arm64-gnu@14.2.15':
1775 | optional: true
1776 |
1777 | '@next/swc-linux-arm64-musl@14.2.15':
1778 | optional: true
1779 |
1780 | '@next/swc-linux-x64-gnu@14.2.15':
1781 | optional: true
1782 |
1783 | '@next/swc-linux-x64-musl@14.2.15':
1784 | optional: true
1785 |
1786 | '@next/swc-win32-arm64-msvc@14.2.15':
1787 | optional: true
1788 |
1789 | '@next/swc-win32-ia32-msvc@14.2.15':
1790 | optional: true
1791 |
1792 | '@next/swc-win32-x64-msvc@14.2.15':
1793 | optional: true
1794 |
1795 | '@nodelib/fs.scandir@2.1.5':
1796 | dependencies:
1797 | '@nodelib/fs.stat': 2.0.5
1798 | run-parallel: 1.2.0
1799 |
1800 | '@nodelib/fs.stat@2.0.5': {}
1801 |
1802 | '@nodelib/fs.walk@1.2.8':
1803 | dependencies:
1804 | '@nodelib/fs.scandir': 2.1.5
1805 | fastq: 1.17.1
1806 |
1807 | '@pkgjs/parseargs@0.11.0':
1808 | optional: true
1809 |
1810 | '@rushstack/eslint-patch@1.7.2': {}
1811 |
1812 | '@swc/counter@0.1.3': {}
1813 |
1814 | '@swc/helpers@0.5.5':
1815 | dependencies:
1816 | '@swc/counter': 0.1.3
1817 | tslib: 2.6.2
1818 |
1819 | '@tailwindcss/node@4.0.4':
1820 | dependencies:
1821 | enhanced-resolve: 5.18.1
1822 | jiti: 2.4.2
1823 | tailwindcss: 4.0.4
1824 |
1825 | '@tailwindcss/oxide-android-arm64@4.0.4':
1826 | optional: true
1827 |
1828 | '@tailwindcss/oxide-darwin-arm64@4.0.4':
1829 | optional: true
1830 |
1831 | '@tailwindcss/oxide-darwin-x64@4.0.4':
1832 | optional: true
1833 |
1834 | '@tailwindcss/oxide-freebsd-x64@4.0.4':
1835 | optional: true
1836 |
1837 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.4':
1838 | optional: true
1839 |
1840 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.4':
1841 | optional: true
1842 |
1843 | '@tailwindcss/oxide-linux-arm64-musl@4.0.4':
1844 | optional: true
1845 |
1846 | '@tailwindcss/oxide-linux-x64-gnu@4.0.4':
1847 | optional: true
1848 |
1849 | '@tailwindcss/oxide-linux-x64-musl@4.0.4':
1850 | optional: true
1851 |
1852 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.4':
1853 | optional: true
1854 |
1855 | '@tailwindcss/oxide-win32-x64-msvc@4.0.4':
1856 | optional: true
1857 |
1858 | '@tailwindcss/oxide@4.0.4':
1859 | optionalDependencies:
1860 | '@tailwindcss/oxide-android-arm64': 4.0.4
1861 | '@tailwindcss/oxide-darwin-arm64': 4.0.4
1862 | '@tailwindcss/oxide-darwin-x64': 4.0.4
1863 | '@tailwindcss/oxide-freebsd-x64': 4.0.4
1864 | '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.4
1865 | '@tailwindcss/oxide-linux-arm64-gnu': 4.0.4
1866 | '@tailwindcss/oxide-linux-arm64-musl': 4.0.4
1867 | '@tailwindcss/oxide-linux-x64-gnu': 4.0.4
1868 | '@tailwindcss/oxide-linux-x64-musl': 4.0.4
1869 | '@tailwindcss/oxide-win32-arm64-msvc': 4.0.4
1870 | '@tailwindcss/oxide-win32-x64-msvc': 4.0.4
1871 |
1872 | '@tailwindcss/postcss@4.0.0':
1873 | dependencies:
1874 | '@alloc/quick-lru': 5.2.0
1875 | '@tailwindcss/node': 4.0.4
1876 | '@tailwindcss/oxide': 4.0.4
1877 | lightningcss: 1.29.1
1878 | postcss: 8.4.47
1879 | tailwindcss: 4.0.0
1880 |
1881 | '@types/estree@1.0.6': {}
1882 |
1883 | '@types/json-schema@7.0.15': {}
1884 |
1885 | '@types/json5@0.0.29': {}
1886 |
1887 | '@types/node@20.17.6':
1888 | dependencies:
1889 | undici-types: 6.19.8
1890 |
1891 | '@types/prop-types@15.7.11': {}
1892 |
1893 | '@types/react-dom@18.3.1':
1894 | dependencies:
1895 | '@types/react': 18.3.12
1896 |
1897 | '@types/react@18.3.12':
1898 | dependencies:
1899 | '@types/prop-types': 15.7.11
1900 | csstype: 3.1.3
1901 |
1902 | '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)':
1903 | dependencies:
1904 | '@eslint-community/regexpp': 4.11.0
1905 | '@typescript-eslint/parser': 6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)
1906 | '@typescript-eslint/scope-manager': 8.10.0
1907 | '@typescript-eslint/type-utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)
1908 | '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)
1909 | '@typescript-eslint/visitor-keys': 8.10.0
1910 | eslint: 9.14.0(jiti@2.4.2)
1911 | graphemer: 1.4.0
1912 | ignore: 5.3.1
1913 | natural-compare: 1.4.0
1914 | ts-api-utils: 1.3.0(typescript@5.6.3)
1915 | optionalDependencies:
1916 | typescript: 5.6.3
1917 | transitivePeerDependencies:
1918 | - supports-color
1919 |
1920 | '@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)':
1921 | dependencies:
1922 | '@typescript-eslint/scope-manager': 6.21.0
1923 | '@typescript-eslint/types': 6.21.0
1924 | '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3)
1925 | '@typescript-eslint/visitor-keys': 6.21.0
1926 | debug: 4.3.4
1927 | eslint: 9.14.0(jiti@2.4.2)
1928 | optionalDependencies:
1929 | typescript: 5.6.3
1930 | transitivePeerDependencies:
1931 | - supports-color
1932 |
1933 | '@typescript-eslint/scope-manager@6.21.0':
1934 | dependencies:
1935 | '@typescript-eslint/types': 6.21.0
1936 | '@typescript-eslint/visitor-keys': 6.21.0
1937 |
1938 | '@typescript-eslint/scope-manager@8.10.0':
1939 | dependencies:
1940 | '@typescript-eslint/types': 8.10.0
1941 | '@typescript-eslint/visitor-keys': 8.10.0
1942 |
1943 | '@typescript-eslint/type-utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)':
1944 | dependencies:
1945 | '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3)
1946 | '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)
1947 | debug: 4.3.4
1948 | ts-api-utils: 1.3.0(typescript@5.6.3)
1949 | optionalDependencies:
1950 | typescript: 5.6.3
1951 | transitivePeerDependencies:
1952 | - eslint
1953 | - supports-color
1954 |
1955 | '@typescript-eslint/types@6.21.0': {}
1956 |
1957 | '@typescript-eslint/types@8.10.0': {}
1958 |
1959 | '@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.3)':
1960 | dependencies:
1961 | '@typescript-eslint/types': 6.21.0
1962 | '@typescript-eslint/visitor-keys': 6.21.0
1963 | debug: 4.3.4
1964 | globby: 11.1.0
1965 | is-glob: 4.0.3
1966 | minimatch: 9.0.3
1967 | semver: 7.6.0
1968 | ts-api-utils: 1.2.1(typescript@5.6.3)
1969 | optionalDependencies:
1970 | typescript: 5.6.3
1971 | transitivePeerDependencies:
1972 | - supports-color
1973 |
1974 | '@typescript-eslint/typescript-estree@8.10.0(typescript@5.6.3)':
1975 | dependencies:
1976 | '@typescript-eslint/types': 8.10.0
1977 | '@typescript-eslint/visitor-keys': 8.10.0
1978 | debug: 4.3.4
1979 | fast-glob: 3.3.2
1980 | is-glob: 4.0.3
1981 | minimatch: 9.0.5
1982 | semver: 7.6.0
1983 | ts-api-utils: 1.3.0(typescript@5.6.3)
1984 | optionalDependencies:
1985 | typescript: 5.6.3
1986 | transitivePeerDependencies:
1987 | - supports-color
1988 |
1989 | '@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)':
1990 | dependencies:
1991 | '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@2.4.2))
1992 | '@typescript-eslint/scope-manager': 8.10.0
1993 | '@typescript-eslint/types': 8.10.0
1994 | '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3)
1995 | eslint: 9.14.0(jiti@2.4.2)
1996 | transitivePeerDependencies:
1997 | - supports-color
1998 | - typescript
1999 |
2000 | '@typescript-eslint/visitor-keys@6.21.0':
2001 | dependencies:
2002 | '@typescript-eslint/types': 6.21.0
2003 | eslint-visitor-keys: 3.4.3
2004 |
2005 | '@typescript-eslint/visitor-keys@8.10.0':
2006 | dependencies:
2007 | '@typescript-eslint/types': 8.10.0
2008 | eslint-visitor-keys: 3.4.3
2009 |
2010 | '@vercel/analytics@1.3.2(next@14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
2011 | dependencies:
2012 | server-only: 0.0.1
2013 | optionalDependencies:
2014 | next: 14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
2015 | react: 18.3.1
2016 |
2017 | '@vercel/speed-insights@1.0.14(next@14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
2018 | optionalDependencies:
2019 | next: 14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
2020 | react: 18.3.1
2021 |
2022 | acorn-jsx@5.3.2(acorn@8.14.0):
2023 | dependencies:
2024 | acorn: 8.14.0
2025 |
2026 | acorn@8.14.0: {}
2027 |
2028 | ajv@6.12.6:
2029 | dependencies:
2030 | fast-deep-equal: 3.1.3
2031 | fast-json-stable-stringify: 2.1.0
2032 | json-schema-traverse: 0.4.1
2033 | uri-js: 4.4.1
2034 |
2035 | ansi-regex@5.0.1: {}
2036 |
2037 | ansi-regex@6.0.1: {}
2038 |
2039 | ansi-styles@4.3.0:
2040 | dependencies:
2041 | color-convert: 2.0.1
2042 |
2043 | ansi-styles@6.2.1: {}
2044 |
2045 | argparse@2.0.1: {}
2046 |
2047 | aria-query@5.3.0:
2048 | dependencies:
2049 | dequal: 2.0.3
2050 |
2051 | array-buffer-byte-length@1.0.1:
2052 | dependencies:
2053 | call-bind: 1.0.7
2054 | is-array-buffer: 3.0.4
2055 |
2056 | array-includes@3.1.7:
2057 | dependencies:
2058 | call-bind: 1.0.7
2059 | define-properties: 1.2.1
2060 | es-abstract: 1.22.4
2061 | get-intrinsic: 1.2.4
2062 | is-string: 1.0.7
2063 |
2064 | array-union@2.1.0: {}
2065 |
2066 | array.prototype.filter@1.0.3:
2067 | dependencies:
2068 | call-bind: 1.0.7
2069 | define-properties: 1.2.1
2070 | es-abstract: 1.22.4
2071 | es-array-method-boxes-properly: 1.0.0
2072 | is-string: 1.0.7
2073 |
2074 | array.prototype.findlastindex@1.2.4:
2075 | dependencies:
2076 | call-bind: 1.0.7
2077 | define-properties: 1.2.1
2078 | es-abstract: 1.22.4
2079 | es-errors: 1.3.0
2080 | es-shim-unscopables: 1.0.2
2081 |
2082 | array.prototype.flat@1.3.2:
2083 | dependencies:
2084 | call-bind: 1.0.7
2085 | define-properties: 1.2.1
2086 | es-abstract: 1.22.4
2087 | es-shim-unscopables: 1.0.2
2088 |
2089 | array.prototype.flatmap@1.3.2:
2090 | dependencies:
2091 | call-bind: 1.0.7
2092 | define-properties: 1.2.1
2093 | es-abstract: 1.22.4
2094 | es-shim-unscopables: 1.0.2
2095 |
2096 | array.prototype.tosorted@1.1.3:
2097 | dependencies:
2098 | call-bind: 1.0.7
2099 | define-properties: 1.2.1
2100 | es-abstract: 1.22.4
2101 | es-errors: 1.3.0
2102 | es-shim-unscopables: 1.0.2
2103 |
2104 | arraybuffer.prototype.slice@1.0.3:
2105 | dependencies:
2106 | array-buffer-byte-length: 1.0.1
2107 | call-bind: 1.0.7
2108 | define-properties: 1.2.1
2109 | es-abstract: 1.22.4
2110 | es-errors: 1.3.0
2111 | get-intrinsic: 1.2.4
2112 | is-array-buffer: 3.0.4
2113 | is-shared-array-buffer: 1.0.2
2114 |
2115 | ast-types-flow@0.0.8: {}
2116 |
2117 | asynciterator.prototype@1.0.0:
2118 | dependencies:
2119 | has-symbols: 1.0.3
2120 |
2121 | available-typed-arrays@1.0.7:
2122 | dependencies:
2123 | possible-typed-array-names: 1.0.0
2124 |
2125 | axe-core@4.7.0: {}
2126 |
2127 | axobject-query@3.2.1:
2128 | dependencies:
2129 | dequal: 2.0.3
2130 |
2131 | balanced-match@1.0.2: {}
2132 |
2133 | brace-expansion@1.1.11:
2134 | dependencies:
2135 | balanced-match: 1.0.2
2136 | concat-map: 0.0.1
2137 |
2138 | brace-expansion@2.0.1:
2139 | dependencies:
2140 | balanced-match: 1.0.2
2141 |
2142 | braces@3.0.2:
2143 | dependencies:
2144 | fill-range: 7.0.1
2145 |
2146 | busboy@1.6.0:
2147 | dependencies:
2148 | streamsearch: 1.1.0
2149 |
2150 | call-bind@1.0.7:
2151 | dependencies:
2152 | es-define-property: 1.0.0
2153 | es-errors: 1.3.0
2154 | function-bind: 1.1.2
2155 | get-intrinsic: 1.2.4
2156 | set-function-length: 1.2.1
2157 |
2158 | callsites@3.1.0: {}
2159 |
2160 | caniuse-lite@1.0.30001655: {}
2161 |
2162 | chalk@4.1.2:
2163 | dependencies:
2164 | ansi-styles: 4.3.0
2165 | supports-color: 7.2.0
2166 |
2167 | client-only@0.0.1: {}
2168 |
2169 | clsx@2.1.1: {}
2170 |
2171 | color-convert@2.0.1:
2172 | dependencies:
2173 | color-name: 1.1.4
2174 |
2175 | color-name@1.1.4: {}
2176 |
2177 | concat-map@0.0.1: {}
2178 |
2179 | cross-spawn@7.0.3:
2180 | dependencies:
2181 | path-key: 3.1.1
2182 | shebang-command: 2.0.0
2183 | which: 2.0.2
2184 |
2185 | csstype@3.1.3: {}
2186 |
2187 | damerau-levenshtein@1.0.8: {}
2188 |
2189 | debug@3.2.7:
2190 | dependencies:
2191 | ms: 2.1.3
2192 |
2193 | debug@4.3.4:
2194 | dependencies:
2195 | ms: 2.1.2
2196 |
2197 | deep-is@0.1.4: {}
2198 |
2199 | define-data-property@1.1.4:
2200 | dependencies:
2201 | es-define-property: 1.0.0
2202 | es-errors: 1.3.0
2203 | gopd: 1.0.1
2204 |
2205 | define-properties@1.2.1:
2206 | dependencies:
2207 | define-data-property: 1.1.4
2208 | has-property-descriptors: 1.0.2
2209 | object-keys: 1.1.1
2210 |
2211 | dequal@2.0.3: {}
2212 |
2213 | detect-libc@1.0.3: {}
2214 |
2215 | dir-glob@3.0.1:
2216 | dependencies:
2217 | path-type: 4.0.0
2218 |
2219 | discord-markdown@2.5.1:
2220 | dependencies:
2221 | highlight.js: 11.9.0
2222 | simple-markdown: 0.7.3
2223 |
2224 | doctrine@2.1.0:
2225 | dependencies:
2226 | esutils: 2.0.3
2227 |
2228 | eastasianwidth@0.2.0: {}
2229 |
2230 | emoji-regex@8.0.0: {}
2231 |
2232 | emoji-regex@9.2.2: {}
2233 |
2234 | enhanced-resolve@5.15.0:
2235 | dependencies:
2236 | graceful-fs: 4.2.11
2237 | tapable: 2.2.1
2238 |
2239 | enhanced-resolve@5.18.1:
2240 | dependencies:
2241 | graceful-fs: 4.2.11
2242 | tapable: 2.2.1
2243 |
2244 | es-abstract@1.22.4:
2245 | dependencies:
2246 | array-buffer-byte-length: 1.0.1
2247 | arraybuffer.prototype.slice: 1.0.3
2248 | available-typed-arrays: 1.0.7
2249 | call-bind: 1.0.7
2250 | es-define-property: 1.0.0
2251 | es-errors: 1.3.0
2252 | es-set-tostringtag: 2.0.2
2253 | es-to-primitive: 1.2.1
2254 | function.prototype.name: 1.1.6
2255 | get-intrinsic: 1.2.4
2256 | get-symbol-description: 1.0.2
2257 | globalthis: 1.0.3
2258 | gopd: 1.0.1
2259 | has-property-descriptors: 1.0.2
2260 | has-proto: 1.0.3
2261 | has-symbols: 1.0.3
2262 | hasown: 2.0.1
2263 | internal-slot: 1.0.7
2264 | is-array-buffer: 3.0.4
2265 | is-callable: 1.2.7
2266 | is-negative-zero: 2.0.3
2267 | is-regex: 1.1.4
2268 | is-shared-array-buffer: 1.0.2
2269 | is-string: 1.0.7
2270 | is-typed-array: 1.1.13
2271 | is-weakref: 1.0.2
2272 | object-inspect: 1.13.1
2273 | object-keys: 1.1.1
2274 | object.assign: 4.1.5
2275 | regexp.prototype.flags: 1.5.2
2276 | safe-array-concat: 1.1.0
2277 | safe-regex-test: 1.0.3
2278 | string.prototype.trim: 1.2.8
2279 | string.prototype.trimend: 1.0.7
2280 | string.prototype.trimstart: 1.0.7
2281 | typed-array-buffer: 1.0.2
2282 | typed-array-byte-length: 1.0.0
2283 | typed-array-byte-offset: 1.0.1
2284 | typed-array-length: 1.0.4
2285 | unbox-primitive: 1.0.2
2286 | which-typed-array: 1.1.14
2287 |
2288 | es-array-method-boxes-properly@1.0.0: {}
2289 |
2290 | es-define-property@1.0.0:
2291 | dependencies:
2292 | get-intrinsic: 1.2.4
2293 |
2294 | es-errors@1.3.0: {}
2295 |
2296 | es-iterator-helpers@1.0.17:
2297 | dependencies:
2298 | asynciterator.prototype: 1.0.0
2299 | call-bind: 1.0.7
2300 | define-properties: 1.2.1
2301 | es-abstract: 1.22.4
2302 | es-errors: 1.3.0
2303 | es-set-tostringtag: 2.0.2
2304 | function-bind: 1.1.2
2305 | get-intrinsic: 1.2.4
2306 | globalthis: 1.0.3
2307 | has-property-descriptors: 1.0.2
2308 | has-proto: 1.0.3
2309 | has-symbols: 1.0.3
2310 | internal-slot: 1.0.7
2311 | iterator.prototype: 1.1.2
2312 | safe-array-concat: 1.1.0
2313 |
2314 | es-set-tostringtag@2.0.2:
2315 | dependencies:
2316 | get-intrinsic: 1.2.4
2317 | has-tostringtag: 1.0.2
2318 | hasown: 2.0.1
2319 |
2320 | es-shim-unscopables@1.0.2:
2321 | dependencies:
2322 | hasown: 2.0.1
2323 |
2324 | es-to-primitive@1.2.1:
2325 | dependencies:
2326 | is-callable: 1.2.7
2327 | is-date-object: 1.0.5
2328 | is-symbol: 1.0.4
2329 |
2330 | escape-string-regexp@4.0.0: {}
2331 |
2332 | eslint-config-next@14.2.15(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3):
2333 | dependencies:
2334 | '@next/eslint-plugin-next': 14.2.15
2335 | '@rushstack/eslint-patch': 1.7.2
2336 | '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)
2337 | '@typescript-eslint/parser': 6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)
2338 | eslint: 9.14.0(jiti@2.4.2)
2339 | eslint-import-resolver-node: 0.3.9
2340 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@9.14.0(jiti@2.4.2))
2341 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.14.0(jiti@2.4.2))
2342 | eslint-plugin-jsx-a11y: 6.8.0(eslint@9.14.0(jiti@2.4.2))
2343 | eslint-plugin-react: 7.33.2(eslint@9.14.0(jiti@2.4.2))
2344 | eslint-plugin-react-hooks: 4.6.0(eslint@9.14.0(jiti@2.4.2))
2345 | optionalDependencies:
2346 | typescript: 5.6.3
2347 | transitivePeerDependencies:
2348 | - eslint-import-resolver-webpack
2349 | - supports-color
2350 |
2351 | eslint-import-resolver-node@0.3.9:
2352 | dependencies:
2353 | debug: 3.2.7
2354 | is-core-module: 2.13.1
2355 | resolve: 1.22.8
2356 | transitivePeerDependencies:
2357 | - supports-color
2358 |
2359 | eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@9.14.0(jiti@2.4.2)):
2360 | dependencies:
2361 | debug: 4.3.4
2362 | enhanced-resolve: 5.15.0
2363 | eslint: 9.14.0(jiti@2.4.2)
2364 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.14.0(jiti@2.4.2))
2365 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.14.0(jiti@2.4.2))
2366 | fast-glob: 3.3.2
2367 | get-tsconfig: 4.7.2
2368 | is-core-module: 2.13.1
2369 | is-glob: 4.0.3
2370 | transitivePeerDependencies:
2371 | - '@typescript-eslint/parser'
2372 | - eslint-import-resolver-node
2373 | - eslint-import-resolver-webpack
2374 | - supports-color
2375 |
2376 | eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.14.0(jiti@2.4.2)):
2377 | dependencies:
2378 | debug: 3.2.7
2379 | optionalDependencies:
2380 | '@typescript-eslint/parser': 6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)
2381 | eslint: 9.14.0(jiti@2.4.2)
2382 | eslint-import-resolver-node: 0.3.9
2383 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@9.14.0(jiti@2.4.2))
2384 | transitivePeerDependencies:
2385 | - supports-color
2386 |
2387 | eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.14.0(jiti@2.4.2)):
2388 | dependencies:
2389 | array-includes: 3.1.7
2390 | array.prototype.findlastindex: 1.2.4
2391 | array.prototype.flat: 1.3.2
2392 | array.prototype.flatmap: 1.3.2
2393 | debug: 3.2.7
2394 | doctrine: 2.1.0
2395 | eslint: 9.14.0(jiti@2.4.2)
2396 | eslint-import-resolver-node: 0.3.9
2397 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.14.0(jiti@2.4.2))
2398 | hasown: 2.0.1
2399 | is-core-module: 2.13.1
2400 | is-glob: 4.0.3
2401 | minimatch: 3.1.2
2402 | object.fromentries: 2.0.7
2403 | object.groupby: 1.0.2
2404 | object.values: 1.1.7
2405 | semver: 6.3.1
2406 | tsconfig-paths: 3.15.0
2407 | optionalDependencies:
2408 | '@typescript-eslint/parser': 6.21.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)
2409 | transitivePeerDependencies:
2410 | - eslint-import-resolver-typescript
2411 | - eslint-import-resolver-webpack
2412 | - supports-color
2413 |
2414 | eslint-plugin-jsx-a11y@6.8.0(eslint@9.14.0(jiti@2.4.2)):
2415 | dependencies:
2416 | '@babel/runtime': 7.24.5
2417 | aria-query: 5.3.0
2418 | array-includes: 3.1.7
2419 | array.prototype.flatmap: 1.3.2
2420 | ast-types-flow: 0.0.8
2421 | axe-core: 4.7.0
2422 | axobject-query: 3.2.1
2423 | damerau-levenshtein: 1.0.8
2424 | emoji-regex: 9.2.2
2425 | es-iterator-helpers: 1.0.17
2426 | eslint: 9.14.0(jiti@2.4.2)
2427 | hasown: 2.0.1
2428 | jsx-ast-utils: 3.3.5
2429 | language-tags: 1.0.9
2430 | minimatch: 3.1.2
2431 | object.entries: 1.1.7
2432 | object.fromentries: 2.0.7
2433 |
2434 | eslint-plugin-react-hooks@4.6.0(eslint@9.14.0(jiti@2.4.2)):
2435 | dependencies:
2436 | eslint: 9.14.0(jiti@2.4.2)
2437 |
2438 | eslint-plugin-react@7.33.2(eslint@9.14.0(jiti@2.4.2)):
2439 | dependencies:
2440 | array-includes: 3.1.7
2441 | array.prototype.flatmap: 1.3.2
2442 | array.prototype.tosorted: 1.1.3
2443 | doctrine: 2.1.0
2444 | es-iterator-helpers: 1.0.17
2445 | eslint: 9.14.0(jiti@2.4.2)
2446 | estraverse: 5.3.0
2447 | jsx-ast-utils: 3.3.5
2448 | minimatch: 3.1.2
2449 | object.entries: 1.1.7
2450 | object.fromentries: 2.0.7
2451 | object.hasown: 1.1.3
2452 | object.values: 1.1.7
2453 | prop-types: 15.8.1
2454 | resolve: 2.0.0-next.5
2455 | semver: 6.3.1
2456 | string.prototype.matchall: 4.0.10
2457 |
2458 | eslint-scope@8.2.0:
2459 | dependencies:
2460 | esrecurse: 4.3.0
2461 | estraverse: 5.3.0
2462 |
2463 | eslint-visitor-keys@3.4.3: {}
2464 |
2465 | eslint-visitor-keys@4.2.0: {}
2466 |
2467 | eslint@9.14.0(jiti@2.4.2):
2468 | dependencies:
2469 | '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@2.4.2))
2470 | '@eslint-community/regexpp': 4.12.1
2471 | '@eslint/config-array': 0.18.0
2472 | '@eslint/core': 0.7.0
2473 | '@eslint/eslintrc': 3.1.0
2474 | '@eslint/js': 9.14.0
2475 | '@eslint/plugin-kit': 0.2.0
2476 | '@humanfs/node': 0.16.6
2477 | '@humanwhocodes/module-importer': 1.0.1
2478 | '@humanwhocodes/retry': 0.4.1
2479 | '@types/estree': 1.0.6
2480 | '@types/json-schema': 7.0.15
2481 | ajv: 6.12.6
2482 | chalk: 4.1.2
2483 | cross-spawn: 7.0.3
2484 | debug: 4.3.4
2485 | escape-string-regexp: 4.0.0
2486 | eslint-scope: 8.2.0
2487 | eslint-visitor-keys: 4.2.0
2488 | espree: 10.3.0
2489 | esquery: 1.5.0
2490 | esutils: 2.0.3
2491 | fast-deep-equal: 3.1.3
2492 | file-entry-cache: 8.0.0
2493 | find-up: 5.0.0
2494 | glob-parent: 6.0.2
2495 | ignore: 5.3.1
2496 | imurmurhash: 0.1.4
2497 | is-glob: 4.0.3
2498 | json-stable-stringify-without-jsonify: 1.0.1
2499 | lodash.merge: 4.6.2
2500 | minimatch: 3.1.2
2501 | natural-compare: 1.4.0
2502 | optionator: 0.9.3
2503 | text-table: 0.2.0
2504 | optionalDependencies:
2505 | jiti: 2.4.2
2506 | transitivePeerDependencies:
2507 | - supports-color
2508 |
2509 | espree@10.3.0:
2510 | dependencies:
2511 | acorn: 8.14.0
2512 | acorn-jsx: 5.3.2(acorn@8.14.0)
2513 | eslint-visitor-keys: 4.2.0
2514 |
2515 | esquery@1.5.0:
2516 | dependencies:
2517 | estraverse: 5.3.0
2518 |
2519 | esrecurse@4.3.0:
2520 | dependencies:
2521 | estraverse: 5.3.0
2522 |
2523 | estraverse@5.3.0: {}
2524 |
2525 | esutils@2.0.3: {}
2526 |
2527 | fast-deep-equal@3.1.3: {}
2528 |
2529 | fast-glob@3.3.2:
2530 | dependencies:
2531 | '@nodelib/fs.stat': 2.0.5
2532 | '@nodelib/fs.walk': 1.2.8
2533 | glob-parent: 5.1.2
2534 | merge2: 1.4.1
2535 | micromatch: 4.0.5
2536 |
2537 | fast-json-stable-stringify@2.1.0: {}
2538 |
2539 | fast-levenshtein@2.0.6: {}
2540 |
2541 | fastq@1.17.1:
2542 | dependencies:
2543 | reusify: 1.0.4
2544 |
2545 | file-entry-cache@8.0.0:
2546 | dependencies:
2547 | flat-cache: 4.0.1
2548 |
2549 | fill-range@7.0.1:
2550 | dependencies:
2551 | to-regex-range: 5.0.1
2552 |
2553 | find-up@5.0.0:
2554 | dependencies:
2555 | locate-path: 6.0.0
2556 | path-exists: 4.0.0
2557 |
2558 | flat-cache@4.0.1:
2559 | dependencies:
2560 | flatted: 3.2.9
2561 | keyv: 4.5.4
2562 |
2563 | flatted@3.2.9: {}
2564 |
2565 | for-each@0.3.3:
2566 | dependencies:
2567 | is-callable: 1.2.7
2568 |
2569 | foreground-child@3.1.1:
2570 | dependencies:
2571 | cross-spawn: 7.0.3
2572 | signal-exit: 4.1.0
2573 |
2574 | framer-motion@11.11.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2575 | dependencies:
2576 | tslib: 2.6.2
2577 | optionalDependencies:
2578 | react: 18.3.1
2579 | react-dom: 18.3.1(react@18.3.1)
2580 |
2581 | function-bind@1.1.2: {}
2582 |
2583 | function.prototype.name@1.1.6:
2584 | dependencies:
2585 | call-bind: 1.0.7
2586 | define-properties: 1.2.1
2587 | es-abstract: 1.22.4
2588 | functions-have-names: 1.2.3
2589 |
2590 | functions-have-names@1.2.3: {}
2591 |
2592 | get-intrinsic@1.2.4:
2593 | dependencies:
2594 | es-errors: 1.3.0
2595 | function-bind: 1.1.2
2596 | has-proto: 1.0.3
2597 | has-symbols: 1.0.3
2598 | hasown: 2.0.1
2599 |
2600 | get-symbol-description@1.0.2:
2601 | dependencies:
2602 | call-bind: 1.0.7
2603 | es-errors: 1.3.0
2604 | get-intrinsic: 1.2.4
2605 |
2606 | get-tsconfig@4.7.2:
2607 | dependencies:
2608 | resolve-pkg-maps: 1.0.0
2609 |
2610 | glob-parent@5.1.2:
2611 | dependencies:
2612 | is-glob: 4.0.3
2613 |
2614 | glob-parent@6.0.2:
2615 | dependencies:
2616 | is-glob: 4.0.3
2617 |
2618 | glob@10.3.10:
2619 | dependencies:
2620 | foreground-child: 3.1.1
2621 | jackspeak: 2.3.6
2622 | minimatch: 9.0.3
2623 | minipass: 7.0.4
2624 | path-scurry: 1.10.1
2625 |
2626 | globals@14.0.0: {}
2627 |
2628 | globalthis@1.0.3:
2629 | dependencies:
2630 | define-properties: 1.2.1
2631 |
2632 | globby@11.1.0:
2633 | dependencies:
2634 | array-union: 2.1.0
2635 | dir-glob: 3.0.1
2636 | fast-glob: 3.3.2
2637 | ignore: 5.3.1
2638 | merge2: 1.4.1
2639 | slash: 3.0.0
2640 |
2641 | gopd@1.0.1:
2642 | dependencies:
2643 | get-intrinsic: 1.2.4
2644 |
2645 | graceful-fs@4.2.11: {}
2646 |
2647 | graphemer@1.4.0: {}
2648 |
2649 | has-bigints@1.0.2: {}
2650 |
2651 | has-flag@4.0.0: {}
2652 |
2653 | has-property-descriptors@1.0.2:
2654 | dependencies:
2655 | es-define-property: 1.0.0
2656 |
2657 | has-proto@1.0.3: {}
2658 |
2659 | has-symbols@1.0.3: {}
2660 |
2661 | has-tostringtag@1.0.2:
2662 | dependencies:
2663 | has-symbols: 1.0.3
2664 |
2665 | hasown@2.0.1:
2666 | dependencies:
2667 | function-bind: 1.1.2
2668 |
2669 | highlight.js@11.9.0: {}
2670 |
2671 | ignore@5.3.1: {}
2672 |
2673 | import-fresh@3.3.0:
2674 | dependencies:
2675 | parent-module: 1.0.1
2676 | resolve-from: 4.0.0
2677 |
2678 | imurmurhash@0.1.4: {}
2679 |
2680 | internal-slot@1.0.7:
2681 | dependencies:
2682 | es-errors: 1.3.0
2683 | hasown: 2.0.1
2684 | side-channel: 1.0.5
2685 |
2686 | is-array-buffer@3.0.4:
2687 | dependencies:
2688 | call-bind: 1.0.7
2689 | get-intrinsic: 1.2.4
2690 |
2691 | is-async-function@2.0.0:
2692 | dependencies:
2693 | has-tostringtag: 1.0.2
2694 |
2695 | is-bigint@1.0.4:
2696 | dependencies:
2697 | has-bigints: 1.0.2
2698 |
2699 | is-boolean-object@1.1.2:
2700 | dependencies:
2701 | call-bind: 1.0.7
2702 | has-tostringtag: 1.0.2
2703 |
2704 | is-callable@1.2.7: {}
2705 |
2706 | is-core-module@2.13.1:
2707 | dependencies:
2708 | hasown: 2.0.1
2709 |
2710 | is-date-object@1.0.5:
2711 | dependencies:
2712 | has-tostringtag: 1.0.2
2713 |
2714 | is-extglob@2.1.1: {}
2715 |
2716 | is-finalizationregistry@1.0.2:
2717 | dependencies:
2718 | call-bind: 1.0.7
2719 |
2720 | is-fullwidth-code-point@3.0.0: {}
2721 |
2722 | is-generator-function@1.0.10:
2723 | dependencies:
2724 | has-tostringtag: 1.0.2
2725 |
2726 | is-glob@4.0.3:
2727 | dependencies:
2728 | is-extglob: 2.1.1
2729 |
2730 | is-map@2.0.2: {}
2731 |
2732 | is-negative-zero@2.0.3: {}
2733 |
2734 | is-number-object@1.0.7:
2735 | dependencies:
2736 | has-tostringtag: 1.0.2
2737 |
2738 | is-number@7.0.0: {}
2739 |
2740 | is-regex@1.1.4:
2741 | dependencies:
2742 | call-bind: 1.0.7
2743 | has-tostringtag: 1.0.2
2744 |
2745 | is-set@2.0.2: {}
2746 |
2747 | is-shared-array-buffer@1.0.2:
2748 | dependencies:
2749 | call-bind: 1.0.7
2750 |
2751 | is-string@1.0.7:
2752 | dependencies:
2753 | has-tostringtag: 1.0.2
2754 |
2755 | is-symbol@1.0.4:
2756 | dependencies:
2757 | has-symbols: 1.0.3
2758 |
2759 | is-typed-array@1.1.13:
2760 | dependencies:
2761 | which-typed-array: 1.1.14
2762 |
2763 | is-weakmap@2.0.1: {}
2764 |
2765 | is-weakref@1.0.2:
2766 | dependencies:
2767 | call-bind: 1.0.7
2768 |
2769 | is-weakset@2.0.2:
2770 | dependencies:
2771 | call-bind: 1.0.7
2772 | get-intrinsic: 1.2.4
2773 |
2774 | isarray@2.0.5: {}
2775 |
2776 | isexe@2.0.0: {}
2777 |
2778 | iterator.prototype@1.1.2:
2779 | dependencies:
2780 | define-properties: 1.2.1
2781 | get-intrinsic: 1.2.4
2782 | has-symbols: 1.0.3
2783 | reflect.getprototypeof: 1.0.5
2784 | set-function-name: 2.0.2
2785 |
2786 | jackspeak@2.3.6:
2787 | dependencies:
2788 | '@isaacs/cliui': 8.0.2
2789 | optionalDependencies:
2790 | '@pkgjs/parseargs': 0.11.0
2791 |
2792 | jiti@2.4.2: {}
2793 |
2794 | js-tokens@4.0.0: {}
2795 |
2796 | js-yaml@4.1.0:
2797 | dependencies:
2798 | argparse: 2.0.1
2799 |
2800 | json-buffer@3.0.1: {}
2801 |
2802 | json-schema-traverse@0.4.1: {}
2803 |
2804 | json-stable-stringify-without-jsonify@1.0.1: {}
2805 |
2806 | json5@1.0.2:
2807 | dependencies:
2808 | minimist: 1.2.8
2809 |
2810 | jsx-ast-utils@3.3.5:
2811 | dependencies:
2812 | array-includes: 3.1.7
2813 | array.prototype.flat: 1.3.2
2814 | object.assign: 4.1.5
2815 | object.values: 1.1.7
2816 |
2817 | keyv@4.5.4:
2818 | dependencies:
2819 | json-buffer: 3.0.1
2820 |
2821 | language-subtag-registry@0.3.22: {}
2822 |
2823 | language-tags@1.0.9:
2824 | dependencies:
2825 | language-subtag-registry: 0.3.22
2826 |
2827 | levn@0.4.1:
2828 | dependencies:
2829 | prelude-ls: 1.2.1
2830 | type-check: 0.4.0
2831 |
2832 | lightningcss-darwin-arm64@1.29.1:
2833 | optional: true
2834 |
2835 | lightningcss-darwin-x64@1.29.1:
2836 | optional: true
2837 |
2838 | lightningcss-freebsd-x64@1.29.1:
2839 | optional: true
2840 |
2841 | lightningcss-linux-arm-gnueabihf@1.29.1:
2842 | optional: true
2843 |
2844 | lightningcss-linux-arm64-gnu@1.29.1:
2845 | optional: true
2846 |
2847 | lightningcss-linux-arm64-musl@1.29.1:
2848 | optional: true
2849 |
2850 | lightningcss-linux-x64-gnu@1.29.1:
2851 | optional: true
2852 |
2853 | lightningcss-linux-x64-musl@1.29.1:
2854 | optional: true
2855 |
2856 | lightningcss-win32-arm64-msvc@1.29.1:
2857 | optional: true
2858 |
2859 | lightningcss-win32-x64-msvc@1.29.1:
2860 | optional: true
2861 |
2862 | lightningcss@1.29.1:
2863 | dependencies:
2864 | detect-libc: 1.0.3
2865 | optionalDependencies:
2866 | lightningcss-darwin-arm64: 1.29.1
2867 | lightningcss-darwin-x64: 1.29.1
2868 | lightningcss-freebsd-x64: 1.29.1
2869 | lightningcss-linux-arm-gnueabihf: 1.29.1
2870 | lightningcss-linux-arm64-gnu: 1.29.1
2871 | lightningcss-linux-arm64-musl: 1.29.1
2872 | lightningcss-linux-x64-gnu: 1.29.1
2873 | lightningcss-linux-x64-musl: 1.29.1
2874 | lightningcss-win32-arm64-msvc: 1.29.1
2875 | lightningcss-win32-x64-msvc: 1.29.1
2876 |
2877 | locate-path@6.0.0:
2878 | dependencies:
2879 | p-locate: 5.0.0
2880 |
2881 | lodash.merge@4.6.2: {}
2882 |
2883 | loose-envify@1.4.0:
2884 | dependencies:
2885 | js-tokens: 4.0.0
2886 |
2887 | lru-cache@10.2.0: {}
2888 |
2889 | lru-cache@6.0.0:
2890 | dependencies:
2891 | yallist: 4.0.0
2892 |
2893 | merge2@1.4.1: {}
2894 |
2895 | micromatch@4.0.5:
2896 | dependencies:
2897 | braces: 3.0.2
2898 | picomatch: 2.3.1
2899 |
2900 | minimatch@3.1.2:
2901 | dependencies:
2902 | brace-expansion: 1.1.11
2903 |
2904 | minimatch@9.0.3:
2905 | dependencies:
2906 | brace-expansion: 2.0.1
2907 |
2908 | minimatch@9.0.5:
2909 | dependencies:
2910 | brace-expansion: 2.0.1
2911 |
2912 | minimist@1.2.8: {}
2913 |
2914 | minipass@7.0.4: {}
2915 |
2916 | ms@2.1.2: {}
2917 |
2918 | ms@2.1.3: {}
2919 |
2920 | nanoid@3.3.7: {}
2921 |
2922 | natural-compare@1.4.0: {}
2923 |
2924 | next@14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2925 | dependencies:
2926 | '@next/env': 14.2.15
2927 | '@swc/helpers': 0.5.5
2928 | busboy: 1.6.0
2929 | caniuse-lite: 1.0.30001655
2930 | graceful-fs: 4.2.11
2931 | postcss: 8.4.31
2932 | react: 18.3.1
2933 | react-dom: 18.3.1(react@18.3.1)
2934 | styled-jsx: 5.1.1(react@18.3.1)
2935 | optionalDependencies:
2936 | '@next/swc-darwin-arm64': 14.2.15
2937 | '@next/swc-darwin-x64': 14.2.15
2938 | '@next/swc-linux-arm64-gnu': 14.2.15
2939 | '@next/swc-linux-arm64-musl': 14.2.15
2940 | '@next/swc-linux-x64-gnu': 14.2.15
2941 | '@next/swc-linux-x64-musl': 14.2.15
2942 | '@next/swc-win32-arm64-msvc': 14.2.15
2943 | '@next/swc-win32-ia32-msvc': 14.2.15
2944 | '@next/swc-win32-x64-msvc': 14.2.15
2945 | transitivePeerDependencies:
2946 | - '@babel/core'
2947 | - babel-plugin-macros
2948 |
2949 | object-assign@4.1.1: {}
2950 |
2951 | object-inspect@1.13.1: {}
2952 |
2953 | object-keys@1.1.1: {}
2954 |
2955 | object.assign@4.1.5:
2956 | dependencies:
2957 | call-bind: 1.0.7
2958 | define-properties: 1.2.1
2959 | has-symbols: 1.0.3
2960 | object-keys: 1.1.1
2961 |
2962 | object.entries@1.1.7:
2963 | dependencies:
2964 | call-bind: 1.0.7
2965 | define-properties: 1.2.1
2966 | es-abstract: 1.22.4
2967 |
2968 | object.fromentries@2.0.7:
2969 | dependencies:
2970 | call-bind: 1.0.7
2971 | define-properties: 1.2.1
2972 | es-abstract: 1.22.4
2973 |
2974 | object.groupby@1.0.2:
2975 | dependencies:
2976 | array.prototype.filter: 1.0.3
2977 | call-bind: 1.0.7
2978 | define-properties: 1.2.1
2979 | es-abstract: 1.22.4
2980 | es-errors: 1.3.0
2981 |
2982 | object.hasown@1.1.3:
2983 | dependencies:
2984 | define-properties: 1.2.1
2985 | es-abstract: 1.22.4
2986 |
2987 | object.values@1.1.7:
2988 | dependencies:
2989 | call-bind: 1.0.7
2990 | define-properties: 1.2.1
2991 | es-abstract: 1.22.4
2992 |
2993 | optionator@0.9.3:
2994 | dependencies:
2995 | '@aashutoshrathi/word-wrap': 1.2.6
2996 | deep-is: 0.1.4
2997 | fast-levenshtein: 2.0.6
2998 | levn: 0.4.1
2999 | prelude-ls: 1.2.1
3000 | type-check: 0.4.0
3001 |
3002 | p-limit@3.1.0:
3003 | dependencies:
3004 | yocto-queue: 0.1.0
3005 |
3006 | p-locate@5.0.0:
3007 | dependencies:
3008 | p-limit: 3.1.0
3009 |
3010 | parent-module@1.0.1:
3011 | dependencies:
3012 | callsites: 3.1.0
3013 |
3014 | path-exists@4.0.0: {}
3015 |
3016 | path-key@3.1.1: {}
3017 |
3018 | path-parse@1.0.7: {}
3019 |
3020 | path-scurry@1.10.1:
3021 | dependencies:
3022 | lru-cache: 10.2.0
3023 | minipass: 7.0.4
3024 |
3025 | path-type@4.0.0: {}
3026 |
3027 | picocolors@1.1.0: {}
3028 |
3029 | picomatch@2.3.1: {}
3030 |
3031 | possible-typed-array-names@1.0.0: {}
3032 |
3033 | postcss@8.4.31:
3034 | dependencies:
3035 | nanoid: 3.3.7
3036 | picocolors: 1.1.0
3037 | source-map-js: 1.2.1
3038 |
3039 | postcss@8.4.47:
3040 | dependencies:
3041 | nanoid: 3.3.7
3042 | picocolors: 1.1.0
3043 | source-map-js: 1.2.1
3044 |
3045 | prelude-ls@1.2.1: {}
3046 |
3047 | prettier-plugin-tailwindcss@0.6.11(prettier@3.3.3):
3048 | dependencies:
3049 | prettier: 3.3.3
3050 |
3051 | prettier@3.3.3: {}
3052 |
3053 | prop-types@15.8.1:
3054 | dependencies:
3055 | loose-envify: 1.4.0
3056 | object-assign: 4.1.1
3057 | react-is: 16.13.1
3058 |
3059 | punycode@2.3.1: {}
3060 |
3061 | queue-microtask@1.2.3: {}
3062 |
3063 | react-dom@18.3.1(react@18.3.1):
3064 | dependencies:
3065 | loose-envify: 1.4.0
3066 | react: 18.3.1
3067 | scheduler: 0.23.2
3068 |
3069 | react-is@16.13.1: {}
3070 |
3071 | react@18.3.1:
3072 | dependencies:
3073 | loose-envify: 1.4.0
3074 |
3075 | reflect.getprototypeof@1.0.5:
3076 | dependencies:
3077 | call-bind: 1.0.7
3078 | define-properties: 1.2.1
3079 | es-abstract: 1.22.4
3080 | es-errors: 1.3.0
3081 | get-intrinsic: 1.2.4
3082 | globalthis: 1.0.3
3083 | which-builtin-type: 1.1.3
3084 |
3085 | regenerator-runtime@0.14.1: {}
3086 |
3087 | regexp.prototype.flags@1.5.2:
3088 | dependencies:
3089 | call-bind: 1.0.7
3090 | define-properties: 1.2.1
3091 | es-errors: 1.3.0
3092 | set-function-name: 2.0.2
3093 |
3094 | resolve-from@4.0.0: {}
3095 |
3096 | resolve-pkg-maps@1.0.0: {}
3097 |
3098 | resolve@1.22.8:
3099 | dependencies:
3100 | is-core-module: 2.13.1
3101 | path-parse: 1.0.7
3102 | supports-preserve-symlinks-flag: 1.0.0
3103 |
3104 | resolve@2.0.0-next.5:
3105 | dependencies:
3106 | is-core-module: 2.13.1
3107 | path-parse: 1.0.7
3108 | supports-preserve-symlinks-flag: 1.0.0
3109 |
3110 | reusify@1.0.4: {}
3111 |
3112 | run-parallel@1.2.0:
3113 | dependencies:
3114 | queue-microtask: 1.2.3
3115 |
3116 | safe-array-concat@1.1.0:
3117 | dependencies:
3118 | call-bind: 1.0.7
3119 | get-intrinsic: 1.2.4
3120 | has-symbols: 1.0.3
3121 | isarray: 2.0.5
3122 |
3123 | safe-regex-test@1.0.3:
3124 | dependencies:
3125 | call-bind: 1.0.7
3126 | es-errors: 1.3.0
3127 | is-regex: 1.1.4
3128 |
3129 | scheduler@0.23.2:
3130 | dependencies:
3131 | loose-envify: 1.4.0
3132 |
3133 | semver@6.3.1: {}
3134 |
3135 | semver@7.6.0:
3136 | dependencies:
3137 | lru-cache: 6.0.0
3138 |
3139 | server-only@0.0.1: {}
3140 |
3141 | set-function-length@1.2.1:
3142 | dependencies:
3143 | define-data-property: 1.1.4
3144 | es-errors: 1.3.0
3145 | function-bind: 1.1.2
3146 | get-intrinsic: 1.2.4
3147 | gopd: 1.0.1
3148 | has-property-descriptors: 1.0.2
3149 |
3150 | set-function-name@2.0.2:
3151 | dependencies:
3152 | define-data-property: 1.1.4
3153 | es-errors: 1.3.0
3154 | functions-have-names: 1.2.3
3155 | has-property-descriptors: 1.0.2
3156 |
3157 | shebang-command@2.0.0:
3158 | dependencies:
3159 | shebang-regex: 3.0.0
3160 |
3161 | shebang-regex@3.0.0: {}
3162 |
3163 | side-channel@1.0.5:
3164 | dependencies:
3165 | call-bind: 1.0.7
3166 | es-errors: 1.3.0
3167 | get-intrinsic: 1.2.4
3168 | object-inspect: 1.13.1
3169 |
3170 | signal-exit@4.1.0: {}
3171 |
3172 | simple-markdown@0.7.3:
3173 | dependencies:
3174 | '@types/react': 18.3.12
3175 |
3176 | slash@3.0.0: {}
3177 |
3178 | source-map-js@1.2.1: {}
3179 |
3180 | streamsearch@1.1.0: {}
3181 |
3182 | string-width@4.2.3:
3183 | dependencies:
3184 | emoji-regex: 8.0.0
3185 | is-fullwidth-code-point: 3.0.0
3186 | strip-ansi: 6.0.1
3187 |
3188 | string-width@5.1.2:
3189 | dependencies:
3190 | eastasianwidth: 0.2.0
3191 | emoji-regex: 9.2.2
3192 | strip-ansi: 7.1.0
3193 |
3194 | string.prototype.matchall@4.0.10:
3195 | dependencies:
3196 | call-bind: 1.0.7
3197 | define-properties: 1.2.1
3198 | es-abstract: 1.22.4
3199 | get-intrinsic: 1.2.4
3200 | has-symbols: 1.0.3
3201 | internal-slot: 1.0.7
3202 | regexp.prototype.flags: 1.5.2
3203 | set-function-name: 2.0.2
3204 | side-channel: 1.0.5
3205 |
3206 | string.prototype.trim@1.2.8:
3207 | dependencies:
3208 | call-bind: 1.0.7
3209 | define-properties: 1.2.1
3210 | es-abstract: 1.22.4
3211 |
3212 | string.prototype.trimend@1.0.7:
3213 | dependencies:
3214 | call-bind: 1.0.7
3215 | define-properties: 1.2.1
3216 | es-abstract: 1.22.4
3217 |
3218 | string.prototype.trimstart@1.0.7:
3219 | dependencies:
3220 | call-bind: 1.0.7
3221 | define-properties: 1.2.1
3222 | es-abstract: 1.22.4
3223 |
3224 | strip-ansi@6.0.1:
3225 | dependencies:
3226 | ansi-regex: 5.0.1
3227 |
3228 | strip-ansi@7.1.0:
3229 | dependencies:
3230 | ansi-regex: 6.0.1
3231 |
3232 | strip-bom@3.0.0: {}
3233 |
3234 | strip-json-comments@3.1.1: {}
3235 |
3236 | styled-jsx@5.1.1(react@18.3.1):
3237 | dependencies:
3238 | client-only: 0.0.1
3239 | react: 18.3.1
3240 |
3241 | supports-color@7.2.0:
3242 | dependencies:
3243 | has-flag: 4.0.0
3244 |
3245 | supports-preserve-symlinks-flag@1.0.0: {}
3246 |
3247 | tailwind-merge@2.5.4: {}
3248 |
3249 | tailwind-scrollbar-hide@1.1.7: {}
3250 |
3251 | tailwindcss@4.0.0: {}
3252 |
3253 | tailwindcss@4.0.4: {}
3254 |
3255 | tapable@2.2.1: {}
3256 |
3257 | text-table@0.2.0: {}
3258 |
3259 | to-regex-range@5.0.1:
3260 | dependencies:
3261 | is-number: 7.0.0
3262 |
3263 | ts-api-utils@1.2.1(typescript@5.6.3):
3264 | dependencies:
3265 | typescript: 5.6.3
3266 |
3267 | ts-api-utils@1.3.0(typescript@5.6.3):
3268 | dependencies:
3269 | typescript: 5.6.3
3270 |
3271 | tsconfig-paths@3.15.0:
3272 | dependencies:
3273 | '@types/json5': 0.0.29
3274 | json5: 1.0.2
3275 | minimist: 1.2.8
3276 | strip-bom: 3.0.0
3277 |
3278 | tslib@2.6.2: {}
3279 |
3280 | type-check@0.4.0:
3281 | dependencies:
3282 | prelude-ls: 1.2.1
3283 |
3284 | typed-array-buffer@1.0.2:
3285 | dependencies:
3286 | call-bind: 1.0.7
3287 | es-errors: 1.3.0
3288 | is-typed-array: 1.1.13
3289 |
3290 | typed-array-byte-length@1.0.0:
3291 | dependencies:
3292 | call-bind: 1.0.7
3293 | for-each: 0.3.3
3294 | has-proto: 1.0.3
3295 | is-typed-array: 1.1.13
3296 |
3297 | typed-array-byte-offset@1.0.1:
3298 | dependencies:
3299 | available-typed-arrays: 1.0.7
3300 | call-bind: 1.0.7
3301 | for-each: 0.3.3
3302 | gopd: 1.0.1
3303 | has-proto: 1.0.3
3304 | is-typed-array: 1.1.13
3305 |
3306 | typed-array-length@1.0.4:
3307 | dependencies:
3308 | call-bind: 1.0.7
3309 | for-each: 0.3.3
3310 | is-typed-array: 1.1.13
3311 |
3312 | typescript@5.6.3: {}
3313 |
3314 | unbox-primitive@1.0.2:
3315 | dependencies:
3316 | call-bind: 1.0.7
3317 | has-bigints: 1.0.2
3318 | has-symbols: 1.0.3
3319 | which-boxed-primitive: 1.0.2
3320 |
3321 | undici-types@6.19.8: {}
3322 |
3323 | uri-js@4.4.1:
3324 | dependencies:
3325 | punycode: 2.3.1
3326 |
3327 | use-lanyard@1.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
3328 | dependencies:
3329 | react: 18.3.1
3330 | react-dom: 18.3.1(react@18.3.1)
3331 |
3332 | which-boxed-primitive@1.0.2:
3333 | dependencies:
3334 | is-bigint: 1.0.4
3335 | is-boolean-object: 1.1.2
3336 | is-number-object: 1.0.7
3337 | is-string: 1.0.7
3338 | is-symbol: 1.0.4
3339 |
3340 | which-builtin-type@1.1.3:
3341 | dependencies:
3342 | function.prototype.name: 1.1.6
3343 | has-tostringtag: 1.0.2
3344 | is-async-function: 2.0.0
3345 | is-date-object: 1.0.5
3346 | is-finalizationregistry: 1.0.2
3347 | is-generator-function: 1.0.10
3348 | is-regex: 1.1.4
3349 | is-weakref: 1.0.2
3350 | isarray: 2.0.5
3351 | which-boxed-primitive: 1.0.2
3352 | which-collection: 1.0.1
3353 | which-typed-array: 1.1.14
3354 |
3355 | which-collection@1.0.1:
3356 | dependencies:
3357 | is-map: 2.0.2
3358 | is-set: 2.0.2
3359 | is-weakmap: 2.0.1
3360 | is-weakset: 2.0.2
3361 |
3362 | which-typed-array@1.1.14:
3363 | dependencies:
3364 | available-typed-arrays: 1.0.7
3365 | call-bind: 1.0.7
3366 | for-each: 0.3.3
3367 | gopd: 1.0.1
3368 | has-tostringtag: 1.0.2
3369 |
3370 | which@2.0.2:
3371 | dependencies:
3372 | isexe: 2.0.0
3373 |
3374 | wrap-ansi@7.0.0:
3375 | dependencies:
3376 | ansi-styles: 4.3.0
3377 | string-width: 4.2.3
3378 | strip-ansi: 6.0.1
3379 |
3380 | wrap-ansi@8.1.0:
3381 | dependencies:
3382 | ansi-styles: 6.2.1
3383 | string-width: 5.1.2
3384 | strip-ansi: 7.1.0
3385 |
3386 | yallist@4.0.0: {}
3387 |
3388 | yocto-queue@0.1.0: {}
3389 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | '@tailwindcss/postcss': {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/public/default-appAsset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plskz/lanyard-visualizer/03763abd974c16c7381fa9438cfe183a803035ac/public/default-appAsset.png
--------------------------------------------------------------------------------
/public/default-avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plskz/lanyard-visualizer/03763abd974c16c7381fa9438cfe183a803035ac/public/default-avatar.png
--------------------------------------------------------------------------------
/public/favicon-dev.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plskz/lanyard-visualizer/03763abd974c16c7381fa9438cfe183a803035ac/public/favicon-dev.ico
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plskz/lanyard-visualizer/03763abd974c16c7381fa9438cfe183a803035ac/public/favicon.ico
--------------------------------------------------------------------------------
/public/lanyard-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plskz/lanyard-visualizer/03763abd974c16c7381fa9438cfe183a803035ac/public/lanyard-logo.png
--------------------------------------------------------------------------------
/src/app/globals.css:
--------------------------------------------------------------------------------
1 | @import 'tailwindcss';
2 |
3 | @theme {
4 | --animate-spotlight: spotlight 2s ease 0.75s 1 forwards;
5 |
6 | @keyframes spotlight {
7 | 0% {
8 | opacity: 0;
9 | transform: translate(-72%, -62%) scale(0.5);
10 | }
11 | 100% {
12 | opacity: 1;
13 | transform: translate(-50%, -40%) scale(1);
14 | }
15 | }
16 | }
17 |
18 | /*
19 | The default border color has changed to `currentColor` in Tailwind CSS v4,
20 | so we've added these compatibility styles to make sure everything still
21 | looks the same as it did with Tailwind CSS v3.
22 |
23 | If we ever want to remove these styles, we need to add an explicit border
24 | color utility to any element that depends on these defaults.
25 | */
26 | @layer base {
27 | *,
28 | ::after,
29 | ::before,
30 | ::backdrop,
31 | ::file-selector-button {
32 | border-color: var(--color-gray-200, currentColor);
33 | }
34 | }
35 |
36 | @layer base {
37 | body {
38 | @apply bg-neutral-950 bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(120,119,198,0.3),rgba(255,255,255,0))] text-white;
39 | }
40 | }
41 |
42 | .d-emoji {
43 | object-fit: contain;
44 | width: 22px;
45 | height: 22px;
46 | vertical-align: bottom;
47 | display: inline-block;
48 | }
49 |
50 | body::before,
51 | body::after {
52 | position: absolute;
53 | left: 0;
54 | top: 0;
55 | content: "";
56 | width: 100%;
57 | height: 100%;
58 | z-index: -1;
59 | opacity: 7%;
60 | }
61 |
62 | body::before {
63 | filter: url(#noiseFilter);
64 | }
65 |
--------------------------------------------------------------------------------
/src/app/hooks/useTime.ts:
--------------------------------------------------------------------------------
1 | import { useEffect, useState } from 'react'
2 | import { Timestamps } from 'use-lanyard'
3 |
4 | const padding = (n: number) => (n < 10 ? `0${n}` : n)
5 |
6 | const DAY = 1000 * 60 * 60 * 24
7 | const HOUR = 1000 * 60 * 60
8 | const MINUTE = 1000 * 60
9 | const SECOND = 1000
10 |
11 | type Times =
12 | | {
13 | start: string
14 | end: null
15 | completion: null
16 | }
17 | | {
18 | start: string
19 | end: string
20 | completion: number
21 | }
22 | | {
23 | start: null
24 | end: string
25 | completion: number
26 | }
27 |
28 | const getTime = (timestamps?: Timestamps): Times | null => {
29 | if (!timestamps) return null
30 |
31 | const { start, end } = timestamps
32 |
33 | if (!start && !end) return null
34 |
35 | const now = new Date()
36 | const startDate = start ? new Date(start) : now
37 | const miliseconds = now.getTime() - startDate.getTime()
38 | const days = Math.floor(miliseconds / DAY)
39 | const hours = Math.floor((miliseconds % DAY) / HOUR)
40 | const minutes = Math.floor((miliseconds % HOUR) / MINUTE)
41 | const seconds = Math.floor((miliseconds % MINUTE) / SECOND)
42 |
43 | if (!end) {
44 | if (days > 0)
45 | return {
46 | start: `${days > 1 ? `${days} days` : `${days} day`}`,
47 | end: null,
48 | completion: null,
49 | }
50 |
51 | return {
52 | start: `${hours ? `${hours}:` : ''}${padding(minutes)}:${padding(
53 | seconds
54 | )}`,
55 | end: null,
56 | completion: null,
57 | }
58 | }
59 |
60 | const endDate = new Date(end)
61 | const endMiliseconds = endDate.getTime() - startDate.getTime()
62 | const endHours = Math.floor(endMiliseconds / HOUR)
63 | const endMinutes = Math.floor((endMiliseconds % HOUR) / MINUTE)
64 | const endSeconds = Math.floor((endMiliseconds % MINUTE) / SECOND)
65 |
66 | const calc = Math.floor((miliseconds / endMiliseconds) * 10000) / 100
67 |
68 | if (!start) {
69 | return {
70 | start: null,
71 | end: `${endHours ? `${endHours}:` : ''}${padding(endMinutes)}:${padding(
72 | endSeconds
73 | )}`,
74 | completion: calc > 100 ? 100 : calc,
75 | }
76 | }
77 |
78 | return {
79 | start: `${hours ? `${hours}:` : ''}${padding(minutes)}:${padding(seconds)}`,
80 | end: `${endHours ? `${endHours}:` : ''}${padding(endMinutes)}:${padding(
81 | endSeconds
82 | )}`,
83 | completion: calc > 100 ? 100 : calc,
84 | }
85 | }
86 |
87 | export const useTime = (timestamps?: Timestamps) => {
88 | const [time, setTime] = useState(getTime(timestamps))
89 |
90 | useEffect(() => {
91 | if (!timestamps) return setTime(null)
92 |
93 | const interval = setInterval(() => {
94 | setTime(getTime(timestamps))
95 | }, 200)
96 |
97 | return () => clearInterval(interval)
98 | }, [timestamps])
99 |
100 | return time
101 | }
102 |
--------------------------------------------------------------------------------
/src/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import type { Metadata } from "next";
2 | import { Inter } from "next/font/google";
3 | import "./globals.css";
4 |
5 | import { Analytics } from "@vercel/analytics/react";
6 | import { SpeedInsights } from "@vercel/speed-insights/next";
7 | import { Noise } from "@/components/ui/background-noise";
8 |
9 | const inter = Inter({ subsets: ["latin"] });
10 |
11 | export const metadata: Metadata = {
12 | title: "Lanyard Visualizer",
13 | description: "Display your Discord status online using Lanyard API",
14 | icons: [
15 | {
16 | rel: "icon",
17 | url:
18 | process.env.NODE_ENV === "production"
19 | ? "/favicon.ico"
20 | : "/favicon-dev.ico",
21 | },
22 | ],
23 | };
24 |
25 | export default function RootLayout({
26 | children,
27 | }: Readonly<{
28 | children: React.ReactNode;
29 | }>) {
30 | return (
31 |
32 |
33 | {children}
34 |
35 |
36 | {/* vercel */}
37 |
38 |
39 |
40 |
41 | );
42 | }
43 |
--------------------------------------------------------------------------------
/src/app/not-found.tsx:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 |
3 | export default function NotFound() {
4 | return (
5 |
6 |
7 |
8 | Page not found
9 |
10 |
14 | Return Home
15 |
16 |
17 |
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/src/app/page.tsx:
--------------------------------------------------------------------------------
1 | import { GitHubIcon } from "@/components/icons/github";
2 | import Input from "@/components/ui/input";
3 | import { Spotlight } from "@/components/ui/spotlight";
4 | import Image from "next/image";
5 |
6 | export default function Home() {
7 | return (
8 |
9 |
13 |
14 |
15 |
22 |
23 |
24 | Lanyard
25 |
26 | Visualizer
27 |
28 |
29 |
30 |
31 | A proof-of-concept example to show what you can build with Lanyard
32 | API.
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | );
41 | }
42 |
--------------------------------------------------------------------------------
/src/app/profile/[id]/error.tsx:
--------------------------------------------------------------------------------
1 | "use client"; // Error components must be Client Components
2 |
3 | import Link from "next/link";
4 | import { useEffect } from "react";
5 |
6 | export default function Error({
7 | error,
8 | reset,
9 | }: {
10 | error: Error & { digest?: string };
11 | reset: () => void;
12 | }) {
13 | useEffect(() => {
14 | console.error(error);
15 | }, [error]);
16 |
17 | return (
18 |
19 |
20 |
21 | {error.message}
22 |
23 |
24 | Make sure you entered a valid Discord user ID and make sure the user
25 | is in{" "}
26 |
31 | Lanyard's Discord server
32 |
33 | . Reload the page after you join the Discord server or try with an
34 | user ID who is already in Discord.
35 |
36 |
40 | Return Home
41 |
42 |
43 |
44 | );
45 | }
46 |
--------------------------------------------------------------------------------
/src/app/profile/[id]/page.tsx:
--------------------------------------------------------------------------------
1 | import Activities from "@/components/activities";
2 | import Details from "@/components/details";
3 | import SocialLinks from "@/components/social-links";
4 | import { Icon } from "@/components/ui/evervault-card";
5 | import { getBio, getSocials } from "@/utils/lanyard";
6 | import Link from "next/link";
7 |
8 | export default async function Page({ params }: { params: { id: string } }) {
9 | const socials = await getSocials(params.id);
10 | const bio = await getBio(params.id);
11 |
12 | return (
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
28 |
29 |
30 |
31 |
35 | Return Home
36 |
37 |
38 | );
39 | }
40 |
--------------------------------------------------------------------------------
/src/app/template.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { motion } from "framer-motion";
4 |
5 | export default function Template({ children }: { children: React.ReactNode }) {
6 | return (
7 |
12 | {children}
13 |
14 | );
15 | }
16 |
--------------------------------------------------------------------------------
/src/components/activities.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { getActivity } from "@/utils/activity";
4 | import { appAsset } from "@/utils/discord-cdn";
5 | import Image from "next/image";
6 | import { useLanyardWS } from "use-lanyard";
7 | import { ActivitiesSkeleton } from "./skeletons";
8 | import Timestamps from "./timestamps";
9 | import Link from "next/link";
10 |
11 | export default function Activities({ userID }: { userID: any }) {
12 | const data = useLanyardWS(userID);
13 |
14 | if (!data) return ;
15 | if (JSON.stringify(data) === "{}") throw new Error("User not found");
16 |
17 | const { activities } = data;
18 |
19 | // don't show custom status
20 | const filteredActivities = activities.filter(
21 | (activity) => activity.type !== 4,
22 | );
23 |
24 | // No activities
25 | if (!filteredActivities.length) {
26 | return (
27 |
28 |
I'm not currently doing anything!
29 |
30 | );
31 | }
32 |
33 | return (
34 |
35 |
36 | {filteredActivities.map((activity) => {
37 | const { name, id, details, state, timestamps, type } = activity;
38 |
39 | const largeImage = appAsset(activity);
40 |
41 | // Listening to Spotify
42 | if (name === "Spotify") {
43 | const { song, artist, album_art_url, track_id } = data.spotify!;
44 |
45 | return (
46 |
47 |
54 |
55 |
56 |
{getActivity(activity)}
57 |
62 |
{song}
63 |
64 |
by {artist}
65 |
66 |
67 |
68 |
69 | );
70 | }
71 |
72 | return (
73 |
74 |
81 |
82 |
83 |
{getActivity(activity)}
84 |
85 |
{details}
86 |
{state}
87 |
88 |
89 |
90 |
91 | );
92 | })}
93 |
94 |
95 | );
96 | }
97 |
--------------------------------------------------------------------------------
/src/components/details.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { avatarUri } from "@/utils/discord-cdn";
4 | import { toHTML } from "discord-markdown";
5 | import { useLanyardWS } from "use-lanyard";
6 | import { DetailsSkeleton } from "./skeletons";
7 | import { EvervaultCard } from "./ui/evervault-card";
8 |
9 | export default function Details({ userID, bio }: { userID: any; bio: string }) {
10 | const data = useLanyardWS(userID);
11 |
12 | if (!data) return ;
13 | if (JSON.stringify(data) === "{}") throw new Error("User not found");
14 |
15 | const { id, avatar, global_name, username } = data.discord_user;
16 | const userAvatar = avatarUri(id, avatar!);
17 |
18 | return (
19 | <>
20 |
21 | {global_name || username}
22 | {bio && (
23 |
28 | )}
29 | >
30 | );
31 | }
32 |
--------------------------------------------------------------------------------
/src/components/icons/github.tsx:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 | import { SVGProps } from "react";
3 |
4 | export function GitHubIcon(props: SVGProps) {
5 | return (
6 |
7 |
15 |
22 |
23 |
24 |
25 |
26 |
27 | );
28 | }
29 |
--------------------------------------------------------------------------------
/src/components/skeletons.tsx:
--------------------------------------------------------------------------------
1 | import { EvervaultCard } from "./ui/evervault-card";
2 |
3 | export function DetailsSkeleton() {
4 | return (
5 | <>
6 |
7 | Loading...
8 | >
9 | );
10 | }
11 |
12 | export function ActivitiesSkeleton() {
13 | return (
14 |
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/src/components/social-links.tsx:
--------------------------------------------------------------------------------
1 | import { ConnectedAccount } from "@/utils/types";
2 | import Link from "next/link";
3 |
4 | export default async function SocialLinks({
5 | socials,
6 | }: {
7 | socials: ConnectedAccount[];
8 | }) {
9 | if (!socials) return null;
10 |
11 | return (
12 |
13 | {socials.map(({ type, id, name, href }) => (
14 |
18 | {type === "domain" ? name : type}
19 |
20 | ))}
21 |
22 | );
23 | }
24 |
--------------------------------------------------------------------------------
/src/components/timestamps.tsx:
--------------------------------------------------------------------------------
1 | import { useTime } from "@/app/hooks/useTime";
2 | import type { Timestamps } from "use-lanyard";
3 |
4 | export default function Timestamps({
5 | timestamps,
6 | type,
7 | }: {
8 | timestamps?: Timestamps;
9 | type: number;
10 | }) {
11 | const time = useTime(timestamps);
12 |
13 | if (!time) return null;
14 |
15 | if (type === 2) {
16 | return (
17 |
18 |
29 |
30 |
{time.start}
31 |
{time.end}
32 |
33 |
34 | );
35 | }
36 |
37 | if (time.start && !time.end) return {time.start} elapsed
;
38 | if (time.end && !time.start) return {time.end} left
;
39 |
40 | return null;
41 | }
42 |
--------------------------------------------------------------------------------
/src/components/ui/background-noise.tsx:
--------------------------------------------------------------------------------
1 | export function Noise() {
2 | return (
3 |
4 |
5 |
10 |
11 |
12 | );
13 | }
14 |
--------------------------------------------------------------------------------
/src/components/ui/evervault-card.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { cn } from "@/utils/cn";
4 | import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
5 | import Image from "next/image";
6 | import { useEffect, useState } from "react";
7 |
8 | export const EvervaultCard = ({
9 | userAvatar,
10 | status,
11 | className,
12 | }: {
13 | userAvatar: string;
14 | status: string;
15 | className?: string;
16 | }) => {
17 | let mouseX = useMotionValue(0);
18 | let mouseY = useMotionValue(0);
19 |
20 | const [randomString, setRandomString] = useState("");
21 |
22 | useEffect(() => {
23 | let str = generateRandomString(1500);
24 | setRandomString(str);
25 | }, []);
26 |
27 | function onMouseMove({ currentTarget, clientX, clientY }: any) {
28 | let { left, top } = currentTarget.getBoundingClientRect();
29 | mouseX.set(clientX - left);
30 | mouseY.set(clientY - top);
31 |
32 | const str = generateRandomString(1500);
33 | setRandomString(str);
34 | }
35 |
36 | return (
37 |
43 |
47 |
52 |
53 |
54 |
55 | {/*
Text */}
56 |
69 |
70 |
71 |
72 |
73 | );
74 | };
75 |
76 | export function CardPattern({ mouseX, mouseY, randomString }: any) {
77 | let maskImage = useMotionTemplate`radial-gradient(250px at ${mouseX}px ${mouseY}px, white, transparent)`;
78 | let style = { maskImage, WebkitMaskImage: maskImage };
79 |
80 | return (
81 |
82 |
83 |
87 |
91 |
92 | {randomString}
93 |
94 |
95 |
96 | );
97 | }
98 |
99 | const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
100 | export const generateRandomString = (length: number) => {
101 | let result = "";
102 | for (let i = 0; i < length; i++) {
103 | result += characters.charAt(Math.floor(Math.random() * characters.length));
104 | }
105 | return result;
106 | };
107 |
108 | export const Icon = ({ className, ...rest }: any) => {
109 | return (
110 |
119 |
120 |
121 | );
122 | };
123 |
--------------------------------------------------------------------------------
/src/components/ui/input.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useRouter } from "next/navigation";
4 | import { FormEvent } from "react";
5 |
6 | export default function Input() {
7 | const router = useRouter();
8 |
9 | function onSubmit(e: FormEvent) {
10 | e.preventDefault();
11 | const discordId = e.currentTarget.discordId.value;
12 | router.push(`/profile/${discordId}`);
13 | }
14 |
15 | return (
16 |
36 | );
37 | }
38 |
--------------------------------------------------------------------------------
/src/components/ui/spotlight.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { cn } from "@/utils/cn";
3 |
4 | type SpotlightProps = {
5 | className?: string;
6 | fill?: string;
7 | };
8 |
9 | export const Spotlight = ({ className, fill }: SpotlightProps) => {
10 | return (
11 |
20 |
21 |
30 |
31 |
32 |
41 |
42 |
48 |
52 |
53 |
54 |
55 | );
56 | };
57 |
--------------------------------------------------------------------------------
/src/utils/activity.ts:
--------------------------------------------------------------------------------
1 | export const stringFromType = (type: number) => {
2 | switch (type) {
3 | case 0:
4 | return 'Playing'
5 | case 1:
6 | return 'Streaming'
7 | case 2:
8 | return 'Listening to'
9 | case 3:
10 | return 'Watching'
11 | default:
12 | return ''
13 | }
14 | }
15 | export const getActivity = (activity: any) => {
16 | // remove the 'Playing' prefix
17 | // if (activity.type === 0) return activity.name
18 |
19 | return `${stringFromType(activity.type)} ${activity.name}`
20 | }
21 |
--------------------------------------------------------------------------------
/src/utils/cn.ts:
--------------------------------------------------------------------------------
1 | import { ClassValue, clsx } from 'clsx'
2 | import { twMerge } from 'tailwind-merge'
3 |
4 | export function cn(...inputs: ClassValue[]) {
5 | return twMerge(clsx(inputs))
6 | }
7 |
--------------------------------------------------------------------------------
/src/utils/discord-cdn.ts:
--------------------------------------------------------------------------------
1 | import { Activity } from 'use-lanyard'
2 |
3 | export const userProfileLink = (id: string) => `https://discord.com/users/${id}`
4 |
5 | export const avatarUri = (id: string, avatarHash: string) => {
6 | if (!avatarHash) return '/default-avatar.png'
7 |
8 | // if hash starts with a_ it's animated
9 | if (avatarHash.startsWith('a_')) return `https://cdn.discordapp.com/avatars/${id}/${avatarHash}.gif?size=256`
10 |
11 | return `https://cdn.discordapp.com/avatars/${id}/${avatarHash}.png?size=256`
12 | }
13 |
14 | export const appAsset = (activity: Activity) => {
15 | const { application_id, assets, name } = activity
16 |
17 | // custom assets
18 | if (name === 'Figma') return 'https://i.imgur.com/gXxhZ4A.png'
19 | if (name === 'Blender') return 'https://i.imgur.com/aOBW69f.png'
20 |
21 | // @ts-ignore - temporary support for ps4 zzzz
22 | if (activity.platform === 'ps4') return `https://media.discordapp.net/${assets?.small_image.split(':')[1]}`
23 |
24 | // external discord asset thing
25 | const split = assets?.large_image.split(':') || []
26 | if (split.length > 1) return `https://media.discordapp.net/${split[1]}`
27 |
28 | // Used for the Discord Verified Games that don't have assets keys attached to them in Lanyard
29 | if (application_id && !assets) return `https://dcdn.dstn.to/app-icons/${application_id}.png?size=256`
30 |
31 | // default app asset
32 | if (!application_id && !assets) return '/default-appAsset.png'
33 |
34 | return `https://cdn.discordapp.com/app-assets/${application_id}/${assets!.large_image}.png?size=256`
35 | }
36 |
--------------------------------------------------------------------------------
/src/utils/lanyard.ts:
--------------------------------------------------------------------------------
1 | 'use server'
2 |
3 | import { ConnectedAccount } from './types'
4 |
5 | export const getSocials = async (id: string) => {
6 | const data = await fetch(`https://dcdn.dstn.to/profile/${id}`, {
7 | next: { revalidate: 3600 },
8 | })
9 | const res = await data.json()
10 |
11 | const socials: ConnectedAccount[] = res.connected_accounts
12 |
13 | const generateHref = ({ type, name, id }: ConnectedAccount): string => {
14 | switch (type) {
15 | case 'paypal':
16 | return `https://www.paypal.me/${name}`
17 | case 'reddit':
18 | return `https://reddit.com/u/${name}`
19 | case 'steam':
20 | return `https://steamcommunity.com/id/${name}`
21 | case 'tiktok':
22 | return `https://www.tiktok.com/@${name}`
23 | case 'twitter':
24 | return `https://twitter.com/${name}`
25 | case 'ebay':
26 | return `https://www.ebay.com/usr/${name}`
27 | case 'crunchyroll':
28 | return `https://www.crunchyroll.com/user/${name}`
29 | case 'playstationnetwork':
30 | return `https://my.playstation.com/profile/${name}`
31 | case 'xbox':
32 | return `https://account.xbox.com/en-us/profile?gamertag=${name}`
33 | case 'battle.net':
34 | return `https://battle.net/${name}`
35 | case 'domain':
36 | return `https://${name}`
37 | case 'epicgames':
38 | return `https://www.epicgames.com/account/profile`
39 | case 'instagram':
40 | return `https://instagram.com/${name}`
41 | case 'leagueoflegends':
42 | return `https://na.op.gg/summoner/userName=${name}`
43 | case 'riot games':
44 | return `https://na.leagueoflegends.com/en-us/summoner/${id}`
45 | case 'youtube':
46 | return `https://www.youtube.com/channel/${id}`
47 | case 'spotify':
48 | return `https://open.spotify.com/user/${id}`
49 | case 'facebook':
50 | return `https://www.facebook.com/${id}`
51 | case 'github':
52 | return `https://github.com/${name}`
53 | case 'twitch':
54 | return `https://www.twitch.tv/${name}`
55 | default:
56 | return `https://google.com/search?q=${name}`
57 | }
58 | }
59 |
60 | socials?.map((account: ConnectedAccount) => {
61 | account.href = generateHref(account)
62 | return account
63 | })
64 |
65 | return socials
66 | }
67 |
68 | export const getBio = async (id: string) => {
69 | const data = await fetch(`https://dcdn.dstn.to/profile/${id}`, {
70 | next: { revalidate: 3600 },
71 | })
72 | const res = await data.json()
73 |
74 | return res?.user?.bio
75 | }
76 |
--------------------------------------------------------------------------------
/src/utils/types.ts:
--------------------------------------------------------------------------------
1 | export interface ConnectedAccount {
2 | type: string
3 | id: string
4 | name: string
5 | href: string
6 | metadata?: Record
7 | verified: boolean
8 | }
9 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "lib": ["dom", "dom.iterable", "esnext"],
4 | "allowJs": true,
5 | "skipLibCheck": true,
6 | "strict": true,
7 | "noEmit": true,
8 | "esModuleInterop": true,
9 | "module": "esnext",
10 | "moduleResolution": "bundler",
11 | "resolveJsonModule": true,
12 | "isolatedModules": true,
13 | "jsx": "preserve",
14 | "incremental": true,
15 | "plugins": [
16 | {
17 | "name": "next"
18 | }
19 | ],
20 | "paths": {
21 | "@/*": ["./src/*"]
22 | }
23 | },
24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
25 | "exclude": ["node_modules"]
26 | }
27 |
--------------------------------------------------------------------------------