├── .gitignore
├── README.md
├── app
├── Hello.tsx
├── _app.tsx
├── _document.tsx
├── api
│ └── [...route]
│ │ └── route.ts
├── layout.tsx
└── page.tsx
├── next-env.d.ts
├── next.config.js
├── package-lock.json
├── package.json
├── postcss.config.js
├── styles
└── globals.css
├── tailwind.config.js
└── tsconfig.json
/.gitignore:
--------------------------------------------------------------------------------
1 | # prod
2 | out/
3 |
4 | # dev
5 | .next/
6 | .yarn/
7 | !.yarn/releases
8 | .vscode/*
9 | !.vscode/launch.json
10 | !.vscode/*.code-snippets
11 | .idea/workspace.xml
12 | .idea/usage.statistics.xml
13 | .idea/shelf
14 |
15 | # deps
16 | node_modules/
17 |
18 | # env
19 | .env
20 | .env.production
21 |
22 | # logs
23 | logs/
24 | *.log
25 | npm-debug.log*
26 | yarn-debug.log*
27 | yarn-error.log*
28 | pnpm-debug.log*
29 | lerna-debug.log*
30 |
31 | # misc
32 | .DS_Store
33 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This is a [honojs/hono](https://hono.dev/) + [Next.js](https://nextjs.org/) project forked from [templates](https://github.com/honojs/starter/tree/main/templates/nextjs) and updated to use Nextjs' App Router.
2 |
3 | ## Getting Started
4 |
5 | First, run the development server:
6 |
7 | ```bash
8 | npm run dev
9 | # or
10 | yarn dev
11 | # or
12 | pnpm dev
13 | # or
14 | bun dev
15 | ```
16 |
17 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18 |
19 | You can start editing the API by modifying `app/api/[...route]/route.tsx` and learn more by taking a look to the [API documentation](https://hono.dev/api/hono).
20 |
21 | ## Learn More
22 |
23 | To learn more about Hono and Next.js, take a look at the following resources:
24 |
25 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
26 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
27 |
28 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
29 |
30 | ## Deploy on Vercel
31 |
32 | The easiest way to deploy your Hono + Next.js app is to use the [Vercel Platform](https://vercel.com/templates?search=hono) from the creators of Next.js.
33 |
34 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
35 |
--------------------------------------------------------------------------------
/app/Hello.tsx:
--------------------------------------------------------------------------------
1 | 'use client'
2 | import Link from 'next/link'
3 | import { useEffect, useState } from 'react'
4 |
5 | export default function Hello() {
6 | const [message, setMessage] = useState()
7 |
8 | useEffect(() => {
9 | const fetchData = async () => {
10 | const res = await fetch('/api/hello')
11 | const {message} = await res.json()
12 | setMessage(message)
13 | }
14 | fetchData()
15 | }, [])
16 |
17 | return
18 |
19 |
20 | Here is the response to your API call:
21 |
22 |
23 | {!message ? "Loading..." : message}
24 |
25 |
30 | View the API call
31 |
32 |
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/app/_app.tsx:
--------------------------------------------------------------------------------
1 | import type { AppProps } from 'next/app'
2 |
3 | export default function App({ Component, pageProps }: AppProps) {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/app/_document.tsx:
--------------------------------------------------------------------------------
1 | import { Html, Head, Main, NextScript } from 'next/document'
2 |
3 | export default function Document() {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | )
13 | }
14 |
--------------------------------------------------------------------------------
/app/api/[...route]/route.ts:
--------------------------------------------------------------------------------
1 | import { Hono } from 'hono'
2 | import { handle } from 'hono/vercel'
3 | export const dynamic = 'force-dynamic'
4 |
5 | const app = new Hono().basePath('/api')
6 |
7 | app.get('/hello', (c) => {
8 | return c.json({
9 | message: 'Hello from Hono on Vercel!'
10 | })
11 | })
12 |
13 | app.get('/:wild', (c) => {
14 | const wild = c.req.param('wild')
15 | return c.json({
16 | message: `Hello from Hono on Vercel! You're now on /api/${wild}!`
17 | })
18 | })
19 |
20 | export const GET = handle(app)
--------------------------------------------------------------------------------
/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import '../styles/globals.css';
2 |
3 | export const metadata = {
4 | title: 'Next.js',
5 | description: 'Generated by Next.js',
6 | }
7 |
8 | export default function RootLayout({
9 | children,
10 | }: {
11 | children: React.ReactNode
12 | }) {
13 | return (
14 |
15 | {children}
16 |
17 | )
18 | }
19 |
--------------------------------------------------------------------------------
/app/page.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect, useState } from 'react'
2 | import Hello from './Hello'
3 |
4 | export default function Home() {
5 |
6 | return
7 |
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | // NOTE: This file should not be edited
5 | // see https://nextjs.org/docs/basic-features/typescript for more information.
6 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | reactStrictMode: true,
4 | }
5 |
6 | module.exports = nextConfig
7 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hono-nextjs",
3 | "lockfileVersion": 3,
4 | "requires": true,
5 | "packages": {
6 | "": {
7 | "dependencies": {
8 | "hono": "^4.4.2",
9 | "next": "^14.2.3",
10 | "react": "18.3.1",
11 | "react-dom": "18.3.1"
12 | },
13 | "devDependencies": {
14 | "@types/node": "18.11.18",
15 | "@types/react": "18.0.26",
16 | "@types/react-dom": "18.0.10",
17 | "autoprefixer": "^10.4.19",
18 | "postcss": "^8.4.38",
19 | "tailwindcss": "^3.4.4",
20 | "typescript": "4.9.4"
21 | }
22 | },
23 | "node_modules/@alloc/quick-lru": {
24 | "version": "5.2.0",
25 | "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
26 | "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
27 | "dev": true,
28 | "engines": {
29 | "node": ">=10"
30 | },
31 | "funding": {
32 | "url": "https://github.com/sponsors/sindresorhus"
33 | }
34 | },
35 | "node_modules/@isaacs/cliui": {
36 | "version": "8.0.2",
37 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
38 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
39 | "dev": true,
40 | "dependencies": {
41 | "string-width": "^5.1.2",
42 | "string-width-cjs": "npm:string-width@^4.2.0",
43 | "strip-ansi": "^7.0.1",
44 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
45 | "wrap-ansi": "^8.1.0",
46 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
47 | },
48 | "engines": {
49 | "node": ">=12"
50 | }
51 | },
52 | "node_modules/@jridgewell/gen-mapping": {
53 | "version": "0.3.5",
54 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
55 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
56 | "dev": true,
57 | "dependencies": {
58 | "@jridgewell/set-array": "^1.2.1",
59 | "@jridgewell/sourcemap-codec": "^1.4.10",
60 | "@jridgewell/trace-mapping": "^0.3.24"
61 | },
62 | "engines": {
63 | "node": ">=6.0.0"
64 | }
65 | },
66 | "node_modules/@jridgewell/resolve-uri": {
67 | "version": "3.1.2",
68 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
69 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
70 | "dev": true,
71 | "engines": {
72 | "node": ">=6.0.0"
73 | }
74 | },
75 | "node_modules/@jridgewell/set-array": {
76 | "version": "1.2.1",
77 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
78 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
79 | "dev": true,
80 | "engines": {
81 | "node": ">=6.0.0"
82 | }
83 | },
84 | "node_modules/@jridgewell/sourcemap-codec": {
85 | "version": "1.4.15",
86 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
87 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
88 | "dev": true
89 | },
90 | "node_modules/@jridgewell/trace-mapping": {
91 | "version": "0.3.25",
92 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
93 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
94 | "dev": true,
95 | "dependencies": {
96 | "@jridgewell/resolve-uri": "^3.1.0",
97 | "@jridgewell/sourcemap-codec": "^1.4.14"
98 | }
99 | },
100 | "node_modules/@next/env": {
101 | "version": "14.2.3",
102 | "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz",
103 | "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA=="
104 | },
105 | "node_modules/@next/swc-darwin-arm64": {
106 | "version": "14.2.3",
107 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz",
108 | "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==",
109 | "cpu": [
110 | "arm64"
111 | ],
112 | "optional": true,
113 | "os": [
114 | "darwin"
115 | ],
116 | "engines": {
117 | "node": ">= 10"
118 | }
119 | },
120 | "node_modules/@next/swc-darwin-x64": {
121 | "version": "14.2.3",
122 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz",
123 | "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==",
124 | "cpu": [
125 | "x64"
126 | ],
127 | "optional": true,
128 | "os": [
129 | "darwin"
130 | ],
131 | "engines": {
132 | "node": ">= 10"
133 | }
134 | },
135 | "node_modules/@next/swc-linux-arm64-gnu": {
136 | "version": "14.2.3",
137 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz",
138 | "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==",
139 | "cpu": [
140 | "arm64"
141 | ],
142 | "optional": true,
143 | "os": [
144 | "linux"
145 | ],
146 | "engines": {
147 | "node": ">= 10"
148 | }
149 | },
150 | "node_modules/@next/swc-linux-arm64-musl": {
151 | "version": "14.2.3",
152 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz",
153 | "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==",
154 | "cpu": [
155 | "arm64"
156 | ],
157 | "optional": true,
158 | "os": [
159 | "linux"
160 | ],
161 | "engines": {
162 | "node": ">= 10"
163 | }
164 | },
165 | "node_modules/@next/swc-linux-x64-gnu": {
166 | "version": "14.2.3",
167 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz",
168 | "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==",
169 | "cpu": [
170 | "x64"
171 | ],
172 | "optional": true,
173 | "os": [
174 | "linux"
175 | ],
176 | "engines": {
177 | "node": ">= 10"
178 | }
179 | },
180 | "node_modules/@next/swc-linux-x64-musl": {
181 | "version": "14.2.3",
182 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz",
183 | "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==",
184 | "cpu": [
185 | "x64"
186 | ],
187 | "optional": true,
188 | "os": [
189 | "linux"
190 | ],
191 | "engines": {
192 | "node": ">= 10"
193 | }
194 | },
195 | "node_modules/@next/swc-win32-arm64-msvc": {
196 | "version": "14.2.3",
197 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz",
198 | "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==",
199 | "cpu": [
200 | "arm64"
201 | ],
202 | "optional": true,
203 | "os": [
204 | "win32"
205 | ],
206 | "engines": {
207 | "node": ">= 10"
208 | }
209 | },
210 | "node_modules/@next/swc-win32-ia32-msvc": {
211 | "version": "14.2.3",
212 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz",
213 | "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==",
214 | "cpu": [
215 | "ia32"
216 | ],
217 | "optional": true,
218 | "os": [
219 | "win32"
220 | ],
221 | "engines": {
222 | "node": ">= 10"
223 | }
224 | },
225 | "node_modules/@next/swc-win32-x64-msvc": {
226 | "version": "14.2.3",
227 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz",
228 | "integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==",
229 | "cpu": [
230 | "x64"
231 | ],
232 | "optional": true,
233 | "os": [
234 | "win32"
235 | ],
236 | "engines": {
237 | "node": ">= 10"
238 | }
239 | },
240 | "node_modules/@nodelib/fs.scandir": {
241 | "version": "2.1.5",
242 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
243 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
244 | "dev": true,
245 | "dependencies": {
246 | "@nodelib/fs.stat": "2.0.5",
247 | "run-parallel": "^1.1.9"
248 | },
249 | "engines": {
250 | "node": ">= 8"
251 | }
252 | },
253 | "node_modules/@nodelib/fs.stat": {
254 | "version": "2.0.5",
255 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
256 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
257 | "dev": true,
258 | "engines": {
259 | "node": ">= 8"
260 | }
261 | },
262 | "node_modules/@nodelib/fs.walk": {
263 | "version": "1.2.8",
264 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
265 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
266 | "dev": true,
267 | "dependencies": {
268 | "@nodelib/fs.scandir": "2.1.5",
269 | "fastq": "^1.6.0"
270 | },
271 | "engines": {
272 | "node": ">= 8"
273 | }
274 | },
275 | "node_modules/@pkgjs/parseargs": {
276 | "version": "0.11.0",
277 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
278 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
279 | "dev": true,
280 | "optional": true,
281 | "engines": {
282 | "node": ">=14"
283 | }
284 | },
285 | "node_modules/@swc/counter": {
286 | "version": "0.1.3",
287 | "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
288 | "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
289 | },
290 | "node_modules/@swc/helpers": {
291 | "version": "0.5.5",
292 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
293 | "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
294 | "dependencies": {
295 | "@swc/counter": "^0.1.3",
296 | "tslib": "^2.4.0"
297 | }
298 | },
299 | "node_modules/@types/node": {
300 | "version": "18.11.18",
301 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
302 | "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==",
303 | "dev": true
304 | },
305 | "node_modules/@types/prop-types": {
306 | "version": "15.7.12",
307 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
308 | "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==",
309 | "dev": true
310 | },
311 | "node_modules/@types/react": {
312 | "version": "18.0.26",
313 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz",
314 | "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==",
315 | "dev": true,
316 | "dependencies": {
317 | "@types/prop-types": "*",
318 | "@types/scheduler": "*",
319 | "csstype": "^3.0.2"
320 | }
321 | },
322 | "node_modules/@types/react-dom": {
323 | "version": "18.0.10",
324 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz",
325 | "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==",
326 | "dev": true,
327 | "dependencies": {
328 | "@types/react": "*"
329 | }
330 | },
331 | "node_modules/@types/scheduler": {
332 | "version": "0.23.0",
333 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.23.0.tgz",
334 | "integrity": "sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==",
335 | "dev": true
336 | },
337 | "node_modules/ansi-regex": {
338 | "version": "6.0.1",
339 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
340 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
341 | "dev": true,
342 | "engines": {
343 | "node": ">=12"
344 | },
345 | "funding": {
346 | "url": "https://github.com/chalk/ansi-regex?sponsor=1"
347 | }
348 | },
349 | "node_modules/ansi-styles": {
350 | "version": "6.2.1",
351 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
352 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
353 | "dev": true,
354 | "engines": {
355 | "node": ">=12"
356 | },
357 | "funding": {
358 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
359 | }
360 | },
361 | "node_modules/any-promise": {
362 | "version": "1.3.0",
363 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
364 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
365 | "dev": true
366 | },
367 | "node_modules/anymatch": {
368 | "version": "3.1.3",
369 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
370 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
371 | "dev": true,
372 | "dependencies": {
373 | "normalize-path": "^3.0.0",
374 | "picomatch": "^2.0.4"
375 | },
376 | "engines": {
377 | "node": ">= 8"
378 | }
379 | },
380 | "node_modules/arg": {
381 | "version": "5.0.2",
382 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
383 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
384 | "dev": true
385 | },
386 | "node_modules/autoprefixer": {
387 | "version": "10.4.19",
388 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
389 | "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
390 | "dev": true,
391 | "funding": [
392 | {
393 | "type": "opencollective",
394 | "url": "https://opencollective.com/postcss/"
395 | },
396 | {
397 | "type": "tidelift",
398 | "url": "https://tidelift.com/funding/github/npm/autoprefixer"
399 | },
400 | {
401 | "type": "github",
402 | "url": "https://github.com/sponsors/ai"
403 | }
404 | ],
405 | "dependencies": {
406 | "browserslist": "^4.23.0",
407 | "caniuse-lite": "^1.0.30001599",
408 | "fraction.js": "^4.3.7",
409 | "normalize-range": "^0.1.2",
410 | "picocolors": "^1.0.0",
411 | "postcss-value-parser": "^4.2.0"
412 | },
413 | "bin": {
414 | "autoprefixer": "bin/autoprefixer"
415 | },
416 | "engines": {
417 | "node": "^10 || ^12 || >=14"
418 | },
419 | "peerDependencies": {
420 | "postcss": "^8.1.0"
421 | }
422 | },
423 | "node_modules/balanced-match": {
424 | "version": "1.0.2",
425 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
426 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
427 | "dev": true
428 | },
429 | "node_modules/binary-extensions": {
430 | "version": "2.3.0",
431 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
432 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
433 | "dev": true,
434 | "engines": {
435 | "node": ">=8"
436 | },
437 | "funding": {
438 | "url": "https://github.com/sponsors/sindresorhus"
439 | }
440 | },
441 | "node_modules/brace-expansion": {
442 | "version": "2.0.1",
443 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
444 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
445 | "dev": true,
446 | "dependencies": {
447 | "balanced-match": "^1.0.0"
448 | }
449 | },
450 | "node_modules/braces": {
451 | "version": "3.0.3",
452 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
453 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
454 | "dev": true,
455 | "dependencies": {
456 | "fill-range": "^7.1.1"
457 | },
458 | "engines": {
459 | "node": ">=8"
460 | }
461 | },
462 | "node_modules/browserslist": {
463 | "version": "4.23.0",
464 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
465 | "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
466 | "dev": true,
467 | "funding": [
468 | {
469 | "type": "opencollective",
470 | "url": "https://opencollective.com/browserslist"
471 | },
472 | {
473 | "type": "tidelift",
474 | "url": "https://tidelift.com/funding/github/npm/browserslist"
475 | },
476 | {
477 | "type": "github",
478 | "url": "https://github.com/sponsors/ai"
479 | }
480 | ],
481 | "dependencies": {
482 | "caniuse-lite": "^1.0.30001587",
483 | "electron-to-chromium": "^1.4.668",
484 | "node-releases": "^2.0.14",
485 | "update-browserslist-db": "^1.0.13"
486 | },
487 | "bin": {
488 | "browserslist": "cli.js"
489 | },
490 | "engines": {
491 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
492 | }
493 | },
494 | "node_modules/busboy": {
495 | "version": "1.6.0",
496 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
497 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
498 | "dependencies": {
499 | "streamsearch": "^1.1.0"
500 | },
501 | "engines": {
502 | "node": ">=10.16.0"
503 | }
504 | },
505 | "node_modules/camelcase-css": {
506 | "version": "2.0.1",
507 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
508 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
509 | "dev": true,
510 | "engines": {
511 | "node": ">= 6"
512 | }
513 | },
514 | "node_modules/caniuse-lite": {
515 | "version": "1.0.30001627",
516 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001627.tgz",
517 | "integrity": "sha512-4zgNiB8nTyV/tHhwZrFs88ryjls/lHiqFhrxCW4qSTeuRByBVnPYpDInchOIySWknznucaf31Z4KYqjfbrecVw==",
518 | "funding": [
519 | {
520 | "type": "opencollective",
521 | "url": "https://opencollective.com/browserslist"
522 | },
523 | {
524 | "type": "tidelift",
525 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
526 | },
527 | {
528 | "type": "github",
529 | "url": "https://github.com/sponsors/ai"
530 | }
531 | ]
532 | },
533 | "node_modules/chokidar": {
534 | "version": "3.6.0",
535 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
536 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
537 | "dev": true,
538 | "dependencies": {
539 | "anymatch": "~3.1.2",
540 | "braces": "~3.0.2",
541 | "glob-parent": "~5.1.2",
542 | "is-binary-path": "~2.1.0",
543 | "is-glob": "~4.0.1",
544 | "normalize-path": "~3.0.0",
545 | "readdirp": "~3.6.0"
546 | },
547 | "engines": {
548 | "node": ">= 8.10.0"
549 | },
550 | "funding": {
551 | "url": "https://paulmillr.com/funding/"
552 | },
553 | "optionalDependencies": {
554 | "fsevents": "~2.3.2"
555 | }
556 | },
557 | "node_modules/chokidar/node_modules/glob-parent": {
558 | "version": "5.1.2",
559 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
560 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
561 | "dev": true,
562 | "dependencies": {
563 | "is-glob": "^4.0.1"
564 | },
565 | "engines": {
566 | "node": ">= 6"
567 | }
568 | },
569 | "node_modules/client-only": {
570 | "version": "0.0.1",
571 | "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
572 | "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
573 | },
574 | "node_modules/color-convert": {
575 | "version": "2.0.1",
576 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
577 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
578 | "dev": true,
579 | "dependencies": {
580 | "color-name": "~1.1.4"
581 | },
582 | "engines": {
583 | "node": ">=7.0.0"
584 | }
585 | },
586 | "node_modules/color-name": {
587 | "version": "1.1.4",
588 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
589 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
590 | "dev": true
591 | },
592 | "node_modules/commander": {
593 | "version": "4.1.1",
594 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
595 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
596 | "dev": true,
597 | "engines": {
598 | "node": ">= 6"
599 | }
600 | },
601 | "node_modules/cross-spawn": {
602 | "version": "7.0.3",
603 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
604 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
605 | "dev": true,
606 | "dependencies": {
607 | "path-key": "^3.1.0",
608 | "shebang-command": "^2.0.0",
609 | "which": "^2.0.1"
610 | },
611 | "engines": {
612 | "node": ">= 8"
613 | }
614 | },
615 | "node_modules/cssesc": {
616 | "version": "3.0.0",
617 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
618 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
619 | "dev": true,
620 | "bin": {
621 | "cssesc": "bin/cssesc"
622 | },
623 | "engines": {
624 | "node": ">=4"
625 | }
626 | },
627 | "node_modules/csstype": {
628 | "version": "3.1.3",
629 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
630 | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
631 | "dev": true
632 | },
633 | "node_modules/didyoumean": {
634 | "version": "1.2.2",
635 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
636 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
637 | "dev": true
638 | },
639 | "node_modules/dlv": {
640 | "version": "1.1.3",
641 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
642 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
643 | "dev": true
644 | },
645 | "node_modules/eastasianwidth": {
646 | "version": "0.2.0",
647 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
648 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
649 | "dev": true
650 | },
651 | "node_modules/electron-to-chromium": {
652 | "version": "1.4.795",
653 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.795.tgz",
654 | "integrity": "sha512-hHo4lK/8wb4NUa+NJYSFyJ0xedNHiR6ylilDtb8NUW9d4dmBFmGiecYEKCEbti1wTNzbKXLfl4hPWEkAFbHYlw==",
655 | "dev": true
656 | },
657 | "node_modules/emoji-regex": {
658 | "version": "9.2.2",
659 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
660 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
661 | "dev": true
662 | },
663 | "node_modules/escalade": {
664 | "version": "3.1.2",
665 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
666 | "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
667 | "dev": true,
668 | "engines": {
669 | "node": ">=6"
670 | }
671 | },
672 | "node_modules/fast-glob": {
673 | "version": "3.3.2",
674 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
675 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
676 | "dev": true,
677 | "dependencies": {
678 | "@nodelib/fs.stat": "^2.0.2",
679 | "@nodelib/fs.walk": "^1.2.3",
680 | "glob-parent": "^5.1.2",
681 | "merge2": "^1.3.0",
682 | "micromatch": "^4.0.4"
683 | },
684 | "engines": {
685 | "node": ">=8.6.0"
686 | }
687 | },
688 | "node_modules/fast-glob/node_modules/glob-parent": {
689 | "version": "5.1.2",
690 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
691 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
692 | "dev": true,
693 | "dependencies": {
694 | "is-glob": "^4.0.1"
695 | },
696 | "engines": {
697 | "node": ">= 6"
698 | }
699 | },
700 | "node_modules/fastq": {
701 | "version": "1.17.1",
702 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
703 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
704 | "dev": true,
705 | "dependencies": {
706 | "reusify": "^1.0.4"
707 | }
708 | },
709 | "node_modules/fill-range": {
710 | "version": "7.1.1",
711 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
712 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
713 | "dev": true,
714 | "dependencies": {
715 | "to-regex-range": "^5.0.1"
716 | },
717 | "engines": {
718 | "node": ">=8"
719 | }
720 | },
721 | "node_modules/foreground-child": {
722 | "version": "3.1.1",
723 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
724 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
725 | "dev": true,
726 | "dependencies": {
727 | "cross-spawn": "^7.0.0",
728 | "signal-exit": "^4.0.1"
729 | },
730 | "engines": {
731 | "node": ">=14"
732 | },
733 | "funding": {
734 | "url": "https://github.com/sponsors/isaacs"
735 | }
736 | },
737 | "node_modules/fraction.js": {
738 | "version": "4.3.7",
739 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
740 | "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
741 | "dev": true,
742 | "engines": {
743 | "node": "*"
744 | },
745 | "funding": {
746 | "type": "patreon",
747 | "url": "https://github.com/sponsors/rawify"
748 | }
749 | },
750 | "node_modules/fsevents": {
751 | "version": "2.3.3",
752 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
753 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
754 | "dev": true,
755 | "hasInstallScript": true,
756 | "optional": true,
757 | "os": [
758 | "darwin"
759 | ],
760 | "engines": {
761 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
762 | }
763 | },
764 | "node_modules/function-bind": {
765 | "version": "1.1.2",
766 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
767 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
768 | "dev": true,
769 | "funding": {
770 | "url": "https://github.com/sponsors/ljharb"
771 | }
772 | },
773 | "node_modules/glob": {
774 | "version": "10.4.1",
775 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
776 | "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
777 | "dev": true,
778 | "dependencies": {
779 | "foreground-child": "^3.1.0",
780 | "jackspeak": "^3.1.2",
781 | "minimatch": "^9.0.4",
782 | "minipass": "^7.1.2",
783 | "path-scurry": "^1.11.1"
784 | },
785 | "bin": {
786 | "glob": "dist/esm/bin.mjs"
787 | },
788 | "engines": {
789 | "node": ">=16 || 14 >=14.18"
790 | },
791 | "funding": {
792 | "url": "https://github.com/sponsors/isaacs"
793 | }
794 | },
795 | "node_modules/glob-parent": {
796 | "version": "6.0.2",
797 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
798 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
799 | "dev": true,
800 | "dependencies": {
801 | "is-glob": "^4.0.3"
802 | },
803 | "engines": {
804 | "node": ">=10.13.0"
805 | }
806 | },
807 | "node_modules/graceful-fs": {
808 | "version": "4.2.11",
809 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
810 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
811 | },
812 | "node_modules/hasown": {
813 | "version": "2.0.2",
814 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
815 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
816 | "dev": true,
817 | "dependencies": {
818 | "function-bind": "^1.1.2"
819 | },
820 | "engines": {
821 | "node": ">= 0.4"
822 | }
823 | },
824 | "node_modules/hono": {
825 | "version": "4.4.3",
826 | "resolved": "https://registry.npmjs.org/hono/-/hono-4.4.3.tgz",
827 | "integrity": "sha512-G7rTruKzrHXPz1KB4B50deKydPA9+aeei+WC1hikP0abN9N+a6yORuweageaqWocYfYNkpoqA5ezGV2mzQasvw==",
828 | "engines": {
829 | "node": ">=16.0.0"
830 | }
831 | },
832 | "node_modules/is-binary-path": {
833 | "version": "2.1.0",
834 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
835 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
836 | "dev": true,
837 | "dependencies": {
838 | "binary-extensions": "^2.0.0"
839 | },
840 | "engines": {
841 | "node": ">=8"
842 | }
843 | },
844 | "node_modules/is-core-module": {
845 | "version": "2.13.1",
846 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
847 | "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
848 | "dev": true,
849 | "dependencies": {
850 | "hasown": "^2.0.0"
851 | },
852 | "funding": {
853 | "url": "https://github.com/sponsors/ljharb"
854 | }
855 | },
856 | "node_modules/is-extglob": {
857 | "version": "2.1.1",
858 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
859 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
860 | "dev": true,
861 | "engines": {
862 | "node": ">=0.10.0"
863 | }
864 | },
865 | "node_modules/is-fullwidth-code-point": {
866 | "version": "3.0.0",
867 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
868 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
869 | "dev": true,
870 | "engines": {
871 | "node": ">=8"
872 | }
873 | },
874 | "node_modules/is-glob": {
875 | "version": "4.0.3",
876 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
877 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
878 | "dev": true,
879 | "dependencies": {
880 | "is-extglob": "^2.1.1"
881 | },
882 | "engines": {
883 | "node": ">=0.10.0"
884 | }
885 | },
886 | "node_modules/is-number": {
887 | "version": "7.0.0",
888 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
889 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
890 | "dev": true,
891 | "engines": {
892 | "node": ">=0.12.0"
893 | }
894 | },
895 | "node_modules/isexe": {
896 | "version": "2.0.0",
897 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
898 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
899 | "dev": true
900 | },
901 | "node_modules/jackspeak": {
902 | "version": "3.4.0",
903 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
904 | "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
905 | "dev": true,
906 | "dependencies": {
907 | "@isaacs/cliui": "^8.0.2"
908 | },
909 | "engines": {
910 | "node": ">=14"
911 | },
912 | "funding": {
913 | "url": "https://github.com/sponsors/isaacs"
914 | },
915 | "optionalDependencies": {
916 | "@pkgjs/parseargs": "^0.11.0"
917 | }
918 | },
919 | "node_modules/jiti": {
920 | "version": "1.21.3",
921 | "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.3.tgz",
922 | "integrity": "sha512-uy2bNX5zQ+tESe+TiC7ilGRz8AtRGmnJH55NC5S0nSUjvvvM2hJHmefHErugGXN4pNv4Qx7vLsnNw9qJ9mtIsw==",
923 | "dev": true,
924 | "bin": {
925 | "jiti": "bin/jiti.js"
926 | }
927 | },
928 | "node_modules/js-tokens": {
929 | "version": "4.0.0",
930 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
931 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
932 | },
933 | "node_modules/lilconfig": {
934 | "version": "2.1.0",
935 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
936 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
937 | "dev": true,
938 | "engines": {
939 | "node": ">=10"
940 | }
941 | },
942 | "node_modules/lines-and-columns": {
943 | "version": "1.2.4",
944 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
945 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
946 | "dev": true
947 | },
948 | "node_modules/loose-envify": {
949 | "version": "1.4.0",
950 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
951 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
952 | "dependencies": {
953 | "js-tokens": "^3.0.0 || ^4.0.0"
954 | },
955 | "bin": {
956 | "loose-envify": "cli.js"
957 | }
958 | },
959 | "node_modules/lru-cache": {
960 | "version": "10.2.2",
961 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
962 | "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
963 | "dev": true,
964 | "engines": {
965 | "node": "14 || >=16.14"
966 | }
967 | },
968 | "node_modules/merge2": {
969 | "version": "1.4.1",
970 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
971 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
972 | "dev": true,
973 | "engines": {
974 | "node": ">= 8"
975 | }
976 | },
977 | "node_modules/micromatch": {
978 | "version": "4.0.7",
979 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
980 | "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
981 | "dev": true,
982 | "dependencies": {
983 | "braces": "^3.0.3",
984 | "picomatch": "^2.3.1"
985 | },
986 | "engines": {
987 | "node": ">=8.6"
988 | }
989 | },
990 | "node_modules/minimatch": {
991 | "version": "9.0.4",
992 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
993 | "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
994 | "dev": true,
995 | "dependencies": {
996 | "brace-expansion": "^2.0.1"
997 | },
998 | "engines": {
999 | "node": ">=16 || 14 >=14.17"
1000 | },
1001 | "funding": {
1002 | "url": "https://github.com/sponsors/isaacs"
1003 | }
1004 | },
1005 | "node_modules/minipass": {
1006 | "version": "7.1.2",
1007 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
1008 | "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
1009 | "dev": true,
1010 | "engines": {
1011 | "node": ">=16 || 14 >=14.17"
1012 | }
1013 | },
1014 | "node_modules/mz": {
1015 | "version": "2.7.0",
1016 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
1017 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
1018 | "dev": true,
1019 | "dependencies": {
1020 | "any-promise": "^1.0.0",
1021 | "object-assign": "^4.0.1",
1022 | "thenify-all": "^1.0.0"
1023 | }
1024 | },
1025 | "node_modules/nanoid": {
1026 | "version": "3.3.7",
1027 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
1028 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
1029 | "funding": [
1030 | {
1031 | "type": "github",
1032 | "url": "https://github.com/sponsors/ai"
1033 | }
1034 | ],
1035 | "bin": {
1036 | "nanoid": "bin/nanoid.cjs"
1037 | },
1038 | "engines": {
1039 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1040 | }
1041 | },
1042 | "node_modules/next": {
1043 | "version": "14.2.3",
1044 | "resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz",
1045 | "integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==",
1046 | "dependencies": {
1047 | "@next/env": "14.2.3",
1048 | "@swc/helpers": "0.5.5",
1049 | "busboy": "1.6.0",
1050 | "caniuse-lite": "^1.0.30001579",
1051 | "graceful-fs": "^4.2.11",
1052 | "postcss": "8.4.31",
1053 | "styled-jsx": "5.1.1"
1054 | },
1055 | "bin": {
1056 | "next": "dist/bin/next"
1057 | },
1058 | "engines": {
1059 | "node": ">=18.17.0"
1060 | },
1061 | "optionalDependencies": {
1062 | "@next/swc-darwin-arm64": "14.2.3",
1063 | "@next/swc-darwin-x64": "14.2.3",
1064 | "@next/swc-linux-arm64-gnu": "14.2.3",
1065 | "@next/swc-linux-arm64-musl": "14.2.3",
1066 | "@next/swc-linux-x64-gnu": "14.2.3",
1067 | "@next/swc-linux-x64-musl": "14.2.3",
1068 | "@next/swc-win32-arm64-msvc": "14.2.3",
1069 | "@next/swc-win32-ia32-msvc": "14.2.3",
1070 | "@next/swc-win32-x64-msvc": "14.2.3"
1071 | },
1072 | "peerDependencies": {
1073 | "@opentelemetry/api": "^1.1.0",
1074 | "@playwright/test": "^1.41.2",
1075 | "react": "^18.2.0",
1076 | "react-dom": "^18.2.0",
1077 | "sass": "^1.3.0"
1078 | },
1079 | "peerDependenciesMeta": {
1080 | "@opentelemetry/api": {
1081 | "optional": true
1082 | },
1083 | "@playwright/test": {
1084 | "optional": true
1085 | },
1086 | "sass": {
1087 | "optional": true
1088 | }
1089 | }
1090 | },
1091 | "node_modules/next/node_modules/postcss": {
1092 | "version": "8.4.31",
1093 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
1094 | "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
1095 | "funding": [
1096 | {
1097 | "type": "opencollective",
1098 | "url": "https://opencollective.com/postcss/"
1099 | },
1100 | {
1101 | "type": "tidelift",
1102 | "url": "https://tidelift.com/funding/github/npm/postcss"
1103 | },
1104 | {
1105 | "type": "github",
1106 | "url": "https://github.com/sponsors/ai"
1107 | }
1108 | ],
1109 | "dependencies": {
1110 | "nanoid": "^3.3.6",
1111 | "picocolors": "^1.0.0",
1112 | "source-map-js": "^1.0.2"
1113 | },
1114 | "engines": {
1115 | "node": "^10 || ^12 || >=14"
1116 | }
1117 | },
1118 | "node_modules/node-releases": {
1119 | "version": "2.0.14",
1120 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
1121 | "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
1122 | "dev": true
1123 | },
1124 | "node_modules/normalize-path": {
1125 | "version": "3.0.0",
1126 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1127 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1128 | "dev": true,
1129 | "engines": {
1130 | "node": ">=0.10.0"
1131 | }
1132 | },
1133 | "node_modules/normalize-range": {
1134 | "version": "0.1.2",
1135 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
1136 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
1137 | "dev": true,
1138 | "engines": {
1139 | "node": ">=0.10.0"
1140 | }
1141 | },
1142 | "node_modules/object-assign": {
1143 | "version": "4.1.1",
1144 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1145 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1146 | "dev": true,
1147 | "engines": {
1148 | "node": ">=0.10.0"
1149 | }
1150 | },
1151 | "node_modules/object-hash": {
1152 | "version": "3.0.0",
1153 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
1154 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
1155 | "dev": true,
1156 | "engines": {
1157 | "node": ">= 6"
1158 | }
1159 | },
1160 | "node_modules/path-key": {
1161 | "version": "3.1.1",
1162 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1163 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1164 | "dev": true,
1165 | "engines": {
1166 | "node": ">=8"
1167 | }
1168 | },
1169 | "node_modules/path-parse": {
1170 | "version": "1.0.7",
1171 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1172 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1173 | "dev": true
1174 | },
1175 | "node_modules/path-scurry": {
1176 | "version": "1.11.1",
1177 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
1178 | "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
1179 | "dev": true,
1180 | "dependencies": {
1181 | "lru-cache": "^10.2.0",
1182 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
1183 | },
1184 | "engines": {
1185 | "node": ">=16 || 14 >=14.18"
1186 | },
1187 | "funding": {
1188 | "url": "https://github.com/sponsors/isaacs"
1189 | }
1190 | },
1191 | "node_modules/picocolors": {
1192 | "version": "1.0.1",
1193 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
1194 | "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
1195 | },
1196 | "node_modules/picomatch": {
1197 | "version": "2.3.1",
1198 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1199 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1200 | "dev": true,
1201 | "engines": {
1202 | "node": ">=8.6"
1203 | },
1204 | "funding": {
1205 | "url": "https://github.com/sponsors/jonschlinkert"
1206 | }
1207 | },
1208 | "node_modules/pify": {
1209 | "version": "2.3.0",
1210 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1211 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
1212 | "dev": true,
1213 | "engines": {
1214 | "node": ">=0.10.0"
1215 | }
1216 | },
1217 | "node_modules/pirates": {
1218 | "version": "4.0.6",
1219 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
1220 | "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
1221 | "dev": true,
1222 | "engines": {
1223 | "node": ">= 6"
1224 | }
1225 | },
1226 | "node_modules/postcss": {
1227 | "version": "8.4.38",
1228 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
1229 | "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
1230 | "dev": true,
1231 | "funding": [
1232 | {
1233 | "type": "opencollective",
1234 | "url": "https://opencollective.com/postcss/"
1235 | },
1236 | {
1237 | "type": "tidelift",
1238 | "url": "https://tidelift.com/funding/github/npm/postcss"
1239 | },
1240 | {
1241 | "type": "github",
1242 | "url": "https://github.com/sponsors/ai"
1243 | }
1244 | ],
1245 | "dependencies": {
1246 | "nanoid": "^3.3.7",
1247 | "picocolors": "^1.0.0",
1248 | "source-map-js": "^1.2.0"
1249 | },
1250 | "engines": {
1251 | "node": "^10 || ^12 || >=14"
1252 | }
1253 | },
1254 | "node_modules/postcss-import": {
1255 | "version": "15.1.0",
1256 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
1257 | "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
1258 | "dev": true,
1259 | "dependencies": {
1260 | "postcss-value-parser": "^4.0.0",
1261 | "read-cache": "^1.0.0",
1262 | "resolve": "^1.1.7"
1263 | },
1264 | "engines": {
1265 | "node": ">=14.0.0"
1266 | },
1267 | "peerDependencies": {
1268 | "postcss": "^8.0.0"
1269 | }
1270 | },
1271 | "node_modules/postcss-js": {
1272 | "version": "4.0.1",
1273 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
1274 | "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
1275 | "dev": true,
1276 | "dependencies": {
1277 | "camelcase-css": "^2.0.1"
1278 | },
1279 | "engines": {
1280 | "node": "^12 || ^14 || >= 16"
1281 | },
1282 | "funding": {
1283 | "type": "opencollective",
1284 | "url": "https://opencollective.com/postcss/"
1285 | },
1286 | "peerDependencies": {
1287 | "postcss": "^8.4.21"
1288 | }
1289 | },
1290 | "node_modules/postcss-load-config": {
1291 | "version": "4.0.2",
1292 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
1293 | "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
1294 | "dev": true,
1295 | "funding": [
1296 | {
1297 | "type": "opencollective",
1298 | "url": "https://opencollective.com/postcss/"
1299 | },
1300 | {
1301 | "type": "github",
1302 | "url": "https://github.com/sponsors/ai"
1303 | }
1304 | ],
1305 | "dependencies": {
1306 | "lilconfig": "^3.0.0",
1307 | "yaml": "^2.3.4"
1308 | },
1309 | "engines": {
1310 | "node": ">= 14"
1311 | },
1312 | "peerDependencies": {
1313 | "postcss": ">=8.0.9",
1314 | "ts-node": ">=9.0.0"
1315 | },
1316 | "peerDependenciesMeta": {
1317 | "postcss": {
1318 | "optional": true
1319 | },
1320 | "ts-node": {
1321 | "optional": true
1322 | }
1323 | }
1324 | },
1325 | "node_modules/postcss-load-config/node_modules/lilconfig": {
1326 | "version": "3.1.1",
1327 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
1328 | "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==",
1329 | "dev": true,
1330 | "engines": {
1331 | "node": ">=14"
1332 | },
1333 | "funding": {
1334 | "url": "https://github.com/sponsors/antonk52"
1335 | }
1336 | },
1337 | "node_modules/postcss-nested": {
1338 | "version": "6.0.1",
1339 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
1340 | "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
1341 | "dev": true,
1342 | "dependencies": {
1343 | "postcss-selector-parser": "^6.0.11"
1344 | },
1345 | "engines": {
1346 | "node": ">=12.0"
1347 | },
1348 | "funding": {
1349 | "type": "opencollective",
1350 | "url": "https://opencollective.com/postcss/"
1351 | },
1352 | "peerDependencies": {
1353 | "postcss": "^8.2.14"
1354 | }
1355 | },
1356 | "node_modules/postcss-selector-parser": {
1357 | "version": "6.1.0",
1358 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
1359 | "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
1360 | "dev": true,
1361 | "dependencies": {
1362 | "cssesc": "^3.0.0",
1363 | "util-deprecate": "^1.0.2"
1364 | },
1365 | "engines": {
1366 | "node": ">=4"
1367 | }
1368 | },
1369 | "node_modules/postcss-value-parser": {
1370 | "version": "4.2.0",
1371 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
1372 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
1373 | "dev": true
1374 | },
1375 | "node_modules/queue-microtask": {
1376 | "version": "1.2.3",
1377 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1378 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1379 | "dev": true,
1380 | "funding": [
1381 | {
1382 | "type": "github",
1383 | "url": "https://github.com/sponsors/feross"
1384 | },
1385 | {
1386 | "type": "patreon",
1387 | "url": "https://www.patreon.com/feross"
1388 | },
1389 | {
1390 | "type": "consulting",
1391 | "url": "https://feross.org/support"
1392 | }
1393 | ]
1394 | },
1395 | "node_modules/react": {
1396 | "version": "18.3.1",
1397 | "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
1398 | "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
1399 | "dependencies": {
1400 | "loose-envify": "^1.1.0"
1401 | },
1402 | "engines": {
1403 | "node": ">=0.10.0"
1404 | }
1405 | },
1406 | "node_modules/react-dom": {
1407 | "version": "18.3.1",
1408 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
1409 | "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
1410 | "dependencies": {
1411 | "loose-envify": "^1.1.0",
1412 | "scheduler": "^0.23.2"
1413 | },
1414 | "peerDependencies": {
1415 | "react": "^18.3.1"
1416 | }
1417 | },
1418 | "node_modules/read-cache": {
1419 | "version": "1.0.0",
1420 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
1421 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
1422 | "dev": true,
1423 | "dependencies": {
1424 | "pify": "^2.3.0"
1425 | }
1426 | },
1427 | "node_modules/readdirp": {
1428 | "version": "3.6.0",
1429 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1430 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1431 | "dev": true,
1432 | "dependencies": {
1433 | "picomatch": "^2.2.1"
1434 | },
1435 | "engines": {
1436 | "node": ">=8.10.0"
1437 | }
1438 | },
1439 | "node_modules/resolve": {
1440 | "version": "1.22.8",
1441 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
1442 | "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
1443 | "dev": true,
1444 | "dependencies": {
1445 | "is-core-module": "^2.13.0",
1446 | "path-parse": "^1.0.7",
1447 | "supports-preserve-symlinks-flag": "^1.0.0"
1448 | },
1449 | "bin": {
1450 | "resolve": "bin/resolve"
1451 | },
1452 | "funding": {
1453 | "url": "https://github.com/sponsors/ljharb"
1454 | }
1455 | },
1456 | "node_modules/reusify": {
1457 | "version": "1.0.4",
1458 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1459 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1460 | "dev": true,
1461 | "engines": {
1462 | "iojs": ">=1.0.0",
1463 | "node": ">=0.10.0"
1464 | }
1465 | },
1466 | "node_modules/run-parallel": {
1467 | "version": "1.2.0",
1468 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1469 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1470 | "dev": true,
1471 | "funding": [
1472 | {
1473 | "type": "github",
1474 | "url": "https://github.com/sponsors/feross"
1475 | },
1476 | {
1477 | "type": "patreon",
1478 | "url": "https://www.patreon.com/feross"
1479 | },
1480 | {
1481 | "type": "consulting",
1482 | "url": "https://feross.org/support"
1483 | }
1484 | ],
1485 | "dependencies": {
1486 | "queue-microtask": "^1.2.2"
1487 | }
1488 | },
1489 | "node_modules/scheduler": {
1490 | "version": "0.23.2",
1491 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
1492 | "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
1493 | "dependencies": {
1494 | "loose-envify": "^1.1.0"
1495 | }
1496 | },
1497 | "node_modules/shebang-command": {
1498 | "version": "2.0.0",
1499 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1500 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1501 | "dev": true,
1502 | "dependencies": {
1503 | "shebang-regex": "^3.0.0"
1504 | },
1505 | "engines": {
1506 | "node": ">=8"
1507 | }
1508 | },
1509 | "node_modules/shebang-regex": {
1510 | "version": "3.0.0",
1511 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1512 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1513 | "dev": true,
1514 | "engines": {
1515 | "node": ">=8"
1516 | }
1517 | },
1518 | "node_modules/signal-exit": {
1519 | "version": "4.1.0",
1520 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
1521 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
1522 | "dev": true,
1523 | "engines": {
1524 | "node": ">=14"
1525 | },
1526 | "funding": {
1527 | "url": "https://github.com/sponsors/isaacs"
1528 | }
1529 | },
1530 | "node_modules/source-map-js": {
1531 | "version": "1.2.0",
1532 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
1533 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
1534 | "engines": {
1535 | "node": ">=0.10.0"
1536 | }
1537 | },
1538 | "node_modules/streamsearch": {
1539 | "version": "1.1.0",
1540 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
1541 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
1542 | "engines": {
1543 | "node": ">=10.0.0"
1544 | }
1545 | },
1546 | "node_modules/string-width": {
1547 | "version": "5.1.2",
1548 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
1549 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
1550 | "dev": true,
1551 | "dependencies": {
1552 | "eastasianwidth": "^0.2.0",
1553 | "emoji-regex": "^9.2.2",
1554 | "strip-ansi": "^7.0.1"
1555 | },
1556 | "engines": {
1557 | "node": ">=12"
1558 | },
1559 | "funding": {
1560 | "url": "https://github.com/sponsors/sindresorhus"
1561 | }
1562 | },
1563 | "node_modules/string-width-cjs": {
1564 | "name": "string-width",
1565 | "version": "4.2.3",
1566 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1567 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1568 | "dev": true,
1569 | "dependencies": {
1570 | "emoji-regex": "^8.0.0",
1571 | "is-fullwidth-code-point": "^3.0.0",
1572 | "strip-ansi": "^6.0.1"
1573 | },
1574 | "engines": {
1575 | "node": ">=8"
1576 | }
1577 | },
1578 | "node_modules/string-width-cjs/node_modules/ansi-regex": {
1579 | "version": "5.0.1",
1580 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1581 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1582 | "dev": true,
1583 | "engines": {
1584 | "node": ">=8"
1585 | }
1586 | },
1587 | "node_modules/string-width-cjs/node_modules/emoji-regex": {
1588 | "version": "8.0.0",
1589 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1590 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1591 | "dev": true
1592 | },
1593 | "node_modules/string-width-cjs/node_modules/strip-ansi": {
1594 | "version": "6.0.1",
1595 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1596 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1597 | "dev": true,
1598 | "dependencies": {
1599 | "ansi-regex": "^5.0.1"
1600 | },
1601 | "engines": {
1602 | "node": ">=8"
1603 | }
1604 | },
1605 | "node_modules/strip-ansi": {
1606 | "version": "7.1.0",
1607 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
1608 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
1609 | "dev": true,
1610 | "dependencies": {
1611 | "ansi-regex": "^6.0.1"
1612 | },
1613 | "engines": {
1614 | "node": ">=12"
1615 | },
1616 | "funding": {
1617 | "url": "https://github.com/chalk/strip-ansi?sponsor=1"
1618 | }
1619 | },
1620 | "node_modules/strip-ansi-cjs": {
1621 | "name": "strip-ansi",
1622 | "version": "6.0.1",
1623 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1624 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1625 | "dev": true,
1626 | "dependencies": {
1627 | "ansi-regex": "^5.0.1"
1628 | },
1629 | "engines": {
1630 | "node": ">=8"
1631 | }
1632 | },
1633 | "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
1634 | "version": "5.0.1",
1635 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1636 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1637 | "dev": true,
1638 | "engines": {
1639 | "node": ">=8"
1640 | }
1641 | },
1642 | "node_modules/styled-jsx": {
1643 | "version": "5.1.1",
1644 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
1645 | "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
1646 | "dependencies": {
1647 | "client-only": "0.0.1"
1648 | },
1649 | "engines": {
1650 | "node": ">= 12.0.0"
1651 | },
1652 | "peerDependencies": {
1653 | "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
1654 | },
1655 | "peerDependenciesMeta": {
1656 | "@babel/core": {
1657 | "optional": true
1658 | },
1659 | "babel-plugin-macros": {
1660 | "optional": true
1661 | }
1662 | }
1663 | },
1664 | "node_modules/sucrase": {
1665 | "version": "3.35.0",
1666 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
1667 | "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
1668 | "dev": true,
1669 | "dependencies": {
1670 | "@jridgewell/gen-mapping": "^0.3.2",
1671 | "commander": "^4.0.0",
1672 | "glob": "^10.3.10",
1673 | "lines-and-columns": "^1.1.6",
1674 | "mz": "^2.7.0",
1675 | "pirates": "^4.0.1",
1676 | "ts-interface-checker": "^0.1.9"
1677 | },
1678 | "bin": {
1679 | "sucrase": "bin/sucrase",
1680 | "sucrase-node": "bin/sucrase-node"
1681 | },
1682 | "engines": {
1683 | "node": ">=16 || 14 >=14.17"
1684 | }
1685 | },
1686 | "node_modules/supports-preserve-symlinks-flag": {
1687 | "version": "1.0.0",
1688 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1689 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1690 | "dev": true,
1691 | "engines": {
1692 | "node": ">= 0.4"
1693 | },
1694 | "funding": {
1695 | "url": "https://github.com/sponsors/ljharb"
1696 | }
1697 | },
1698 | "node_modules/tailwindcss": {
1699 | "version": "3.4.4",
1700 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz",
1701 | "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==",
1702 | "dev": true,
1703 | "dependencies": {
1704 | "@alloc/quick-lru": "^5.2.0",
1705 | "arg": "^5.0.2",
1706 | "chokidar": "^3.5.3",
1707 | "didyoumean": "^1.2.2",
1708 | "dlv": "^1.1.3",
1709 | "fast-glob": "^3.3.0",
1710 | "glob-parent": "^6.0.2",
1711 | "is-glob": "^4.0.3",
1712 | "jiti": "^1.21.0",
1713 | "lilconfig": "^2.1.0",
1714 | "micromatch": "^4.0.5",
1715 | "normalize-path": "^3.0.0",
1716 | "object-hash": "^3.0.0",
1717 | "picocolors": "^1.0.0",
1718 | "postcss": "^8.4.23",
1719 | "postcss-import": "^15.1.0",
1720 | "postcss-js": "^4.0.1",
1721 | "postcss-load-config": "^4.0.1",
1722 | "postcss-nested": "^6.0.1",
1723 | "postcss-selector-parser": "^6.0.11",
1724 | "resolve": "^1.22.2",
1725 | "sucrase": "^3.32.0"
1726 | },
1727 | "bin": {
1728 | "tailwind": "lib/cli.js",
1729 | "tailwindcss": "lib/cli.js"
1730 | },
1731 | "engines": {
1732 | "node": ">=14.0.0"
1733 | }
1734 | },
1735 | "node_modules/thenify": {
1736 | "version": "3.3.1",
1737 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
1738 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
1739 | "dev": true,
1740 | "dependencies": {
1741 | "any-promise": "^1.0.0"
1742 | }
1743 | },
1744 | "node_modules/thenify-all": {
1745 | "version": "1.6.0",
1746 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
1747 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
1748 | "dev": true,
1749 | "dependencies": {
1750 | "thenify": ">= 3.1.0 < 4"
1751 | },
1752 | "engines": {
1753 | "node": ">=0.8"
1754 | }
1755 | },
1756 | "node_modules/to-regex-range": {
1757 | "version": "5.0.1",
1758 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1759 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1760 | "dev": true,
1761 | "dependencies": {
1762 | "is-number": "^7.0.0"
1763 | },
1764 | "engines": {
1765 | "node": ">=8.0"
1766 | }
1767 | },
1768 | "node_modules/ts-interface-checker": {
1769 | "version": "0.1.13",
1770 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
1771 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
1772 | "dev": true
1773 | },
1774 | "node_modules/tslib": {
1775 | "version": "2.6.2",
1776 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
1777 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
1778 | },
1779 | "node_modules/typescript": {
1780 | "version": "4.9.4",
1781 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
1782 | "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
1783 | "dev": true,
1784 | "bin": {
1785 | "tsc": "bin/tsc",
1786 | "tsserver": "bin/tsserver"
1787 | },
1788 | "engines": {
1789 | "node": ">=4.2.0"
1790 | }
1791 | },
1792 | "node_modules/update-browserslist-db": {
1793 | "version": "1.0.16",
1794 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
1795 | "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
1796 | "dev": true,
1797 | "funding": [
1798 | {
1799 | "type": "opencollective",
1800 | "url": "https://opencollective.com/browserslist"
1801 | },
1802 | {
1803 | "type": "tidelift",
1804 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1805 | },
1806 | {
1807 | "type": "github",
1808 | "url": "https://github.com/sponsors/ai"
1809 | }
1810 | ],
1811 | "dependencies": {
1812 | "escalade": "^3.1.2",
1813 | "picocolors": "^1.0.1"
1814 | },
1815 | "bin": {
1816 | "update-browserslist-db": "cli.js"
1817 | },
1818 | "peerDependencies": {
1819 | "browserslist": ">= 4.21.0"
1820 | }
1821 | },
1822 | "node_modules/util-deprecate": {
1823 | "version": "1.0.2",
1824 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1825 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
1826 | "dev": true
1827 | },
1828 | "node_modules/which": {
1829 | "version": "2.0.2",
1830 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1831 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1832 | "dev": true,
1833 | "dependencies": {
1834 | "isexe": "^2.0.0"
1835 | },
1836 | "bin": {
1837 | "node-which": "bin/node-which"
1838 | },
1839 | "engines": {
1840 | "node": ">= 8"
1841 | }
1842 | },
1843 | "node_modules/wrap-ansi": {
1844 | "version": "8.1.0",
1845 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
1846 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
1847 | "dev": true,
1848 | "dependencies": {
1849 | "ansi-styles": "^6.1.0",
1850 | "string-width": "^5.0.1",
1851 | "strip-ansi": "^7.0.1"
1852 | },
1853 | "engines": {
1854 | "node": ">=12"
1855 | },
1856 | "funding": {
1857 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1858 | }
1859 | },
1860 | "node_modules/wrap-ansi-cjs": {
1861 | "name": "wrap-ansi",
1862 | "version": "7.0.0",
1863 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1864 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1865 | "dev": true,
1866 | "dependencies": {
1867 | "ansi-styles": "^4.0.0",
1868 | "string-width": "^4.1.0",
1869 | "strip-ansi": "^6.0.0"
1870 | },
1871 | "engines": {
1872 | "node": ">=10"
1873 | },
1874 | "funding": {
1875 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1876 | }
1877 | },
1878 | "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
1879 | "version": "5.0.1",
1880 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1881 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1882 | "dev": true,
1883 | "engines": {
1884 | "node": ">=8"
1885 | }
1886 | },
1887 | "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
1888 | "version": "4.3.0",
1889 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1890 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1891 | "dev": true,
1892 | "dependencies": {
1893 | "color-convert": "^2.0.1"
1894 | },
1895 | "engines": {
1896 | "node": ">=8"
1897 | },
1898 | "funding": {
1899 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1900 | }
1901 | },
1902 | "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
1903 | "version": "8.0.0",
1904 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1905 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1906 | "dev": true
1907 | },
1908 | "node_modules/wrap-ansi-cjs/node_modules/string-width": {
1909 | "version": "4.2.3",
1910 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1911 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1912 | "dev": true,
1913 | "dependencies": {
1914 | "emoji-regex": "^8.0.0",
1915 | "is-fullwidth-code-point": "^3.0.0",
1916 | "strip-ansi": "^6.0.1"
1917 | },
1918 | "engines": {
1919 | "node": ">=8"
1920 | }
1921 | },
1922 | "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
1923 | "version": "6.0.1",
1924 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1925 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1926 | "dev": true,
1927 | "dependencies": {
1928 | "ansi-regex": "^5.0.1"
1929 | },
1930 | "engines": {
1931 | "node": ">=8"
1932 | }
1933 | },
1934 | "node_modules/yaml": {
1935 | "version": "2.4.3",
1936 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.3.tgz",
1937 | "integrity": "sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==",
1938 | "dev": true,
1939 | "bin": {
1940 | "yaml": "bin.mjs"
1941 | },
1942 | "engines": {
1943 | "node": ">= 14"
1944 | }
1945 | }
1946 | }
1947 | }
1948 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "dev": "next dev",
4 | "build": "next build",
5 | "start": "next start",
6 | "lint": "next lint"
7 | },
8 | "dependencies": {
9 | "hono": "^4.4.2",
10 | "next": "^14.2.3",
11 | "react": "18.3.1",
12 | "react-dom": "18.3.1"
13 | },
14 | "devDependencies": {
15 | "@types/node": "18.11.18",
16 | "@types/react": "18.0.26",
17 | "@types/react-dom": "18.0.10",
18 | "autoprefixer": "^10.4.19",
19 | "postcss": "^8.4.38",
20 | "tailwindcss": "^3.4.4",
21 | "typescript": "4.9.4"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/styles/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: [
4 | "./app/**/*.{js,ts,jsx,tsx,mdx}",
5 | "./pages/**/*.{js,ts,jsx,tsx,mdx}",
6 | "./components/**/*.{js,ts,jsx,tsx,mdx}",
7 |
8 | // Or if using `src` directory:
9 | "./src/**/*.{js,ts,jsx,tsx,mdx}",
10 | ],
11 | theme: {
12 | extend: {},
13 | },
14 | plugins: [],
15 | }
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "strict": true,
12 | "forceConsistentCasingInFileNames": true,
13 | "noEmit": true,
14 | "esModuleInterop": true,
15 | "module": "esnext",
16 | "moduleResolution": "node",
17 | "resolveJsonModule": true,
18 | "isolatedModules": true,
19 | "jsx": "preserve",
20 | "incremental": true,
21 | "baseUrl": ".",
22 | "paths": {
23 | "@/*": [
24 | "./*"
25 | ]
26 | },
27 | "plugins": [
28 | {
29 | "name": "next"
30 | }
31 | ]
32 | },
33 | "include": [
34 | "next-env.d.ts",
35 | "**/*.ts",
36 | "**/*.tsx",
37 | ".next/types/**/*.ts"
38 | ],
39 | "exclude": [
40 | "node_modules"
41 | ]
42 | }
43 |
--------------------------------------------------------------------------------