A design system in a box. hip-ui.tngl.io/docs/introduction
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(create-turbo): create basic

authored by

Turbobot and committed by
Andrew Lisowski
997b3829

+4649
+38
.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 + 8 + # Local env files 9 + .env 10 + .env.local 11 + .env.development.local 12 + .env.test.local 13 + .env.production.local 14 + 15 + # Testing 16 + coverage 17 + 18 + # Turbo 19 + .turbo 20 + 21 + # Vercel 22 + .vercel 23 + 24 + # Build Outputs 25 + .next/ 26 + out/ 27 + build 28 + dist 29 + 30 + 31 + # Debug 32 + npm-debug.log* 33 + yarn-debug.log* 34 + yarn-error.log* 35 + 36 + # Misc 37 + .DS_Store 38 + *.pem
.npmrc

This is a binary file and will not be displayed.

+135
README.md
··· 1 + # Turborepo starter 2 + 3 + This Turborepo starter is maintained by the Turborepo core team. 4 + 5 + ## Using this example 6 + 7 + Run the following command: 8 + 9 + ```sh 10 + npx create-turbo@latest 11 + ``` 12 + 13 + ## What's inside? 14 + 15 + This Turborepo includes the following packages/apps: 16 + 17 + ### Apps and Packages 18 + 19 + - `docs`: a [Next.js](https://nextjs.org/) app 20 + - `web`: another [Next.js](https://nextjs.org/) app 21 + - `@repo/ui`: a stub React component library shared by both `web` and `docs` applications 22 + - `@repo/eslint-config`: `eslint` configurations (includes `eslint-config-next` and `eslint-config-prettier`) 23 + - `@repo/typescript-config`: `tsconfig.json`s used throughout the monorepo 24 + 25 + Each package/app is 100% [TypeScript](https://www.typescriptlang.org/). 26 + 27 + ### Utilities 28 + 29 + This Turborepo has some additional tools already setup for you: 30 + 31 + - [TypeScript](https://www.typescriptlang.org/) for static type checking 32 + - [ESLint](https://eslint.org/) for code linting 33 + - [Prettier](https://prettier.io) for code formatting 34 + 35 + ### Build 36 + 37 + To build all apps and packages, run the following command: 38 + 39 + ``` 40 + cd my-turborepo 41 + 42 + # With [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation) installed (recommended) 43 + turbo build 44 + 45 + # Without [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation), use your package manager 46 + npx turbo build 47 + yarn dlx turbo build 48 + pnpm exec turbo build 49 + ``` 50 + 51 + You can build a specific package by using a [filter](https://turborepo.com/docs/crafting-your-repository/running-tasks#using-filters): 52 + 53 + ``` 54 + # With [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation) installed (recommended) 55 + turbo build --filter=docs 56 + 57 + # Without [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation), use your package manager 58 + npx turbo build --filter=docs 59 + yarn exec turbo build --filter=docs 60 + pnpm exec turbo build --filter=docs 61 + ``` 62 + 63 + ### Develop 64 + 65 + To develop all apps and packages, run the following command: 66 + 67 + ``` 68 + cd my-turborepo 69 + 70 + # With [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation) installed (recommended) 71 + turbo dev 72 + 73 + # Without [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation), use your package manager 74 + npx turbo dev 75 + yarn exec turbo dev 76 + pnpm exec turbo dev 77 + ``` 78 + 79 + You can develop a specific package by using a [filter](https://turborepo.com/docs/crafting-your-repository/running-tasks#using-filters): 80 + 81 + ``` 82 + # With [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation) installed (recommended) 83 + turbo dev --filter=web 84 + 85 + # Without [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation), use your package manager 86 + npx turbo dev --filter=web 87 + yarn exec turbo dev --filter=web 88 + pnpm exec turbo dev --filter=web 89 + ``` 90 + 91 + ### Remote Caching 92 + 93 + > [!TIP] 94 + > Vercel Remote Cache is free for all plans. Get started today at [vercel.com](https://vercel.com/signup?/signup?utm_source=remote-cache-sdk&utm_campaign=free_remote_cache). 95 + 96 + Turborepo can use a technique known as [Remote Caching](https://turborepo.com/docs/core-concepts/remote-caching) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines. 97 + 98 + By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can [create one](https://vercel.com/signup?utm_source=turborepo-examples), then enter the following commands: 99 + 100 + ``` 101 + cd my-turborepo 102 + 103 + # With [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation) installed (recommended) 104 + turbo login 105 + 106 + # Without [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation), use your package manager 107 + npx turbo login 108 + yarn exec turbo login 109 + pnpm exec turbo login 110 + ``` 111 + 112 + This will authenticate the Turborepo CLI with your [Vercel account](https://vercel.com/docs/concepts/personal-accounts/overview). 113 + 114 + Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo: 115 + 116 + ``` 117 + # With [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation) installed (recommended) 118 + turbo link 119 + 120 + # Without [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation), use your package manager 121 + npx turbo link 122 + yarn exec turbo link 123 + pnpm exec turbo link 124 + ``` 125 + 126 + ## Useful Links 127 + 128 + Learn more about the power of Turborepo: 129 + 130 + - [Tasks](https://turborepo.com/docs/crafting-your-repository/running-tasks) 131 + - [Caching](https://turborepo.com/docs/crafting-your-repository/caching) 132 + - [Remote Caching](https://turborepo.com/docs/core-concepts/remote-caching) 133 + - [Filtering](https://turborepo.com/docs/crafting-your-repository/running-tasks#using-filters) 134 + - [Configuration Options](https://turborepo.com/docs/reference/configuration) 135 + - [CLI Usage](https://turborepo.com/docs/reference/command-line-reference)
+36
apps/docs/.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 + .DS_Store 21 + *.pem 22 + 23 + # debug 24 + npm-debug.log* 25 + yarn-debug.log* 26 + yarn-error.log* 27 + 28 + # env files (can opt-in for commiting if needed) 29 + .env* 30 + 31 + # vercel 32 + .vercel 33 + 34 + # typescript 35 + *.tsbuildinfo 36 + next-env.d.ts
+36
apps/docs/README.md
··· 1 + This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/create-next-app). 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 page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 20 + 21 + This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load Inter, a custom Google Font. 22 + 23 + ## Learn More 24 + 25 + To learn more about Next.js, take a look at the following resources: 26 + 27 + - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 + - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 + 30 + You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! 31 + 32 + ## Deploy on Vercel 33 + 34 + The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 + 36 + Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
apps/docs/app/favicon.ico

This is a binary file and will not be displayed.

apps/docs/app/fonts/GeistMonoVF.woff

This is a binary file and will not be displayed.

apps/docs/app/fonts/GeistVF.woff

This is a binary file and will not be displayed.

+50
apps/docs/app/globals.css
··· 1 + :root { 2 + --background: #ffffff; 3 + --foreground: #171717; 4 + } 5 + 6 + @media (prefers-color-scheme: dark) { 7 + :root { 8 + --background: #0a0a0a; 9 + --foreground: #ededed; 10 + } 11 + } 12 + 13 + html, 14 + body { 15 + max-width: 100vw; 16 + overflow-x: hidden; 17 + } 18 + 19 + body { 20 + color: var(--foreground); 21 + background: var(--background); 22 + } 23 + 24 + * { 25 + box-sizing: border-box; 26 + padding: 0; 27 + margin: 0; 28 + } 29 + 30 + a { 31 + color: inherit; 32 + text-decoration: none; 33 + } 34 + 35 + .imgDark { 36 + display: none; 37 + } 38 + 39 + @media (prefers-color-scheme: dark) { 40 + html { 41 + color-scheme: dark; 42 + } 43 + 44 + .imgLight { 45 + display: none; 46 + } 47 + .imgDark { 48 + display: unset; 49 + } 50 + }
+31
apps/docs/app/layout.tsx
··· 1 + import type { Metadata } from "next"; 2 + import localFont from "next/font/local"; 3 + import "./globals.css"; 4 + 5 + const geistSans = localFont({ 6 + src: "./fonts/GeistVF.woff", 7 + variable: "--font-geist-sans", 8 + }); 9 + const geistMono = localFont({ 10 + src: "./fonts/GeistMonoVF.woff", 11 + variable: "--font-geist-mono", 12 + }); 13 + 14 + export const metadata: Metadata = { 15 + title: "Create Next App", 16 + description: "Generated by create next app", 17 + }; 18 + 19 + export default function RootLayout({ 20 + children, 21 + }: Readonly<{ 22 + children: React.ReactNode; 23 + }>) { 24 + return ( 25 + <html lang="en"> 26 + <body className={`${geistSans.variable} ${geistMono.variable}`}> 27 + {children} 28 + </body> 29 + </html> 30 + ); 31 + }
+188
apps/docs/app/page.module.css
··· 1 + .page { 2 + --gray-rgb: 0, 0, 0; 3 + --gray-alpha-200: rgba(var(--gray-rgb), 0.08); 4 + --gray-alpha-100: rgba(var(--gray-rgb), 0.05); 5 + 6 + --button-primary-hover: #383838; 7 + --button-secondary-hover: #f2f2f2; 8 + 9 + display: grid; 10 + grid-template-rows: 20px 1fr 20px; 11 + align-items: center; 12 + justify-items: center; 13 + min-height: 100svh; 14 + padding: 80px; 15 + gap: 64px; 16 + font-synthesis: none; 17 + } 18 + 19 + @media (prefers-color-scheme: dark) { 20 + .page { 21 + --gray-rgb: 255, 255, 255; 22 + --gray-alpha-200: rgba(var(--gray-rgb), 0.145); 23 + --gray-alpha-100: rgba(var(--gray-rgb), 0.06); 24 + 25 + --button-primary-hover: #ccc; 26 + --button-secondary-hover: #1a1a1a; 27 + } 28 + } 29 + 30 + .main { 31 + display: flex; 32 + flex-direction: column; 33 + gap: 32px; 34 + grid-row-start: 2; 35 + } 36 + 37 + .main ol { 38 + font-family: var(--font-geist-mono); 39 + padding-left: 0; 40 + margin: 0; 41 + font-size: 14px; 42 + line-height: 24px; 43 + letter-spacing: -0.01em; 44 + list-style-position: inside; 45 + } 46 + 47 + .main li:not(:last-of-type) { 48 + margin-bottom: 8px; 49 + } 50 + 51 + .main code { 52 + font-family: inherit; 53 + background: var(--gray-alpha-100); 54 + padding: 2px 4px; 55 + border-radius: 4px; 56 + font-weight: 600; 57 + } 58 + 59 + .ctas { 60 + display: flex; 61 + gap: 16px; 62 + } 63 + 64 + .ctas a { 65 + appearance: none; 66 + border-radius: 128px; 67 + height: 48px; 68 + padding: 0 20px; 69 + border: none; 70 + font-family: var(--font-geist-sans); 71 + border: 1px solid transparent; 72 + transition: background 0.2s, color 0.2s, border-color 0.2s; 73 + cursor: pointer; 74 + display: flex; 75 + align-items: center; 76 + justify-content: center; 77 + font-size: 16px; 78 + line-height: 20px; 79 + font-weight: 500; 80 + } 81 + 82 + a.primary { 83 + background: var(--foreground); 84 + color: var(--background); 85 + gap: 8px; 86 + } 87 + 88 + a.secondary { 89 + border-color: var(--gray-alpha-200); 90 + min-width: 180px; 91 + } 92 + 93 + button.secondary { 94 + appearance: none; 95 + border-radius: 128px; 96 + height: 48px; 97 + padding: 0 20px; 98 + border: none; 99 + font-family: var(--font-geist-sans); 100 + border: 1px solid transparent; 101 + transition: background 0.2s, color 0.2s, border-color 0.2s; 102 + cursor: pointer; 103 + display: flex; 104 + align-items: center; 105 + justify-content: center; 106 + font-size: 16px; 107 + line-height: 20px; 108 + font-weight: 500; 109 + background: transparent; 110 + border-color: var(--gray-alpha-200); 111 + min-width: 180px; 112 + } 113 + 114 + .footer { 115 + font-family: var(--font-geist-sans); 116 + grid-row-start: 3; 117 + display: flex; 118 + gap: 24px; 119 + } 120 + 121 + .footer a { 122 + display: flex; 123 + align-items: center; 124 + gap: 8px; 125 + } 126 + 127 + .footer img { 128 + flex-shrink: 0; 129 + } 130 + 131 + /* Enable hover only on non-touch devices */ 132 + @media (hover: hover) and (pointer: fine) { 133 + a.primary:hover { 134 + background: var(--button-primary-hover); 135 + border-color: transparent; 136 + } 137 + 138 + a.secondary:hover { 139 + background: var(--button-secondary-hover); 140 + border-color: transparent; 141 + } 142 + 143 + .footer a:hover { 144 + text-decoration: underline; 145 + text-underline-offset: 4px; 146 + } 147 + } 148 + 149 + @media (max-width: 600px) { 150 + .page { 151 + padding: 32px; 152 + padding-bottom: 80px; 153 + } 154 + 155 + .main { 156 + align-items: center; 157 + } 158 + 159 + .main ol { 160 + text-align: center; 161 + } 162 + 163 + .ctas { 164 + flex-direction: column; 165 + } 166 + 167 + .ctas a { 168 + font-size: 14px; 169 + height: 40px; 170 + padding: 0 16px; 171 + } 172 + 173 + a.secondary { 174 + min-width: auto; 175 + } 176 + 177 + .footer { 178 + flex-wrap: wrap; 179 + align-items: center; 180 + justify-content: center; 181 + } 182 + } 183 + 184 + @media (prefers-color-scheme: dark) { 185 + .logo { 186 + filter: invert(); 187 + } 188 + }
+102
apps/docs/app/page.tsx
··· 1 + import Image, { type ImageProps } from "next/image"; 2 + import { Button } from "@repo/ui/button"; 3 + import styles from "./page.module.css"; 4 + 5 + type Props = Omit<ImageProps, "src"> & { 6 + srcLight: string; 7 + srcDark: string; 8 + }; 9 + 10 + const ThemeImage = (props: Props) => { 11 + const { srcLight, srcDark, ...rest } = props; 12 + 13 + return ( 14 + <> 15 + <Image {...rest} src={srcLight} className="imgLight" /> 16 + <Image {...rest} src={srcDark} className="imgDark" /> 17 + </> 18 + ); 19 + }; 20 + 21 + export default function Home() { 22 + return ( 23 + <div className={styles.page}> 24 + <main className={styles.main}> 25 + <ThemeImage 26 + className={styles.logo} 27 + srcLight="turborepo-dark.svg" 28 + srcDark="turborepo-light.svg" 29 + alt="Turborepo logo" 30 + width={180} 31 + height={38} 32 + priority 33 + /> 34 + <ol> 35 + <li> 36 + Get started by editing <code>apps/docs/app/page.tsx</code> 37 + </li> 38 + <li>Save and see your changes instantly.</li> 39 + </ol> 40 + 41 + <div className={styles.ctas}> 42 + <a 43 + className={styles.primary} 44 + href="https://vercel.com/new/clone?demo-description=Learn+to+implement+a+monorepo+with+a+two+Next.js+sites+that+has+installed+three+local+packages.&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F4K8ZISWAzJ8X1504ca0zmC%2F0b21a1c6246add355e55816278ef54bc%2FBasic.png&demo-title=Monorepo+with+Turborepo&demo-url=https%3A%2F%2Fexamples-basic-web.vercel.sh%2F&from=templates&project-name=Monorepo+with+Turborepo&repository-name=monorepo-turborepo&repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fturborepo%2Ftree%2Fmain%2Fexamples%2Fbasic&root-directory=apps%2Fdocs&skippable-integrations=1&teamSlug=vercel&utm_source=create-turbo" 45 + target="_blank" 46 + rel="noopener noreferrer" 47 + > 48 + <Image 49 + className={styles.logo} 50 + src="/vercel.svg" 51 + alt="Vercel logomark" 52 + width={20} 53 + height={20} 54 + /> 55 + Deploy now 56 + </a> 57 + <a 58 + href="https://turborepo.com/docs?utm_source" 59 + target="_blank" 60 + rel="noopener noreferrer" 61 + className={styles.secondary} 62 + > 63 + Read our docs 64 + </a> 65 + </div> 66 + <Button appName="docs" className={styles.secondary}> 67 + Open alert 68 + </Button> 69 + </main> 70 + <footer className={styles.footer}> 71 + <a 72 + href="https://vercel.com/templates?search=turborepo&utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" 73 + target="_blank" 74 + rel="noopener noreferrer" 75 + > 76 + <Image 77 + aria-hidden 78 + src="/window.svg" 79 + alt="Window icon" 80 + width={16} 81 + height={16} 82 + /> 83 + Examples 84 + </a> 85 + <a 86 + href="https://turborepo.com?utm_source=create-turbo" 87 + target="_blank" 88 + rel="noopener noreferrer" 89 + > 90 + <Image 91 + aria-hidden 92 + src="/globe.svg" 93 + alt="Globe icon" 94 + width={16} 95 + height={16} 96 + /> 97 + Go to turborepo.com → 98 + </a> 99 + </footer> 100 + </div> 101 + ); 102 + }
+4
apps/docs/eslint.config.js
··· 1 + import { nextJsConfig } from "@repo/eslint-config/next-js"; 2 + 3 + /** @type {import("eslint").Linter.Config[]} */ 4 + export default nextJsConfig;
+4
apps/docs/next.config.js
··· 1 + /** @type {import('next').NextConfig} */ 2 + const nextConfig = {}; 3 + 4 + export default nextConfig;
+28
apps/docs/package.json
··· 1 + { 2 + "name": "docs", 3 + "version": "0.1.0", 4 + "type": "module", 5 + "private": true, 6 + "scripts": { 7 + "dev": "next dev --turbopack --port 3001", 8 + "build": "next build", 9 + "start": "next start", 10 + "lint": "next lint --max-warnings 0", 11 + "check-types": "tsc --noEmit" 12 + }, 13 + "dependencies": { 14 + "@repo/ui": "workspace:*", 15 + "next": "^15.5.0", 16 + "react": "^19.1.0", 17 + "react-dom": "^19.1.0" 18 + }, 19 + "devDependencies": { 20 + "@repo/eslint-config": "workspace:*", 21 + "@repo/typescript-config": "workspace:*", 22 + "@types/node": "^22.15.3", 23 + "@types/react": "19.1.0", 24 + "@types/react-dom": "19.1.1", 25 + "eslint": "^9.34.0", 26 + "typescript": "5.9.2" 27 + } 28 + }
+3
apps/docs/public/file-text.svg
··· 1 + <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 13.5V6.5V5.41421C14.5 5.149 14.3946 4.89464 14.2071 4.70711L9.79289 0.292893C9.60536 0.105357 9.351 0 9.08579 0H8H3H1.5V1.5V13.5C1.5 14.8807 2.61929 16 4 16H12C13.3807 16 14.5 14.8807 14.5 13.5ZM13 13.5V6.5H9.5H8V5V1.5H3V13.5C3 14.0523 3.44772 14.5 4 14.5H12C12.5523 14.5 13 14.0523 13 13.5ZM9.5 5V2.12132L12.3787 5H9.5ZM5.13 5.00062H4.505V6.25062H5.13H6H6.625V5.00062H6H5.13ZM4.505 8H5.13H11H11.625V9.25H11H5.13H4.505V8ZM5.13 11H4.505V12.25H5.13H11H11.625V11H11H5.13Z" fill="#666666"/> 3 + </svg>
+10
apps/docs/public/globe.svg
··· 1 + <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <g clip-path="url(#clip0_868_525)"> 3 + <path fill-rule="evenodd" clip-rule="evenodd" d="M10.268 14.0934C11.9051 13.4838 13.2303 12.2333 13.9384 10.6469C13.1192 10.7941 12.2138 10.9111 11.2469 10.9925C11.0336 12.2005 10.695 13.2621 10.268 14.0934ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM8.48347 14.4823C8.32384 14.494 8.16262 14.5 8 14.5C7.83738 14.5 7.67616 14.494 7.51654 14.4823C7.5132 14.4791 7.50984 14.4759 7.50647 14.4726C7.2415 14.2165 6.94578 13.7854 6.67032 13.1558C6.41594 12.5744 6.19979 11.8714 6.04101 11.0778C6.67605 11.1088 7.33104 11.125 8 11.125C8.66896 11.125 9.32395 11.1088 9.95899 11.0778C9.80021 11.8714 9.58406 12.5744 9.32968 13.1558C9.05422 13.7854 8.7585 14.2165 8.49353 14.4726C8.49016 14.4759 8.4868 14.4791 8.48347 14.4823ZM11.4187 9.72246C12.5137 9.62096 13.5116 9.47245 14.3724 9.28806C14.4561 8.87172 14.5 8.44099 14.5 8C14.5 7.55901 14.4561 7.12828 14.3724 6.71194C13.5116 6.52755 12.5137 6.37904 11.4187 6.27753C11.4719 6.83232 11.5 7.40867 11.5 8C11.5 8.59133 11.4719 9.16768 11.4187 9.72246ZM10.1525 6.18401C10.2157 6.75982 10.25 7.36805 10.25 8C10.25 8.63195 10.2157 9.24018 10.1525 9.81598C9.46123 9.85455 8.7409 9.875 8 9.875C7.25909 9.875 6.53877 9.85455 5.84749 9.81598C5.7843 9.24018 5.75 8.63195 5.75 8C5.75 7.36805 5.7843 6.75982 5.84749 6.18401C6.53877 6.14545 7.25909 6.125 8 6.125C8.74091 6.125 9.46123 6.14545 10.1525 6.18401ZM11.2469 5.00748C12.2138 5.08891 13.1191 5.20593 13.9384 5.35306C13.2303 3.7667 11.9051 2.51622 10.268 1.90662C10.695 2.73788 11.0336 3.79953 11.2469 5.00748ZM8.48347 1.51771C8.4868 1.52089 8.49016 1.52411 8.49353 1.52737C8.7585 1.78353 9.05422 2.21456 9.32968 2.84417C9.58406 3.42562 9.80021 4.12856 9.95899 4.92219C9.32395 4.89118 8.66896 4.875 8 4.875C7.33104 4.875 6.67605 4.89118 6.04101 4.92219C6.19978 4.12856 6.41594 3.42562 6.67032 2.84417C6.94578 2.21456 7.2415 1.78353 7.50647 1.52737C7.50984 1.52411 7.51319 1.52089 7.51653 1.51771C7.67615 1.50597 7.83738 1.5 8 1.5C8.16262 1.5 8.32384 1.50597 8.48347 1.51771ZM5.73202 1.90663C4.0949 2.51622 2.76975 3.7667 2.06159 5.35306C2.88085 5.20593 3.78617 5.08891 4.75309 5.00748C4.96639 3.79953 5.30497 2.73788 5.73202 1.90663ZM4.58133 6.27753C3.48633 6.37904 2.48837 6.52755 1.62761 6.71194C1.54392 7.12828 1.5 7.55901 1.5 8C1.5 8.44099 1.54392 8.87172 1.62761 9.28806C2.48837 9.47245 3.48633 9.62096 4.58133 9.72246C4.52807 9.16768 4.5 8.59133 4.5 8C4.5 7.40867 4.52807 6.83232 4.58133 6.27753ZM4.75309 10.9925C3.78617 10.9111 2.88085 10.7941 2.06159 10.6469C2.76975 12.2333 4.0949 13.4838 5.73202 14.0934C5.30497 13.2621 4.96639 12.2005 4.75309 10.9925Z" fill="#666666"/> 4 + </g> 5 + <defs> 6 + <clipPath id="clip0_868_525"> 7 + <rect width="16" height="16" fill="white"/> 8 + </clipPath> 9 + </defs> 10 + </svg>
+1
apps/docs/public/next.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
+19
apps/docs/public/turborepo-dark.svg
··· 1 + <svg width="473" height="76" viewBox="0 0 473 76" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <path d="M130.998 30.6565V22.3773H91.0977V30.6565H106.16V58.1875H115.935V30.6565H130.998Z" fill="black"/> 3 + <path d="M153.542 58.7362C165.811 58.7362 172.544 52.5018 172.544 42.2275V22.3773H162.768V41.2799C162.768 47.0155 159.776 50.2574 153.542 50.2574C147.307 50.2574 144.315 47.0155 144.315 41.2799V22.3773H134.539V42.2275C134.539 52.5018 141.272 58.7362 153.542 58.7362Z" fill="black"/> 4 + <path d="M187.508 46.3173H197.234L204.914 58.1875H216.136L207.458 45.2699C212.346 43.5243 215.338 39.634 215.338 34.3473C215.338 26.6665 209.603 22.3773 200.874 22.3773H177.732V58.1875H187.508V46.3173ZM187.508 38.5867V30.5568H200.376C203.817 30.5568 205.712 32.053 205.712 34.5967C205.712 36.9907 203.817 38.5867 200.376 38.5867H187.508Z" fill="black"/> 5 + <path d="M219.887 58.1875H245.472C253.452 58.1875 258.041 54.397 258.041 48.0629C258.041 43.8235 255.348 40.9308 252.156 39.634C254.35 38.5867 257.043 36.0929 257.043 32.1528C257.043 25.8187 252.555 22.3773 244.625 22.3773H219.887V58.1875ZM229.263 36.3922V30.3074H243.627C246.32 30.3074 247.817 31.3548 247.817 33.3498C247.817 35.3448 246.32 36.3922 243.627 36.3922H229.263ZM229.263 43.7238H244.525C247.168 43.7238 248.615 45.0205 248.615 46.9657C248.615 48.9108 247.168 50.2075 244.525 50.2075H229.263V43.7238Z" fill="black"/> 6 + <path d="M281.942 21.7788C269.423 21.7788 260.396 29.6092 260.396 40.2824C260.396 50.9557 269.423 58.786 281.942 58.786C294.461 58.786 303.438 50.9557 303.438 40.2824C303.438 29.6092 294.461 21.7788 281.942 21.7788ZM281.942 30.2575C288.525 30.2575 293.463 34.1478 293.463 40.2824C293.463 46.417 288.525 50.3073 281.942 50.3073C275.359 50.3073 270.421 46.417 270.421 40.2824C270.421 34.1478 275.359 30.2575 281.942 30.2575Z" fill="black"/> 7 + <path d="M317.526 46.3173H327.251L334.932 58.1875H346.154L337.476 45.2699C342.364 43.5243 345.356 39.634 345.356 34.3473C345.356 26.6665 339.62 22.3773 330.892 22.3773H307.75V58.1875H317.526V46.3173ZM317.526 38.5867V30.5568H330.394C333.835 30.5568 335.73 32.053 335.73 34.5967C335.73 36.9907 333.835 38.5867 330.394 38.5867H317.526Z" fill="black"/> 8 + <path d="M349.904 22.3773V58.1875H384.717V49.9083H359.48V44.0729H381.874V35.9932H359.48V30.6565H384.717V22.3773H349.904Z" fill="black"/> 9 + <path d="M399.204 46.7662H412.221C420.95 46.7662 426.685 42.5767 426.685 34.5967C426.685 26.5668 420.95 22.3773 412.221 22.3773H389.428V58.1875H399.204V46.7662ZM399.204 38.6365V30.5568H411.673C415.164 30.5568 417.059 32.053 417.059 34.5967C417.059 37.0904 415.164 38.6365 411.673 38.6365H399.204Z" fill="black"/> 10 + <path d="M450.948 21.7788C438.43 21.7788 429.402 29.6092 429.402 40.2824C429.402 50.9557 438.43 58.786 450.948 58.786C463.467 58.786 472.444 50.9557 472.444 40.2824C472.444 29.6092 463.467 21.7788 450.948 21.7788ZM450.948 30.2575C457.532 30.2575 462.469 34.1478 462.469 40.2824C462.469 46.417 457.532 50.3073 450.948 50.3073C444.365 50.3073 439.427 46.417 439.427 40.2824C439.427 34.1478 444.365 30.2575 450.948 30.2575Z" fill="black"/> 11 + <path d="M38.5017 18.0956C27.2499 18.0956 18.0957 27.2498 18.0957 38.5016C18.0957 49.7534 27.2499 58.9076 38.5017 58.9076C49.7535 58.9076 58.9077 49.7534 58.9077 38.5016C58.9077 27.2498 49.7535 18.0956 38.5017 18.0956ZM38.5017 49.0618C32.6687 49.0618 27.9415 44.3346 27.9415 38.5016C27.9415 32.6686 32.6687 27.9414 38.5017 27.9414C44.3347 27.9414 49.0619 32.6686 49.0619 38.5016C49.0619 44.3346 44.3347 49.0618 38.5017 49.0618Z" fill="black"/> 12 + <path fill-rule="evenodd" clip-rule="evenodd" d="M40.2115 14.744V7.125C56.7719 8.0104 69.9275 21.7208 69.9275 38.5016C69.9275 55.2824 56.7719 68.989 40.2115 69.8782V62.2592C52.5539 61.3776 62.3275 51.0644 62.3275 38.5016C62.3275 25.9388 52.5539 15.6256 40.2115 14.744ZM20.5048 54.0815C17.233 50.3043 15.124 45.4935 14.7478 40.2115H7.125C7.5202 47.6025 10.4766 54.3095 15.1088 59.4737L20.501 54.0815H20.5048ZM36.7916 69.8782V62.2592C31.5058 61.883 26.695 59.7778 22.9178 56.5022L17.5256 61.8944C22.6936 66.5304 29.4006 69.483 36.7878 69.8782H36.7916Z" fill="url(#paint0_linear_2028_278)"/> 13 + <defs> 14 + <linearGradient id="paint0_linear_2028_278" x1="41.443" y1="11.5372" x2="10.5567" y2="42.4236" gradientUnits="userSpaceOnUse"> 15 + <stop stop-color="#0096FF"/> 16 + <stop offset="1" stop-color="#FF1E56"/> 17 + </linearGradient> 18 + </defs> 19 + </svg>
+19
apps/docs/public/turborepo-light.svg
··· 1 + <svg width="473" height="76" viewBox="0 0 473 76" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <path d="M130.998 30.6566V22.3773H91.0977V30.6566H106.16V58.1876H115.935V30.6566H130.998Z" fill="white"/> 3 + <path d="M153.542 58.7362C165.811 58.7362 172.544 52.5018 172.544 42.2276V22.3773H162.768V41.2799C162.768 47.0156 159.776 50.2574 153.542 50.2574C147.307 50.2574 144.315 47.0156 144.315 41.2799V22.3773H134.539V42.2276C134.539 52.5018 141.272 58.7362 153.542 58.7362Z" fill="white"/> 4 + <path d="M187.508 46.3173H197.234L204.914 58.1876H216.136L207.458 45.2699C212.346 43.5243 215.338 39.6341 215.338 34.3473C215.338 26.6666 209.603 22.3773 200.874 22.3773H177.732V58.1876H187.508V46.3173ZM187.508 38.5867V30.5568H200.376C203.817 30.5568 205.712 32.0531 205.712 34.5967C205.712 36.9907 203.817 38.5867 200.376 38.5867H187.508Z" fill="white"/> 5 + <path d="M219.887 58.1876H245.472C253.452 58.1876 258.041 54.3971 258.041 48.0629C258.041 43.8236 255.348 40.9308 252.156 39.6341C254.35 38.5867 257.043 36.0929 257.043 32.1528C257.043 25.8187 252.555 22.3773 244.625 22.3773H219.887V58.1876ZM229.263 36.3922V30.3074H243.627C246.32 30.3074 247.817 31.3548 247.817 33.3498C247.817 35.3448 246.32 36.3922 243.627 36.3922H229.263ZM229.263 43.7238H244.525C247.168 43.7238 248.615 45.0206 248.615 46.9657C248.615 48.9108 247.168 50.2076 244.525 50.2076H229.263V43.7238Z" fill="white"/> 6 + <path d="M281.942 21.7788C269.423 21.7788 260.396 29.6092 260.396 40.2824C260.396 50.9557 269.423 58.7861 281.942 58.7861C294.461 58.7861 303.438 50.9557 303.438 40.2824C303.438 29.6092 294.461 21.7788 281.942 21.7788ZM281.942 30.2576C288.525 30.2576 293.463 34.1478 293.463 40.2824C293.463 46.4171 288.525 50.3073 281.942 50.3073C275.359 50.3073 270.421 46.4171 270.421 40.2824C270.421 34.1478 275.359 30.2576 281.942 30.2576Z" fill="white"/> 7 + <path d="M317.526 46.3173H327.251L334.932 58.1876H346.154L337.476 45.2699C342.364 43.5243 345.356 39.6341 345.356 34.3473C345.356 26.6666 339.62 22.3773 330.892 22.3773H307.75V58.1876H317.526V46.3173ZM317.526 38.5867V30.5568H330.394C333.835 30.5568 335.73 32.0531 335.73 34.5967C335.73 36.9907 333.835 38.5867 330.394 38.5867H317.526Z" fill="white"/> 8 + <path d="M349.904 22.3773V58.1876H384.717V49.9083H359.48V44.0729H381.874V35.9932H359.48V30.6566H384.717V22.3773H349.904Z" fill="white"/> 9 + <path d="M399.204 46.7662H412.221C420.95 46.7662 426.685 42.5767 426.685 34.5967C426.685 26.5668 420.95 22.3773 412.221 22.3773H389.428V58.1876H399.204V46.7662ZM399.204 38.6366V30.5568H411.673C415.164 30.5568 417.059 32.0531 417.059 34.5967C417.059 37.0904 415.164 38.6366 411.673 38.6366H399.204Z" fill="white"/> 10 + <path d="M450.948 21.7788C438.43 21.7788 429.402 29.6092 429.402 40.2824C429.402 50.9557 438.43 58.7861 450.948 58.7861C463.467 58.7861 472.444 50.9557 472.444 40.2824C472.444 29.6092 463.467 21.7788 450.948 21.7788ZM450.948 30.2576C457.532 30.2576 462.469 34.1478 462.469 40.2824C462.469 46.4171 457.532 50.3073 450.948 50.3073C444.365 50.3073 439.427 46.4171 439.427 40.2824C439.427 34.1478 444.365 30.2576 450.948 30.2576Z" fill="white"/> 11 + <path d="M38.5017 18.0956C27.2499 18.0956 18.0957 27.2498 18.0957 38.5016C18.0957 49.7534 27.2499 58.9076 38.5017 58.9076C49.7535 58.9076 58.9077 49.7534 58.9077 38.5016C58.9077 27.2498 49.7535 18.0956 38.5017 18.0956ZM38.5017 49.0618C32.6687 49.0618 27.9415 44.3346 27.9415 38.5016C27.9415 32.6686 32.6687 27.9414 38.5017 27.9414C44.3347 27.9414 49.0619 32.6686 49.0619 38.5016C49.0619 44.3346 44.3347 49.0618 38.5017 49.0618Z" fill="white"/> 12 + <path fill-rule="evenodd" clip-rule="evenodd" d="M40.2115 14.744V7.125C56.7719 8.0104 69.9275 21.7208 69.9275 38.5016C69.9275 55.2824 56.7719 68.989 40.2115 69.8782V62.2592C52.5539 61.3776 62.3275 51.0644 62.3275 38.5016C62.3275 25.9388 52.5539 15.6256 40.2115 14.744ZM20.5048 54.0815C17.233 50.3043 15.124 45.4935 14.7478 40.2115H7.125C7.5202 47.6025 10.4766 54.3095 15.1088 59.4737L20.501 54.0815H20.5048ZM36.7916 69.8782V62.2592C31.5058 61.883 26.695 59.7778 22.9178 56.5022L17.5256 61.8944C22.6936 66.5304 29.4006 69.483 36.7878 69.8782H36.7916Z" fill="url(#paint0_linear_2028_477)"/> 13 + <defs> 14 + <linearGradient id="paint0_linear_2028_477" x1="41.443" y1="11.5372" x2="10.5567" y2="42.4236" gradientUnits="userSpaceOnUse"> 15 + <stop stop-color="#0096FF"/> 16 + <stop offset="1" stop-color="#FF1E56"/> 17 + </linearGradient> 18 + </defs> 19 + </svg>
+10
apps/docs/public/vercel.svg
··· 1 + <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <g clip-path="url(#clip0_977_547)"> 3 + <path fill-rule="evenodd" clip-rule="evenodd" d="M10.5 3L18.5 17H2.5L10.5 3Z" fill="white"/> 4 + </g> 5 + <defs> 6 + <clipPath id="clip0_977_547"> 7 + <rect width="16" height="16" fill="white" transform="translate(2.5 2)"/> 8 + </clipPath> 9 + </defs> 10 + </svg>
+3
apps/docs/public/window.svg
··· 1 + <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5H14.5V12.5C14.5 13.0523 14.0523 13.5 13.5 13.5H2.5C1.94772 13.5 1.5 13.0523 1.5 12.5V2.5ZM0 1H1.5H14.5H16V2.5V12.5C16 13.8807 14.8807 15 13.5 15H2.5C1.11929 15 0 13.8807 0 12.5V2.5V1ZM3.75 5.5C4.16421 5.5 4.5 5.16421 4.5 4.75C4.5 4.33579 4.16421 4 3.75 4C3.33579 4 3 4.33579 3 4.75C3 5.16421 3.33579 5.5 3.75 5.5ZM7 4.75C7 5.16421 6.66421 5.5 6.25 5.5C5.83579 5.5 5.5 5.16421 5.5 4.75C5.5 4.33579 5.83579 4 6.25 4C6.66421 4 7 4.33579 7 4.75ZM8.75 5.5C9.16421 5.5 9.5 5.16421 9.5 4.75C9.5 4.33579 9.16421 4 8.75 4C8.33579 4 8 4.33579 8 4.75C8 5.16421 8.33579 5.5 8.75 5.5Z" fill="#666666"/> 3 + </svg>
+20
apps/docs/tsconfig.json
··· 1 + { 2 + "extends": "@repo/typescript-config/nextjs.json", 3 + "compilerOptions": { 4 + "plugins": [ 5 + { 6 + "name": "next" 7 + } 8 + ] 9 + }, 10 + "include": [ 11 + "**/*.ts", 12 + "**/*.tsx", 13 + "next-env.d.ts", 14 + "next.config.js", 15 + ".next/types/**/*.ts" 16 + ], 17 + "exclude": [ 18 + "node_modules" 19 + ] 20 + }
+36
apps/web/.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 + .DS_Store 21 + *.pem 22 + 23 + # debug 24 + npm-debug.log* 25 + yarn-debug.log* 26 + yarn-error.log* 27 + 28 + # env files (can opt-in for commiting if needed) 29 + .env* 30 + 31 + # vercel 32 + .vercel 33 + 34 + # typescript 35 + *.tsbuildinfo 36 + next-env.d.ts
+36
apps/web/README.md
··· 1 + This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/create-next-app). 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 page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 20 + 21 + This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load Inter, a custom Google Font. 22 + 23 + ## Learn More 24 + 25 + To learn more about Next.js, take a look at the following resources: 26 + 27 + - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 + - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 + 30 + You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! 31 + 32 + ## Deploy on Vercel 33 + 34 + The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 + 36 + Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
apps/web/app/favicon.ico

This is a binary file and will not be displayed.

apps/web/app/fonts/GeistMonoVF.woff

This is a binary file and will not be displayed.

apps/web/app/fonts/GeistVF.woff

This is a binary file and will not be displayed.

+50
apps/web/app/globals.css
··· 1 + :root { 2 + --background: #ffffff; 3 + --foreground: #171717; 4 + } 5 + 6 + @media (prefers-color-scheme: dark) { 7 + :root { 8 + --background: #0a0a0a; 9 + --foreground: #ededed; 10 + } 11 + } 12 + 13 + html, 14 + body { 15 + max-width: 100vw; 16 + overflow-x: hidden; 17 + } 18 + 19 + body { 20 + color: var(--foreground); 21 + background: var(--background); 22 + } 23 + 24 + * { 25 + box-sizing: border-box; 26 + padding: 0; 27 + margin: 0; 28 + } 29 + 30 + a { 31 + color: inherit; 32 + text-decoration: none; 33 + } 34 + 35 + .imgDark { 36 + display: none; 37 + } 38 + 39 + @media (prefers-color-scheme: dark) { 40 + html { 41 + color-scheme: dark; 42 + } 43 + 44 + .imgLight { 45 + display: none; 46 + } 47 + .imgDark { 48 + display: unset; 49 + } 50 + }
+31
apps/web/app/layout.tsx
··· 1 + import type { Metadata } from "next"; 2 + import localFont from "next/font/local"; 3 + import "./globals.css"; 4 + 5 + const geistSans = localFont({ 6 + src: "./fonts/GeistVF.woff", 7 + variable: "--font-geist-sans", 8 + }); 9 + const geistMono = localFont({ 10 + src: "./fonts/GeistMonoVF.woff", 11 + variable: "--font-geist-mono", 12 + }); 13 + 14 + export const metadata: Metadata = { 15 + title: "Create Next App", 16 + description: "Generated by create next app", 17 + }; 18 + 19 + export default function RootLayout({ 20 + children, 21 + }: Readonly<{ 22 + children: React.ReactNode; 23 + }>) { 24 + return ( 25 + <html lang="en"> 26 + <body className={`${geistSans.variable} ${geistMono.variable}`}> 27 + {children} 28 + </body> 29 + </html> 30 + ); 31 + }
+188
apps/web/app/page.module.css
··· 1 + .page { 2 + --gray-rgb: 0, 0, 0; 3 + --gray-alpha-200: rgba(var(--gray-rgb), 0.08); 4 + --gray-alpha-100: rgba(var(--gray-rgb), 0.05); 5 + 6 + --button-primary-hover: #383838; 7 + --button-secondary-hover: #f2f2f2; 8 + 9 + display: grid; 10 + grid-template-rows: 20px 1fr 20px; 11 + align-items: center; 12 + justify-items: center; 13 + min-height: 100svh; 14 + padding: 80px; 15 + gap: 64px; 16 + font-synthesis: none; 17 + } 18 + 19 + @media (prefers-color-scheme: dark) { 20 + .page { 21 + --gray-rgb: 255, 255, 255; 22 + --gray-alpha-200: rgba(var(--gray-rgb), 0.145); 23 + --gray-alpha-100: rgba(var(--gray-rgb), 0.06); 24 + 25 + --button-primary-hover: #ccc; 26 + --button-secondary-hover: #1a1a1a; 27 + } 28 + } 29 + 30 + .main { 31 + display: flex; 32 + flex-direction: column; 33 + gap: 32px; 34 + grid-row-start: 2; 35 + } 36 + 37 + .main ol { 38 + font-family: var(--font-geist-mono); 39 + padding-left: 0; 40 + margin: 0; 41 + font-size: 14px; 42 + line-height: 24px; 43 + letter-spacing: -0.01em; 44 + list-style-position: inside; 45 + } 46 + 47 + .main li:not(:last-of-type) { 48 + margin-bottom: 8px; 49 + } 50 + 51 + .main code { 52 + font-family: inherit; 53 + background: var(--gray-alpha-100); 54 + padding: 2px 4px; 55 + border-radius: 4px; 56 + font-weight: 600; 57 + } 58 + 59 + .ctas { 60 + display: flex; 61 + gap: 16px; 62 + } 63 + 64 + .ctas a { 65 + appearance: none; 66 + border-radius: 128px; 67 + height: 48px; 68 + padding: 0 20px; 69 + border: none; 70 + font-family: var(--font-geist-sans); 71 + border: 1px solid transparent; 72 + transition: background 0.2s, color 0.2s, border-color 0.2s; 73 + cursor: pointer; 74 + display: flex; 75 + align-items: center; 76 + justify-content: center; 77 + font-size: 16px; 78 + line-height: 20px; 79 + font-weight: 500; 80 + } 81 + 82 + a.primary { 83 + background: var(--foreground); 84 + color: var(--background); 85 + gap: 8px; 86 + } 87 + 88 + a.secondary { 89 + border-color: var(--gray-alpha-200); 90 + min-width: 180px; 91 + } 92 + 93 + button.secondary { 94 + appearance: none; 95 + border-radius: 128px; 96 + height: 48px; 97 + padding: 0 20px; 98 + border: none; 99 + font-family: var(--font-geist-sans); 100 + border: 1px solid transparent; 101 + transition: background 0.2s, color 0.2s, border-color 0.2s; 102 + cursor: pointer; 103 + display: flex; 104 + align-items: center; 105 + justify-content: center; 106 + font-size: 16px; 107 + line-height: 20px; 108 + font-weight: 500; 109 + background: transparent; 110 + border-color: var(--gray-alpha-200); 111 + min-width: 180px; 112 + } 113 + 114 + .footer { 115 + font-family: var(--font-geist-sans); 116 + grid-row-start: 3; 117 + display: flex; 118 + gap: 24px; 119 + } 120 + 121 + .footer a { 122 + display: flex; 123 + align-items: center; 124 + gap: 8px; 125 + } 126 + 127 + .footer img { 128 + flex-shrink: 0; 129 + } 130 + 131 + /* Enable hover only on non-touch devices */ 132 + @media (hover: hover) and (pointer: fine) { 133 + a.primary:hover { 134 + background: var(--button-primary-hover); 135 + border-color: transparent; 136 + } 137 + 138 + a.secondary:hover { 139 + background: var(--button-secondary-hover); 140 + border-color: transparent; 141 + } 142 + 143 + .footer a:hover { 144 + text-decoration: underline; 145 + text-underline-offset: 4px; 146 + } 147 + } 148 + 149 + @media (max-width: 600px) { 150 + .page { 151 + padding: 32px; 152 + padding-bottom: 80px; 153 + } 154 + 155 + .main { 156 + align-items: center; 157 + } 158 + 159 + .main ol { 160 + text-align: center; 161 + } 162 + 163 + .ctas { 164 + flex-direction: column; 165 + } 166 + 167 + .ctas a { 168 + font-size: 14px; 169 + height: 40px; 170 + padding: 0 16px; 171 + } 172 + 173 + a.secondary { 174 + min-width: auto; 175 + } 176 + 177 + .footer { 178 + flex-wrap: wrap; 179 + align-items: center; 180 + justify-content: center; 181 + } 182 + } 183 + 184 + @media (prefers-color-scheme: dark) { 185 + .logo { 186 + filter: invert(); 187 + } 188 + }
+102
apps/web/app/page.tsx
··· 1 + import Image, { type ImageProps } from "next/image"; 2 + import { Button } from "@repo/ui/button"; 3 + import styles from "./page.module.css"; 4 + 5 + type Props = Omit<ImageProps, "src"> & { 6 + srcLight: string; 7 + srcDark: string; 8 + }; 9 + 10 + const ThemeImage = (props: Props) => { 11 + const { srcLight, srcDark, ...rest } = props; 12 + 13 + return ( 14 + <> 15 + <Image {...rest} src={srcLight} className="imgLight" /> 16 + <Image {...rest} src={srcDark} className="imgDark" /> 17 + </> 18 + ); 19 + }; 20 + 21 + export default function Home() { 22 + return ( 23 + <div className={styles.page}> 24 + <main className={styles.main}> 25 + <ThemeImage 26 + className={styles.logo} 27 + srcLight="turborepo-dark.svg" 28 + srcDark="turborepo-light.svg" 29 + alt="Turborepo logo" 30 + width={180} 31 + height={38} 32 + priority 33 + /> 34 + <ol> 35 + <li> 36 + Get started by editing <code>apps/web/app/page.tsx</code> 37 + </li> 38 + <li>Save and see your changes instantly.</li> 39 + </ol> 40 + 41 + <div className={styles.ctas}> 42 + <a 43 + className={styles.primary} 44 + href="https://vercel.com/new/clone?demo-description=Learn+to+implement+a+monorepo+with+a+two+Next.js+sites+that+has+installed+three+local+packages.&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F4K8ZISWAzJ8X1504ca0zmC%2F0b21a1c6246add355e55816278ef54bc%2FBasic.png&demo-title=Monorepo+with+Turborepo&demo-url=https%3A%2F%2Fexamples-basic-web.vercel.sh%2F&from=templates&project-name=Monorepo+with+Turborepo&repository-name=monorepo-turborepo&repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fturborepo%2Ftree%2Fmain%2Fexamples%2Fbasic&root-directory=apps%2Fdocs&skippable-integrations=1&teamSlug=vercel&utm_source=create-turbo" 45 + target="_blank" 46 + rel="noopener noreferrer" 47 + > 48 + <Image 49 + className={styles.logo} 50 + src="/vercel.svg" 51 + alt="Vercel logomark" 52 + width={20} 53 + height={20} 54 + /> 55 + Deploy now 56 + </a> 57 + <a 58 + href="https://turborepo.com/docs?utm_source" 59 + target="_blank" 60 + rel="noopener noreferrer" 61 + className={styles.secondary} 62 + > 63 + Read our docs 64 + </a> 65 + </div> 66 + <Button appName="web" className={styles.secondary}> 67 + Open alert 68 + </Button> 69 + </main> 70 + <footer className={styles.footer}> 71 + <a 72 + href="https://vercel.com/templates?search=turborepo&utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" 73 + target="_blank" 74 + rel="noopener noreferrer" 75 + > 76 + <Image 77 + aria-hidden 78 + src="/window.svg" 79 + alt="Window icon" 80 + width={16} 81 + height={16} 82 + /> 83 + Examples 84 + </a> 85 + <a 86 + href="https://turborepo.com?utm_source=create-turbo" 87 + target="_blank" 88 + rel="noopener noreferrer" 89 + > 90 + <Image 91 + aria-hidden 92 + src="/globe.svg" 93 + alt="Globe icon" 94 + width={16} 95 + height={16} 96 + /> 97 + Go to turborepo.com → 98 + </a> 99 + </footer> 100 + </div> 101 + ); 102 + }
+4
apps/web/eslint.config.js
··· 1 + import { nextJsConfig } from "@repo/eslint-config/next-js"; 2 + 3 + /** @type {import("eslint").Linter.Config[]} */ 4 + export default nextJsConfig;
+4
apps/web/next.config.js
··· 1 + /** @type {import('next').NextConfig} */ 2 + const nextConfig = {}; 3 + 4 + export default nextConfig;
+28
apps/web/package.json
··· 1 + { 2 + "name": "web", 3 + "version": "0.1.0", 4 + "type": "module", 5 + "private": true, 6 + "scripts": { 7 + "dev": "next dev --turbopack --port 3000", 8 + "build": "next build", 9 + "start": "next start", 10 + "lint": "next lint --max-warnings 0", 11 + "check-types": "tsc --noEmit" 12 + }, 13 + "dependencies": { 14 + "@repo/ui": "workspace:*", 15 + "next": "^15.5.0", 16 + "react": "^19.1.0", 17 + "react-dom": "^19.1.0" 18 + }, 19 + "devDependencies": { 20 + "@repo/eslint-config": "workspace:*", 21 + "@repo/typescript-config": "workspace:*", 22 + "@types/node": "^22.15.3", 23 + "@types/react": "19.1.0", 24 + "@types/react-dom": "19.1.1", 25 + "eslint": "^9.34.0", 26 + "typescript": "5.9.2" 27 + } 28 + }
+3
apps/web/public/file-text.svg
··· 1 + <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 13.5V6.5V5.41421C14.5 5.149 14.3946 4.89464 14.2071 4.70711L9.79289 0.292893C9.60536 0.105357 9.351 0 9.08579 0H8H3H1.5V1.5V13.5C1.5 14.8807 2.61929 16 4 16H12C13.3807 16 14.5 14.8807 14.5 13.5ZM13 13.5V6.5H9.5H8V5V1.5H3V13.5C3 14.0523 3.44772 14.5 4 14.5H12C12.5523 14.5 13 14.0523 13 13.5ZM9.5 5V2.12132L12.3787 5H9.5ZM5.13 5.00062H4.505V6.25062H5.13H6H6.625V5.00062H6H5.13ZM4.505 8H5.13H11H11.625V9.25H11H5.13H4.505V8ZM5.13 11H4.505V12.25H5.13H11H11.625V11H11H5.13Z" fill="#666666"/> 3 + </svg>
+10
apps/web/public/globe.svg
··· 1 + <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <g clip-path="url(#clip0_868_525)"> 3 + <path fill-rule="evenodd" clip-rule="evenodd" d="M10.268 14.0934C11.9051 13.4838 13.2303 12.2333 13.9384 10.6469C13.1192 10.7941 12.2138 10.9111 11.2469 10.9925C11.0336 12.2005 10.695 13.2621 10.268 14.0934ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM8.48347 14.4823C8.32384 14.494 8.16262 14.5 8 14.5C7.83738 14.5 7.67616 14.494 7.51654 14.4823C7.5132 14.4791 7.50984 14.4759 7.50647 14.4726C7.2415 14.2165 6.94578 13.7854 6.67032 13.1558C6.41594 12.5744 6.19979 11.8714 6.04101 11.0778C6.67605 11.1088 7.33104 11.125 8 11.125C8.66896 11.125 9.32395 11.1088 9.95899 11.0778C9.80021 11.8714 9.58406 12.5744 9.32968 13.1558C9.05422 13.7854 8.7585 14.2165 8.49353 14.4726C8.49016 14.4759 8.4868 14.4791 8.48347 14.4823ZM11.4187 9.72246C12.5137 9.62096 13.5116 9.47245 14.3724 9.28806C14.4561 8.87172 14.5 8.44099 14.5 8C14.5 7.55901 14.4561 7.12828 14.3724 6.71194C13.5116 6.52755 12.5137 6.37904 11.4187 6.27753C11.4719 6.83232 11.5 7.40867 11.5 8C11.5 8.59133 11.4719 9.16768 11.4187 9.72246ZM10.1525 6.18401C10.2157 6.75982 10.25 7.36805 10.25 8C10.25 8.63195 10.2157 9.24018 10.1525 9.81598C9.46123 9.85455 8.7409 9.875 8 9.875C7.25909 9.875 6.53877 9.85455 5.84749 9.81598C5.7843 9.24018 5.75 8.63195 5.75 8C5.75 7.36805 5.7843 6.75982 5.84749 6.18401C6.53877 6.14545 7.25909 6.125 8 6.125C8.74091 6.125 9.46123 6.14545 10.1525 6.18401ZM11.2469 5.00748C12.2138 5.08891 13.1191 5.20593 13.9384 5.35306C13.2303 3.7667 11.9051 2.51622 10.268 1.90662C10.695 2.73788 11.0336 3.79953 11.2469 5.00748ZM8.48347 1.51771C8.4868 1.52089 8.49016 1.52411 8.49353 1.52737C8.7585 1.78353 9.05422 2.21456 9.32968 2.84417C9.58406 3.42562 9.80021 4.12856 9.95899 4.92219C9.32395 4.89118 8.66896 4.875 8 4.875C7.33104 4.875 6.67605 4.89118 6.04101 4.92219C6.19978 4.12856 6.41594 3.42562 6.67032 2.84417C6.94578 2.21456 7.2415 1.78353 7.50647 1.52737C7.50984 1.52411 7.51319 1.52089 7.51653 1.51771C7.67615 1.50597 7.83738 1.5 8 1.5C8.16262 1.5 8.32384 1.50597 8.48347 1.51771ZM5.73202 1.90663C4.0949 2.51622 2.76975 3.7667 2.06159 5.35306C2.88085 5.20593 3.78617 5.08891 4.75309 5.00748C4.96639 3.79953 5.30497 2.73788 5.73202 1.90663ZM4.58133 6.27753C3.48633 6.37904 2.48837 6.52755 1.62761 6.71194C1.54392 7.12828 1.5 7.55901 1.5 8C1.5 8.44099 1.54392 8.87172 1.62761 9.28806C2.48837 9.47245 3.48633 9.62096 4.58133 9.72246C4.52807 9.16768 4.5 8.59133 4.5 8C4.5 7.40867 4.52807 6.83232 4.58133 6.27753ZM4.75309 10.9925C3.78617 10.9111 2.88085 10.7941 2.06159 10.6469C2.76975 12.2333 4.0949 13.4838 5.73202 14.0934C5.30497 13.2621 4.96639 12.2005 4.75309 10.9925Z" fill="#666666"/> 4 + </g> 5 + <defs> 6 + <clipPath id="clip0_868_525"> 7 + <rect width="16" height="16" fill="white"/> 8 + </clipPath> 9 + </defs> 10 + </svg>
+1
apps/web/public/next.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
+19
apps/web/public/turborepo-dark.svg
··· 1 + <svg width="473" height="76" viewBox="0 0 473 76" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <path d="M130.998 30.6565V22.3773H91.0977V30.6565H106.16V58.1875H115.935V30.6565H130.998Z" fill="black"/> 3 + <path d="M153.542 58.7362C165.811 58.7362 172.544 52.5018 172.544 42.2275V22.3773H162.768V41.2799C162.768 47.0155 159.776 50.2574 153.542 50.2574C147.307 50.2574 144.315 47.0155 144.315 41.2799V22.3773H134.539V42.2275C134.539 52.5018 141.272 58.7362 153.542 58.7362Z" fill="black"/> 4 + <path d="M187.508 46.3173H197.234L204.914 58.1875H216.136L207.458 45.2699C212.346 43.5243 215.338 39.634 215.338 34.3473C215.338 26.6665 209.603 22.3773 200.874 22.3773H177.732V58.1875H187.508V46.3173ZM187.508 38.5867V30.5568H200.376C203.817 30.5568 205.712 32.053 205.712 34.5967C205.712 36.9907 203.817 38.5867 200.376 38.5867H187.508Z" fill="black"/> 5 + <path d="M219.887 58.1875H245.472C253.452 58.1875 258.041 54.397 258.041 48.0629C258.041 43.8235 255.348 40.9308 252.156 39.634C254.35 38.5867 257.043 36.0929 257.043 32.1528C257.043 25.8187 252.555 22.3773 244.625 22.3773H219.887V58.1875ZM229.263 36.3922V30.3074H243.627C246.32 30.3074 247.817 31.3548 247.817 33.3498C247.817 35.3448 246.32 36.3922 243.627 36.3922H229.263ZM229.263 43.7238H244.525C247.168 43.7238 248.615 45.0205 248.615 46.9657C248.615 48.9108 247.168 50.2075 244.525 50.2075H229.263V43.7238Z" fill="black"/> 6 + <path d="M281.942 21.7788C269.423 21.7788 260.396 29.6092 260.396 40.2824C260.396 50.9557 269.423 58.786 281.942 58.786C294.461 58.786 303.438 50.9557 303.438 40.2824C303.438 29.6092 294.461 21.7788 281.942 21.7788ZM281.942 30.2575C288.525 30.2575 293.463 34.1478 293.463 40.2824C293.463 46.417 288.525 50.3073 281.942 50.3073C275.359 50.3073 270.421 46.417 270.421 40.2824C270.421 34.1478 275.359 30.2575 281.942 30.2575Z" fill="black"/> 7 + <path d="M317.526 46.3173H327.251L334.932 58.1875H346.154L337.476 45.2699C342.364 43.5243 345.356 39.634 345.356 34.3473C345.356 26.6665 339.62 22.3773 330.892 22.3773H307.75V58.1875H317.526V46.3173ZM317.526 38.5867V30.5568H330.394C333.835 30.5568 335.73 32.053 335.73 34.5967C335.73 36.9907 333.835 38.5867 330.394 38.5867H317.526Z" fill="black"/> 8 + <path d="M349.904 22.3773V58.1875H384.717V49.9083H359.48V44.0729H381.874V35.9932H359.48V30.6565H384.717V22.3773H349.904Z" fill="black"/> 9 + <path d="M399.204 46.7662H412.221C420.95 46.7662 426.685 42.5767 426.685 34.5967C426.685 26.5668 420.95 22.3773 412.221 22.3773H389.428V58.1875H399.204V46.7662ZM399.204 38.6365V30.5568H411.673C415.164 30.5568 417.059 32.053 417.059 34.5967C417.059 37.0904 415.164 38.6365 411.673 38.6365H399.204Z" fill="black"/> 10 + <path d="M450.948 21.7788C438.43 21.7788 429.402 29.6092 429.402 40.2824C429.402 50.9557 438.43 58.786 450.948 58.786C463.467 58.786 472.444 50.9557 472.444 40.2824C472.444 29.6092 463.467 21.7788 450.948 21.7788ZM450.948 30.2575C457.532 30.2575 462.469 34.1478 462.469 40.2824C462.469 46.417 457.532 50.3073 450.948 50.3073C444.365 50.3073 439.427 46.417 439.427 40.2824C439.427 34.1478 444.365 30.2575 450.948 30.2575Z" fill="black"/> 11 + <path d="M38.5017 18.0956C27.2499 18.0956 18.0957 27.2498 18.0957 38.5016C18.0957 49.7534 27.2499 58.9076 38.5017 58.9076C49.7535 58.9076 58.9077 49.7534 58.9077 38.5016C58.9077 27.2498 49.7535 18.0956 38.5017 18.0956ZM38.5017 49.0618C32.6687 49.0618 27.9415 44.3346 27.9415 38.5016C27.9415 32.6686 32.6687 27.9414 38.5017 27.9414C44.3347 27.9414 49.0619 32.6686 49.0619 38.5016C49.0619 44.3346 44.3347 49.0618 38.5017 49.0618Z" fill="black"/> 12 + <path fill-rule="evenodd" clip-rule="evenodd" d="M40.2115 14.744V7.125C56.7719 8.0104 69.9275 21.7208 69.9275 38.5016C69.9275 55.2824 56.7719 68.989 40.2115 69.8782V62.2592C52.5539 61.3776 62.3275 51.0644 62.3275 38.5016C62.3275 25.9388 52.5539 15.6256 40.2115 14.744ZM20.5048 54.0815C17.233 50.3043 15.124 45.4935 14.7478 40.2115H7.125C7.5202 47.6025 10.4766 54.3095 15.1088 59.4737L20.501 54.0815H20.5048ZM36.7916 69.8782V62.2592C31.5058 61.883 26.695 59.7778 22.9178 56.5022L17.5256 61.8944C22.6936 66.5304 29.4006 69.483 36.7878 69.8782H36.7916Z" fill="url(#paint0_linear_2028_278)"/> 13 + <defs> 14 + <linearGradient id="paint0_linear_2028_278" x1="41.443" y1="11.5372" x2="10.5567" y2="42.4236" gradientUnits="userSpaceOnUse"> 15 + <stop stop-color="#0096FF"/> 16 + <stop offset="1" stop-color="#FF1E56"/> 17 + </linearGradient> 18 + </defs> 19 + </svg>
+19
apps/web/public/turborepo-light.svg
··· 1 + <svg width="473" height="76" viewBox="0 0 473 76" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <path d="M130.998 30.6566V22.3773H91.0977V30.6566H106.16V58.1876H115.935V30.6566H130.998Z" fill="white"/> 3 + <path d="M153.542 58.7362C165.811 58.7362 172.544 52.5018 172.544 42.2276V22.3773H162.768V41.2799C162.768 47.0156 159.776 50.2574 153.542 50.2574C147.307 50.2574 144.315 47.0156 144.315 41.2799V22.3773H134.539V42.2276C134.539 52.5018 141.272 58.7362 153.542 58.7362Z" fill="white"/> 4 + <path d="M187.508 46.3173H197.234L204.914 58.1876H216.136L207.458 45.2699C212.346 43.5243 215.338 39.6341 215.338 34.3473C215.338 26.6666 209.603 22.3773 200.874 22.3773H177.732V58.1876H187.508V46.3173ZM187.508 38.5867V30.5568H200.376C203.817 30.5568 205.712 32.0531 205.712 34.5967C205.712 36.9907 203.817 38.5867 200.376 38.5867H187.508Z" fill="white"/> 5 + <path d="M219.887 58.1876H245.472C253.452 58.1876 258.041 54.3971 258.041 48.0629C258.041 43.8236 255.348 40.9308 252.156 39.6341C254.35 38.5867 257.043 36.0929 257.043 32.1528C257.043 25.8187 252.555 22.3773 244.625 22.3773H219.887V58.1876ZM229.263 36.3922V30.3074H243.627C246.32 30.3074 247.817 31.3548 247.817 33.3498C247.817 35.3448 246.32 36.3922 243.627 36.3922H229.263ZM229.263 43.7238H244.525C247.168 43.7238 248.615 45.0206 248.615 46.9657C248.615 48.9108 247.168 50.2076 244.525 50.2076H229.263V43.7238Z" fill="white"/> 6 + <path d="M281.942 21.7788C269.423 21.7788 260.396 29.6092 260.396 40.2824C260.396 50.9557 269.423 58.7861 281.942 58.7861C294.461 58.7861 303.438 50.9557 303.438 40.2824C303.438 29.6092 294.461 21.7788 281.942 21.7788ZM281.942 30.2576C288.525 30.2576 293.463 34.1478 293.463 40.2824C293.463 46.4171 288.525 50.3073 281.942 50.3073C275.359 50.3073 270.421 46.4171 270.421 40.2824C270.421 34.1478 275.359 30.2576 281.942 30.2576Z" fill="white"/> 7 + <path d="M317.526 46.3173H327.251L334.932 58.1876H346.154L337.476 45.2699C342.364 43.5243 345.356 39.6341 345.356 34.3473C345.356 26.6666 339.62 22.3773 330.892 22.3773H307.75V58.1876H317.526V46.3173ZM317.526 38.5867V30.5568H330.394C333.835 30.5568 335.73 32.0531 335.73 34.5967C335.73 36.9907 333.835 38.5867 330.394 38.5867H317.526Z" fill="white"/> 8 + <path d="M349.904 22.3773V58.1876H384.717V49.9083H359.48V44.0729H381.874V35.9932H359.48V30.6566H384.717V22.3773H349.904Z" fill="white"/> 9 + <path d="M399.204 46.7662H412.221C420.95 46.7662 426.685 42.5767 426.685 34.5967C426.685 26.5668 420.95 22.3773 412.221 22.3773H389.428V58.1876H399.204V46.7662ZM399.204 38.6366V30.5568H411.673C415.164 30.5568 417.059 32.0531 417.059 34.5967C417.059 37.0904 415.164 38.6366 411.673 38.6366H399.204Z" fill="white"/> 10 + <path d="M450.948 21.7788C438.43 21.7788 429.402 29.6092 429.402 40.2824C429.402 50.9557 438.43 58.7861 450.948 58.7861C463.467 58.7861 472.444 50.9557 472.444 40.2824C472.444 29.6092 463.467 21.7788 450.948 21.7788ZM450.948 30.2576C457.532 30.2576 462.469 34.1478 462.469 40.2824C462.469 46.4171 457.532 50.3073 450.948 50.3073C444.365 50.3073 439.427 46.4171 439.427 40.2824C439.427 34.1478 444.365 30.2576 450.948 30.2576Z" fill="white"/> 11 + <path d="M38.5017 18.0956C27.2499 18.0956 18.0957 27.2498 18.0957 38.5016C18.0957 49.7534 27.2499 58.9076 38.5017 58.9076C49.7535 58.9076 58.9077 49.7534 58.9077 38.5016C58.9077 27.2498 49.7535 18.0956 38.5017 18.0956ZM38.5017 49.0618C32.6687 49.0618 27.9415 44.3346 27.9415 38.5016C27.9415 32.6686 32.6687 27.9414 38.5017 27.9414C44.3347 27.9414 49.0619 32.6686 49.0619 38.5016C49.0619 44.3346 44.3347 49.0618 38.5017 49.0618Z" fill="white"/> 12 + <path fill-rule="evenodd" clip-rule="evenodd" d="M40.2115 14.744V7.125C56.7719 8.0104 69.9275 21.7208 69.9275 38.5016C69.9275 55.2824 56.7719 68.989 40.2115 69.8782V62.2592C52.5539 61.3776 62.3275 51.0644 62.3275 38.5016C62.3275 25.9388 52.5539 15.6256 40.2115 14.744ZM20.5048 54.0815C17.233 50.3043 15.124 45.4935 14.7478 40.2115H7.125C7.5202 47.6025 10.4766 54.3095 15.1088 59.4737L20.501 54.0815H20.5048ZM36.7916 69.8782V62.2592C31.5058 61.883 26.695 59.7778 22.9178 56.5022L17.5256 61.8944C22.6936 66.5304 29.4006 69.483 36.7878 69.8782H36.7916Z" fill="url(#paint0_linear_2028_477)"/> 13 + <defs> 14 + <linearGradient id="paint0_linear_2028_477" x1="41.443" y1="11.5372" x2="10.5567" y2="42.4236" gradientUnits="userSpaceOnUse"> 15 + <stop stop-color="#0096FF"/> 16 + <stop offset="1" stop-color="#FF1E56"/> 17 + </linearGradient> 18 + </defs> 19 + </svg>
+10
apps/web/public/vercel.svg
··· 1 + <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <g clip-path="url(#clip0_977_547)"> 3 + <path fill-rule="evenodd" clip-rule="evenodd" d="M10.5 3L18.5 17H2.5L10.5 3Z" fill="white"/> 4 + </g> 5 + <defs> 6 + <clipPath id="clip0_977_547"> 7 + <rect width="16" height="16" fill="white" transform="translate(2.5 2)"/> 8 + </clipPath> 9 + </defs> 10 + </svg>
+3
apps/web/public/window.svg
··· 1 + <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5H14.5V12.5C14.5 13.0523 14.0523 13.5 13.5 13.5H2.5C1.94772 13.5 1.5 13.0523 1.5 12.5V2.5ZM0 1H1.5H14.5H16V2.5V12.5C16 13.8807 14.8807 15 13.5 15H2.5C1.11929 15 0 13.8807 0 12.5V2.5V1ZM3.75 5.5C4.16421 5.5 4.5 5.16421 4.5 4.75C4.5 4.33579 4.16421 4 3.75 4C3.33579 4 3 4.33579 3 4.75C3 5.16421 3.33579 5.5 3.75 5.5ZM7 4.75C7 5.16421 6.66421 5.5 6.25 5.5C5.83579 5.5 5.5 5.16421 5.5 4.75C5.5 4.33579 5.83579 4 6.25 4C6.66421 4 7 4.33579 7 4.75ZM8.75 5.5C9.16421 5.5 9.5 5.16421 9.5 4.75C9.5 4.33579 9.16421 4 8.75 4C8.33579 4 8 4.33579 8 4.75C8 5.16421 8.33579 5.5 8.75 5.5Z" fill="#666666"/> 3 + </svg>
+20
apps/web/tsconfig.json
··· 1 + { 2 + "extends": "@repo/typescript-config/nextjs.json", 3 + "compilerOptions": { 4 + "plugins": [ 5 + { 6 + "name": "next" 7 + } 8 + ] 9 + }, 10 + "include": [ 11 + "**/*.ts", 12 + "**/*.tsx", 13 + "next-env.d.ts", 14 + "next.config.js", 15 + ".next/types/**/*.ts" 16 + ], 17 + "exclude": [ 18 + "node_modules" 19 + ] 20 + }
+5
meta.json
··· 1 + { 2 + "name": "Basic", 3 + "description": "Basic monorepo example with two Next.js applications", 4 + "maintainedByCoreTeam": true 5 + }
+20
package.json
··· 1 + { 2 + "name": "my-turborepo", 3 + "private": true, 4 + "scripts": { 5 + "build": "turbo run build", 6 + "dev": "turbo run dev", 7 + "lint": "turbo run lint", 8 + "format": "prettier --write \"**/*.{ts,tsx,md}\"", 9 + "check-types": "turbo run check-types" 10 + }, 11 + "devDependencies": { 12 + "prettier": "^3.6.2", 13 + "turbo": "^2.5.4", 14 + "typescript": "5.9.2" 15 + }, 16 + "packageManager": "pnpm@9.0.0", 17 + "engines": { 18 + "node": ">=18" 19 + } 20 + }
+3
packages/eslint-config/README.md
··· 1 + # `@turbo/eslint-config` 2 + 3 + Collection of internal eslint configurations.
+32
packages/eslint-config/base.js
··· 1 + import js from "@eslint/js"; 2 + import eslintConfigPrettier from "eslint-config-prettier"; 3 + import turboPlugin from "eslint-plugin-turbo"; 4 + import tseslint from "typescript-eslint"; 5 + import onlyWarn from "eslint-plugin-only-warn"; 6 + 7 + /** 8 + * A shared ESLint configuration for the repository. 9 + * 10 + * @type {import("eslint").Linter.Config[]} 11 + * */ 12 + export const config = [ 13 + js.configs.recommended, 14 + eslintConfigPrettier, 15 + ...tseslint.configs.recommended, 16 + { 17 + plugins: { 18 + turbo: turboPlugin, 19 + }, 20 + rules: { 21 + "turbo/no-undeclared-env-vars": "warn", 22 + }, 23 + }, 24 + { 25 + plugins: { 26 + onlyWarn, 27 + }, 28 + }, 29 + { 30 + ignores: ["dist/**"], 31 + }, 32 + ];
+49
packages/eslint-config/next.js
··· 1 + import js from "@eslint/js"; 2 + import eslintConfigPrettier from "eslint-config-prettier"; 3 + import tseslint from "typescript-eslint"; 4 + import pluginReactHooks from "eslint-plugin-react-hooks"; 5 + import pluginReact from "eslint-plugin-react"; 6 + import globals from "globals"; 7 + import pluginNext from "@next/eslint-plugin-next"; 8 + import { config as baseConfig } from "./base.js"; 9 + 10 + /** 11 + * A custom ESLint configuration for libraries that use Next.js. 12 + * 13 + * @type {import("eslint").Linter.Config[]} 14 + * */ 15 + export const nextJsConfig = [ 16 + ...baseConfig, 17 + js.configs.recommended, 18 + eslintConfigPrettier, 19 + ...tseslint.configs.recommended, 20 + { 21 + ...pluginReact.configs.flat.recommended, 22 + languageOptions: { 23 + ...pluginReact.configs.flat.recommended.languageOptions, 24 + globals: { 25 + ...globals.serviceworker, 26 + }, 27 + }, 28 + }, 29 + { 30 + plugins: { 31 + "@next/next": pluginNext, 32 + }, 33 + rules: { 34 + ...pluginNext.configs.recommended.rules, 35 + ...pluginNext.configs["core-web-vitals"].rules, 36 + }, 37 + }, 38 + { 39 + plugins: { 40 + "react-hooks": pluginReactHooks, 41 + }, 42 + settings: { react: { version: "detect" } }, 43 + rules: { 44 + ...pluginReactHooks.configs.recommended.rules, 45 + // React scope no longer necessary with new JSX transform. 46 + "react/react-in-jsx-scope": "off", 47 + }, 48 + }, 49 + ];
+24
packages/eslint-config/package.json
··· 1 + { 2 + "name": "@repo/eslint-config", 3 + "version": "0.0.0", 4 + "type": "module", 5 + "private": true, 6 + "exports": { 7 + "./base": "./base.js", 8 + "./next-js": "./next.js", 9 + "./react-internal": "./react-internal.js" 10 + }, 11 + "devDependencies": { 12 + "@eslint/js": "^9.34.0", 13 + "@next/eslint-plugin-next": "^15.5.0", 14 + "eslint": "^9.34.0", 15 + "eslint-config-prettier": "^10.1.1", 16 + "eslint-plugin-only-warn": "^1.1.0", 17 + "eslint-plugin-react": "^7.37.5", 18 + "eslint-plugin-react-hooks": "^5.2.0", 19 + "eslint-plugin-turbo": "^2.5.0", 20 + "globals": "^16.3.0", 21 + "typescript": "^5.9.2", 22 + "typescript-eslint": "^8.40.0" 23 + } 24 + }
+39
packages/eslint-config/react-internal.js
··· 1 + import js from "@eslint/js"; 2 + import eslintConfigPrettier from "eslint-config-prettier"; 3 + import tseslint from "typescript-eslint"; 4 + import pluginReactHooks from "eslint-plugin-react-hooks"; 5 + import pluginReact from "eslint-plugin-react"; 6 + import globals from "globals"; 7 + import { config as baseConfig } from "./base.js"; 8 + 9 + /** 10 + * A custom ESLint configuration for libraries that use React. 11 + * 12 + * @type {import("eslint").Linter.Config[]} */ 13 + export const config = [ 14 + ...baseConfig, 15 + js.configs.recommended, 16 + eslintConfigPrettier, 17 + ...tseslint.configs.recommended, 18 + pluginReact.configs.flat.recommended, 19 + { 20 + languageOptions: { 21 + ...pluginReact.configs.flat.recommended.languageOptions, 22 + globals: { 23 + ...globals.serviceworker, 24 + ...globals.browser, 25 + }, 26 + }, 27 + }, 28 + { 29 + plugins: { 30 + "react-hooks": pluginReactHooks, 31 + }, 32 + settings: { react: { version: "detect" } }, 33 + rules: { 34 + ...pluginReactHooks.configs.recommended.rules, 35 + // React scope no longer necessary with new JSX transform. 36 + "react/react-in-jsx-scope": "off", 37 + }, 38 + }, 39 + ];
+19
packages/typescript-config/base.json
··· 1 + { 2 + "$schema": "https://json.schemastore.org/tsconfig", 3 + "compilerOptions": { 4 + "declaration": true, 5 + "declarationMap": true, 6 + "esModuleInterop": true, 7 + "incremental": false, 8 + "isolatedModules": true, 9 + "lib": ["es2022", "DOM", "DOM.Iterable"], 10 + "module": "NodeNext", 11 + "moduleDetection": "force", 12 + "moduleResolution": "NodeNext", 13 + "noUncheckedIndexedAccess": true, 14 + "resolveJsonModule": true, 15 + "skipLibCheck": true, 16 + "strict": true, 17 + "target": "ES2022" 18 + } 19 + }
+12
packages/typescript-config/nextjs.json
··· 1 + { 2 + "$schema": "https://json.schemastore.org/tsconfig", 3 + "extends": "./base.json", 4 + "compilerOptions": { 5 + "plugins": [{ "name": "next" }], 6 + "module": "ESNext", 7 + "moduleResolution": "Bundler", 8 + "allowJs": true, 9 + "jsx": "preserve", 10 + "noEmit": true 11 + } 12 + }
+9
packages/typescript-config/package.json
··· 1 + { 2 + "name": "@repo/typescript-config", 3 + "version": "0.0.0", 4 + "private": true, 5 + "license": "MIT", 6 + "publishConfig": { 7 + "access": "public" 8 + } 9 + }
+7
packages/typescript-config/react-library.json
··· 1 + { 2 + "$schema": "https://json.schemastore.org/tsconfig", 3 + "extends": "./base.json", 4 + "compilerOptions": { 5 + "jsx": "react-jsx" 6 + } 7 + }
+4
packages/ui/eslint.config.mjs
··· 1 + import { config } from "@repo/eslint-config/react-internal"; 2 + 3 + /** @type {import("eslint").Linter.Config} */ 4 + export default config;
+26
packages/ui/package.json
··· 1 + { 2 + "name": "@repo/ui", 3 + "version": "0.0.0", 4 + "private": true, 5 + "exports": { 6 + "./*": "./src/*.tsx" 7 + }, 8 + "scripts": { 9 + "lint": "eslint . --max-warnings 0", 10 + "generate:component": "turbo gen react-component", 11 + "check-types": "tsc --noEmit" 12 + }, 13 + "devDependencies": { 14 + "@repo/eslint-config": "workspace:*", 15 + "@repo/typescript-config": "workspace:*", 16 + "@types/node": "^22.15.3", 17 + "@types/react": "19.1.0", 18 + "@types/react-dom": "19.1.1", 19 + "eslint": "^9.34.0", 20 + "typescript": "5.9.2" 21 + }, 22 + "dependencies": { 23 + "react": "^19.1.0", 24 + "react-dom": "^19.1.0" 25 + } 26 + }
+20
packages/ui/src/button.tsx
··· 1 + "use client"; 2 + 3 + import { ReactNode } from "react"; 4 + 5 + interface ButtonProps { 6 + children: ReactNode; 7 + className?: string; 8 + appName: string; 9 + } 10 + 11 + export const Button = ({ children, className, appName }: ButtonProps) => { 12 + return ( 13 + <button 14 + className={className} 15 + onClick={() => alert(`Hello from your ${appName} app!`)} 16 + > 17 + {children} 18 + </button> 19 + ); 20 + };
+27
packages/ui/src/card.tsx
··· 1 + import { type JSX } from "react"; 2 + 3 + export function Card({ 4 + className, 5 + title, 6 + children, 7 + href, 8 + }: { 9 + className?: string; 10 + title: string; 11 + children: React.ReactNode; 12 + href: string; 13 + }): JSX.Element { 14 + return ( 15 + <a 16 + className={className} 17 + href={`${href}?utm_source=create-turbo&utm_medium=basic&utm_campaign=create-turbo"`} 18 + rel="noopener noreferrer" 19 + target="_blank" 20 + > 21 + <h2> 22 + {title} <span>-&gt;</span> 23 + </h2> 24 + <p>{children}</p> 25 + </a> 26 + ); 27 + }
+11
packages/ui/src/code.tsx
··· 1 + import { type JSX } from "react"; 2 + 3 + export function Code({ 4 + children, 5 + className, 6 + }: { 7 + children: React.ReactNode; 8 + className?: string; 9 + }): JSX.Element { 10 + return <code className={className}>{children}</code>; 11 + }
+8
packages/ui/tsconfig.json
··· 1 + { 2 + "extends": "@repo/typescript-config/react-library.json", 3 + "compilerOptions": { 4 + "outDir": "dist" 5 + }, 6 + "include": ["src"], 7 + "exclude": ["node_modules", "dist"] 8 + }
+3009
pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + devDependencies: 11 + prettier: 12 + specifier: ^3.6.2 13 + version: 3.6.2 14 + turbo: 15 + specifier: ^2.5.4 16 + version: 2.5.4 17 + typescript: 18 + specifier: 5.9.2 19 + version: 5.9.2 20 + 21 + apps/docs: 22 + dependencies: 23 + '@repo/ui': 24 + specifier: workspace:* 25 + version: link:../../packages/ui 26 + next: 27 + specifier: ^15.5.0 28 + version: 15.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) 29 + react: 30 + specifier: ^19.1.0 31 + version: 19.1.0 32 + react-dom: 33 + specifier: ^19.1.0 34 + version: 19.1.0(react@19.1.0) 35 + devDependencies: 36 + '@repo/eslint-config': 37 + specifier: workspace:* 38 + version: link:../../packages/eslint-config 39 + '@repo/typescript-config': 40 + specifier: workspace:* 41 + version: link:../../packages/typescript-config 42 + '@types/node': 43 + specifier: ^22.15.3 44 + version: 22.15.3 45 + '@types/react': 46 + specifier: 19.1.0 47 + version: 19.1.0 48 + '@types/react-dom': 49 + specifier: 19.1.1 50 + version: 19.1.1(@types/react@19.1.0) 51 + eslint: 52 + specifier: ^9.34.0 53 + version: 9.34.0 54 + typescript: 55 + specifier: 5.9.2 56 + version: 5.9.2 57 + 58 + apps/web: 59 + dependencies: 60 + '@repo/ui': 61 + specifier: workspace:* 62 + version: link:../../packages/ui 63 + next: 64 + specifier: ^15.5.0 65 + version: 15.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) 66 + react: 67 + specifier: ^19.1.0 68 + version: 19.1.0 69 + react-dom: 70 + specifier: ^19.1.0 71 + version: 19.1.0(react@19.1.0) 72 + devDependencies: 73 + '@repo/eslint-config': 74 + specifier: workspace:* 75 + version: link:../../packages/eslint-config 76 + '@repo/typescript-config': 77 + specifier: workspace:* 78 + version: link:../../packages/typescript-config 79 + '@types/node': 80 + specifier: ^22.15.3 81 + version: 22.15.3 82 + '@types/react': 83 + specifier: 19.1.0 84 + version: 19.1.0 85 + '@types/react-dom': 86 + specifier: 19.1.1 87 + version: 19.1.1(@types/react@19.1.0) 88 + eslint: 89 + specifier: ^9.34.0 90 + version: 9.34.0 91 + typescript: 92 + specifier: 5.9.2 93 + version: 5.9.2 94 + 95 + packages/eslint-config: 96 + devDependencies: 97 + '@eslint/js': 98 + specifier: ^9.34.0 99 + version: 9.34.0 100 + '@next/eslint-plugin-next': 101 + specifier: ^15.5.0 102 + version: 15.5.0 103 + eslint: 104 + specifier: ^9.34.0 105 + version: 9.34.0 106 + eslint-config-prettier: 107 + specifier: ^10.1.1 108 + version: 10.1.1(eslint@9.34.0) 109 + eslint-plugin-only-warn: 110 + specifier: ^1.1.0 111 + version: 1.1.0 112 + eslint-plugin-react: 113 + specifier: ^7.37.5 114 + version: 7.37.5(eslint@9.34.0) 115 + eslint-plugin-react-hooks: 116 + specifier: ^5.2.0 117 + version: 5.2.0(eslint@9.34.0) 118 + eslint-plugin-turbo: 119 + specifier: ^2.5.0 120 + version: 2.5.0(eslint@9.34.0)(turbo@2.5.4) 121 + globals: 122 + specifier: ^16.3.0 123 + version: 16.3.0 124 + typescript: 125 + specifier: ^5.9.2 126 + version: 5.9.2 127 + typescript-eslint: 128 + specifier: ^8.40.0 129 + version: 8.40.0(eslint@9.34.0)(typescript@5.9.2) 130 + 131 + packages/typescript-config: {} 132 + 133 + packages/ui: 134 + dependencies: 135 + react: 136 + specifier: ^19.1.0 137 + version: 19.1.0 138 + react-dom: 139 + specifier: ^19.1.0 140 + version: 19.1.0(react@19.1.0) 141 + devDependencies: 142 + '@repo/eslint-config': 143 + specifier: workspace:* 144 + version: link:../eslint-config 145 + '@repo/typescript-config': 146 + specifier: workspace:* 147 + version: link:../typescript-config 148 + '@types/node': 149 + specifier: ^22.15.3 150 + version: 22.15.3 151 + '@types/react': 152 + specifier: 19.1.0 153 + version: 19.1.0 154 + '@types/react-dom': 155 + specifier: 19.1.1 156 + version: 19.1.1(@types/react@19.1.0) 157 + eslint: 158 + specifier: ^9.34.0 159 + version: 9.34.0 160 + typescript: 161 + specifier: 5.9.2 162 + version: 5.9.2 163 + 164 + packages: 165 + 166 + '@emnapi/runtime@1.4.5': 167 + resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} 168 + 169 + '@eslint-community/eslint-utils@4.7.0': 170 + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} 171 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 172 + peerDependencies: 173 + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 174 + 175 + '@eslint-community/regexpp@4.12.1': 176 + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 177 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 178 + 179 + '@eslint/config-array@0.21.0': 180 + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} 181 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 182 + 183 + '@eslint/config-helpers@0.3.1': 184 + resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==} 185 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 186 + 187 + '@eslint/core@0.15.2': 188 + resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} 189 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 190 + 191 + '@eslint/eslintrc@3.3.1': 192 + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} 193 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 194 + 195 + '@eslint/js@9.34.0': 196 + resolution: {integrity: sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==} 197 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 198 + 199 + '@eslint/object-schema@2.1.6': 200 + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} 201 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 202 + 203 + '@eslint/plugin-kit@0.3.5': 204 + resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} 205 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 206 + 207 + '@humanfs/core@0.19.1': 208 + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 209 + engines: {node: '>=18.18.0'} 210 + 211 + '@humanfs/node@0.16.6': 212 + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} 213 + engines: {node: '>=18.18.0'} 214 + 215 + '@humanwhocodes/module-importer@1.0.1': 216 + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 217 + engines: {node: '>=12.22'} 218 + 219 + '@humanwhocodes/retry@0.3.1': 220 + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} 221 + engines: {node: '>=18.18'} 222 + 223 + '@humanwhocodes/retry@0.4.3': 224 + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 225 + engines: {node: '>=18.18'} 226 + 227 + '@img/sharp-darwin-arm64@0.34.3': 228 + resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} 229 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 230 + cpu: [arm64] 231 + os: [darwin] 232 + 233 + '@img/sharp-darwin-x64@0.34.3': 234 + resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} 235 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 236 + cpu: [x64] 237 + os: [darwin] 238 + 239 + '@img/sharp-libvips-darwin-arm64@1.2.0': 240 + resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} 241 + cpu: [arm64] 242 + os: [darwin] 243 + 244 + '@img/sharp-libvips-darwin-x64@1.2.0': 245 + resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} 246 + cpu: [x64] 247 + os: [darwin] 248 + 249 + '@img/sharp-libvips-linux-arm64@1.2.0': 250 + resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} 251 + cpu: [arm64] 252 + os: [linux] 253 + 254 + '@img/sharp-libvips-linux-arm@1.2.0': 255 + resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} 256 + cpu: [arm] 257 + os: [linux] 258 + 259 + '@img/sharp-libvips-linux-ppc64@1.2.0': 260 + resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} 261 + cpu: [ppc64] 262 + os: [linux] 263 + 264 + '@img/sharp-libvips-linux-s390x@1.2.0': 265 + resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} 266 + cpu: [s390x] 267 + os: [linux] 268 + 269 + '@img/sharp-libvips-linux-x64@1.2.0': 270 + resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} 271 + cpu: [x64] 272 + os: [linux] 273 + 274 + '@img/sharp-libvips-linuxmusl-arm64@1.2.0': 275 + resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} 276 + cpu: [arm64] 277 + os: [linux] 278 + 279 + '@img/sharp-libvips-linuxmusl-x64@1.2.0': 280 + resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} 281 + cpu: [x64] 282 + os: [linux] 283 + 284 + '@img/sharp-linux-arm64@0.34.3': 285 + resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} 286 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 287 + cpu: [arm64] 288 + os: [linux] 289 + 290 + '@img/sharp-linux-arm@0.34.3': 291 + resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} 292 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 293 + cpu: [arm] 294 + os: [linux] 295 + 296 + '@img/sharp-linux-ppc64@0.34.3': 297 + resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} 298 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 299 + cpu: [ppc64] 300 + os: [linux] 301 + 302 + '@img/sharp-linux-s390x@0.34.3': 303 + resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} 304 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 305 + cpu: [s390x] 306 + os: [linux] 307 + 308 + '@img/sharp-linux-x64@0.34.3': 309 + resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} 310 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 311 + cpu: [x64] 312 + os: [linux] 313 + 314 + '@img/sharp-linuxmusl-arm64@0.34.3': 315 + resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} 316 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 317 + cpu: [arm64] 318 + os: [linux] 319 + 320 + '@img/sharp-linuxmusl-x64@0.34.3': 321 + resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} 322 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 323 + cpu: [x64] 324 + os: [linux] 325 + 326 + '@img/sharp-wasm32@0.34.3': 327 + resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} 328 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 329 + cpu: [wasm32] 330 + 331 + '@img/sharp-win32-arm64@0.34.3': 332 + resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} 333 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 334 + cpu: [arm64] 335 + os: [win32] 336 + 337 + '@img/sharp-win32-ia32@0.34.3': 338 + resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} 339 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 340 + cpu: [ia32] 341 + os: [win32] 342 + 343 + '@img/sharp-win32-x64@0.34.3': 344 + resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} 345 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 346 + cpu: [x64] 347 + os: [win32] 348 + 349 + '@next/env@15.5.0': 350 + resolution: {integrity: sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==} 351 + 352 + '@next/eslint-plugin-next@15.5.0': 353 + resolution: {integrity: sha512-+k83U/fST66eQBjTltX2T9qUYd43ntAe+NZ5qeZVTQyTiFiHvTLtkpLKug4AnZAtuI/lwz5tl/4QDJymjVkybg==} 354 + 355 + '@next/swc-darwin-arm64@15.5.0': 356 + resolution: {integrity: sha512-v7Jj9iqC6enxIRBIScD/o0lH7QKvSxq2LM8UTyqJi+S2w2QzhMYjven4vgu/RzgsdtdbpkyCxBTzHl/gN5rTRg==} 357 + engines: {node: '>= 10'} 358 + cpu: [arm64] 359 + os: [darwin] 360 + 361 + '@next/swc-darwin-x64@15.5.0': 362 + resolution: {integrity: sha512-s2Nk6ec+pmYmAb/utawuURy7uvyYKDk+TRE5aqLRsdnj3AhwC9IKUBmhfnLmY/+P+DnwqpeXEFIKe9tlG0p6CA==} 363 + engines: {node: '>= 10'} 364 + cpu: [x64] 365 + os: [darwin] 366 + 367 + '@next/swc-linux-arm64-gnu@15.5.0': 368 + resolution: {integrity: sha512-mGlPJMZReU4yP5fSHjOxiTYvZmwPSWn/eF/dcg21pwfmiUCKS1amFvf1F1RkLHPIMPfocxLViNWFvkvDB14Isg==} 369 + engines: {node: '>= 10'} 370 + cpu: [arm64] 371 + os: [linux] 372 + 373 + '@next/swc-linux-arm64-musl@15.5.0': 374 + resolution: {integrity: sha512-biWqIOE17OW/6S34t1X8K/3vb1+svp5ji5QQT/IKR+VfM3B7GvlCwmz5XtlEan2ukOUf9tj2vJJBffaGH4fGRw==} 375 + engines: {node: '>= 10'} 376 + cpu: [arm64] 377 + os: [linux] 378 + 379 + '@next/swc-linux-x64-gnu@15.5.0': 380 + resolution: {integrity: sha512-zPisT+obYypM/l6EZ0yRkK3LEuoZqHaSoYKj+5jiD9ESHwdr6QhnabnNxYkdy34uCigNlWIaCbjFmQ8FY5AlxA==} 381 + engines: {node: '>= 10'} 382 + cpu: [x64] 383 + os: [linux] 384 + 385 + '@next/swc-linux-x64-musl@15.5.0': 386 + resolution: {integrity: sha512-+t3+7GoU9IYmk+N+FHKBNFdahaReoAktdOpXHFIPOU1ixxtdge26NgQEEkJkCw2dHT9UwwK5zw4mAsURw4E8jA==} 387 + engines: {node: '>= 10'} 388 + cpu: [x64] 389 + os: [linux] 390 + 391 + '@next/swc-win32-arm64-msvc@15.5.0': 392 + resolution: {integrity: sha512-d8MrXKh0A+c9DLiy1BUFwtg3Hu90Lucj3k6iKTUdPOv42Ve2UiIG8HYi3UAb8kFVluXxEfdpCoPPCSODk5fDcw==} 393 + engines: {node: '>= 10'} 394 + cpu: [arm64] 395 + os: [win32] 396 + 397 + '@next/swc-win32-x64-msvc@15.5.0': 398 + resolution: {integrity: sha512-Fe1tGHxOWEyQjmygWkkXSwhFcTJuimrNu52JEuwItrKJVV4iRjbWp9I7zZjwqtiNnQmxoEvoisn8wueFLrNpvQ==} 399 + engines: {node: '>= 10'} 400 + cpu: [x64] 401 + os: [win32] 402 + 403 + '@nodelib/fs.scandir@2.1.5': 404 + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 405 + engines: {node: '>= 8'} 406 + 407 + '@nodelib/fs.stat@2.0.5': 408 + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 409 + engines: {node: '>= 8'} 410 + 411 + '@nodelib/fs.walk@1.2.8': 412 + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 413 + engines: {node: '>= 8'} 414 + 415 + '@swc/helpers@0.5.15': 416 + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 417 + 418 + '@types/estree@1.0.8': 419 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 420 + 421 + '@types/json-schema@7.0.15': 422 + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 423 + 424 + '@types/node@22.15.3': 425 + resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==} 426 + 427 + '@types/react-dom@19.1.1': 428 + resolution: {integrity: sha512-jFf/woGTVTjUJsl2O7hcopJ1r0upqoq/vIOoCj0yLh3RIXxWcljlpuZ+vEBRXsymD1jhfeJrlyTy/S1UW+4y1w==} 429 + peerDependencies: 430 + '@types/react': ^19.0.0 431 + 432 + '@types/react@19.1.0': 433 + resolution: {integrity: sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==} 434 + 435 + '@typescript-eslint/eslint-plugin@8.40.0': 436 + resolution: {integrity: sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==} 437 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 438 + peerDependencies: 439 + '@typescript-eslint/parser': ^8.40.0 440 + eslint: ^8.57.0 || ^9.0.0 441 + typescript: '>=4.8.4 <6.0.0' 442 + 443 + '@typescript-eslint/parser@8.40.0': 444 + resolution: {integrity: sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw==} 445 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 446 + peerDependencies: 447 + eslint: ^8.57.0 || ^9.0.0 448 + typescript: '>=4.8.4 <6.0.0' 449 + 450 + '@typescript-eslint/project-service@8.40.0': 451 + resolution: {integrity: sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==} 452 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 453 + peerDependencies: 454 + typescript: '>=4.8.4 <6.0.0' 455 + 456 + '@typescript-eslint/scope-manager@8.40.0': 457 + resolution: {integrity: sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==} 458 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 459 + 460 + '@typescript-eslint/tsconfig-utils@8.40.0': 461 + resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==} 462 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 463 + peerDependencies: 464 + typescript: '>=4.8.4 <6.0.0' 465 + 466 + '@typescript-eslint/type-utils@8.40.0': 467 + resolution: {integrity: sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==} 468 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 469 + peerDependencies: 470 + eslint: ^8.57.0 || ^9.0.0 471 + typescript: '>=4.8.4 <6.0.0' 472 + 473 + '@typescript-eslint/types@8.40.0': 474 + resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} 475 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 476 + 477 + '@typescript-eslint/typescript-estree@8.40.0': 478 + resolution: {integrity: sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==} 479 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 480 + peerDependencies: 481 + typescript: '>=4.8.4 <6.0.0' 482 + 483 + '@typescript-eslint/utils@8.40.0': 484 + resolution: {integrity: sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==} 485 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 486 + peerDependencies: 487 + eslint: ^8.57.0 || ^9.0.0 488 + typescript: '>=4.8.4 <6.0.0' 489 + 490 + '@typescript-eslint/visitor-keys@8.40.0': 491 + resolution: {integrity: sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==} 492 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 493 + 494 + acorn-jsx@5.3.2: 495 + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 496 + peerDependencies: 497 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 498 + 499 + acorn@8.15.0: 500 + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 501 + engines: {node: '>=0.4.0'} 502 + hasBin: true 503 + 504 + ajv@6.12.6: 505 + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 506 + 507 + ansi-styles@4.3.0: 508 + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 509 + engines: {node: '>=8'} 510 + 511 + argparse@2.0.1: 512 + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 513 + 514 + array-buffer-byte-length@1.0.2: 515 + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} 516 + engines: {node: '>= 0.4'} 517 + 518 + array-includes@3.1.9: 519 + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} 520 + engines: {node: '>= 0.4'} 521 + 522 + array.prototype.findlast@1.2.5: 523 + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} 524 + engines: {node: '>= 0.4'} 525 + 526 + array.prototype.flat@1.3.3: 527 + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} 528 + engines: {node: '>= 0.4'} 529 + 530 + array.prototype.flatmap@1.3.3: 531 + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} 532 + engines: {node: '>= 0.4'} 533 + 534 + array.prototype.tosorted@1.1.4: 535 + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} 536 + engines: {node: '>= 0.4'} 537 + 538 + arraybuffer.prototype.slice@1.0.4: 539 + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} 540 + engines: {node: '>= 0.4'} 541 + 542 + async-function@1.0.0: 543 + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} 544 + engines: {node: '>= 0.4'} 545 + 546 + available-typed-arrays@1.0.7: 547 + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 548 + engines: {node: '>= 0.4'} 549 + 550 + balanced-match@1.0.2: 551 + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 552 + 553 + brace-expansion@1.1.12: 554 + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} 555 + 556 + brace-expansion@2.0.2: 557 + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 558 + 559 + braces@3.0.3: 560 + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 561 + engines: {node: '>=8'} 562 + 563 + call-bind-apply-helpers@1.0.2: 564 + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 565 + engines: {node: '>= 0.4'} 566 + 567 + call-bind@1.0.8: 568 + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} 569 + engines: {node: '>= 0.4'} 570 + 571 + call-bound@1.0.4: 572 + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} 573 + engines: {node: '>= 0.4'} 574 + 575 + callsites@3.1.0: 576 + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 577 + engines: {node: '>=6'} 578 + 579 + caniuse-lite@1.0.30001736: 580 + resolution: {integrity: sha512-ImpN5gLEY8gWeqfLUyEF4b7mYWcYoR2Si1VhnrbM4JizRFmfGaAQ12PhNykq6nvI4XvKLrsp8Xde74D5phJOSw==} 581 + 582 + chalk@4.1.2: 583 + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 584 + engines: {node: '>=10'} 585 + 586 + client-only@0.0.1: 587 + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 588 + 589 + color-convert@2.0.1: 590 + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 591 + engines: {node: '>=7.0.0'} 592 + 593 + color-name@1.1.4: 594 + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 595 + 596 + color-string@1.9.1: 597 + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 598 + 599 + color@4.2.3: 600 + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 601 + engines: {node: '>=12.5.0'} 602 + 603 + concat-map@0.0.1: 604 + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 605 + 606 + cross-spawn@7.0.6: 607 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 608 + engines: {node: '>= 8'} 609 + 610 + csstype@3.1.3: 611 + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 612 + 613 + data-view-buffer@1.0.2: 614 + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 615 + engines: {node: '>= 0.4'} 616 + 617 + data-view-byte-length@1.0.2: 618 + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} 619 + engines: {node: '>= 0.4'} 620 + 621 + data-view-byte-offset@1.0.1: 622 + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} 623 + engines: {node: '>= 0.4'} 624 + 625 + debug@4.4.1: 626 + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} 627 + engines: {node: '>=6.0'} 628 + peerDependencies: 629 + supports-color: '*' 630 + peerDependenciesMeta: 631 + supports-color: 632 + optional: true 633 + 634 + deep-is@0.1.4: 635 + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 636 + 637 + define-data-property@1.1.4: 638 + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 639 + engines: {node: '>= 0.4'} 640 + 641 + define-properties@1.2.1: 642 + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 643 + engines: {node: '>= 0.4'} 644 + 645 + detect-libc@2.0.4: 646 + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} 647 + engines: {node: '>=8'} 648 + 649 + doctrine@2.1.0: 650 + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 651 + engines: {node: '>=0.10.0'} 652 + 653 + dotenv@16.0.3: 654 + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} 655 + engines: {node: '>=12'} 656 + 657 + dunder-proto@1.0.1: 658 + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 659 + engines: {node: '>= 0.4'} 660 + 661 + es-abstract@1.24.0: 662 + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} 663 + engines: {node: '>= 0.4'} 664 + 665 + es-define-property@1.0.1: 666 + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 667 + engines: {node: '>= 0.4'} 668 + 669 + es-errors@1.3.0: 670 + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 671 + engines: {node: '>= 0.4'} 672 + 673 + es-iterator-helpers@1.2.1: 674 + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} 675 + engines: {node: '>= 0.4'} 676 + 677 + es-object-atoms@1.1.1: 678 + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 679 + engines: {node: '>= 0.4'} 680 + 681 + es-set-tostringtag@2.1.0: 682 + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 683 + engines: {node: '>= 0.4'} 684 + 685 + es-shim-unscopables@1.1.0: 686 + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} 687 + engines: {node: '>= 0.4'} 688 + 689 + es-to-primitive@1.3.0: 690 + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} 691 + engines: {node: '>= 0.4'} 692 + 693 + escape-string-regexp@4.0.0: 694 + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 695 + engines: {node: '>=10'} 696 + 697 + eslint-config-prettier@10.1.1: 698 + resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==} 699 + hasBin: true 700 + peerDependencies: 701 + eslint: '>=7.0.0' 702 + 703 + eslint-plugin-only-warn@1.1.0: 704 + resolution: {integrity: sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA==} 705 + engines: {node: '>=6'} 706 + 707 + eslint-plugin-react-hooks@5.2.0: 708 + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} 709 + engines: {node: '>=10'} 710 + peerDependencies: 711 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 712 + 713 + eslint-plugin-react@7.37.5: 714 + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} 715 + engines: {node: '>=4'} 716 + peerDependencies: 717 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 718 + 719 + eslint-plugin-turbo@2.5.0: 720 + resolution: {integrity: sha512-qQk54MrUZv0gnpxV23sccTc+FL3UJ8q7vG7HmXuS2RP8gdjWDwI1CCJTJD8EdRIDjsMxF0xi0AKcMY0CwIlXVg==} 721 + peerDependencies: 722 + eslint: '>6.6.0' 723 + turbo: '>2.0.0' 724 + 725 + eslint-scope@8.4.0: 726 + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} 727 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 728 + 729 + eslint-visitor-keys@3.4.3: 730 + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 731 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 732 + 733 + eslint-visitor-keys@4.2.1: 734 + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} 735 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 736 + 737 + eslint@9.34.0: 738 + resolution: {integrity: sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==} 739 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 740 + hasBin: true 741 + peerDependencies: 742 + jiti: '*' 743 + peerDependenciesMeta: 744 + jiti: 745 + optional: true 746 + 747 + espree@10.4.0: 748 + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 749 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 750 + 751 + esquery@1.6.0: 752 + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 753 + engines: {node: '>=0.10'} 754 + 755 + esrecurse@4.3.0: 756 + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 757 + engines: {node: '>=4.0'} 758 + 759 + estraverse@5.3.0: 760 + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 761 + engines: {node: '>=4.0'} 762 + 763 + esutils@2.0.3: 764 + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 765 + engines: {node: '>=0.10.0'} 766 + 767 + fast-deep-equal@3.1.3: 768 + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 769 + 770 + fast-glob@3.3.1: 771 + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 772 + engines: {node: '>=8.6.0'} 773 + 774 + fast-glob@3.3.3: 775 + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 776 + engines: {node: '>=8.6.0'} 777 + 778 + fast-json-stable-stringify@2.1.0: 779 + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 780 + 781 + fast-levenshtein@2.0.6: 782 + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 783 + 784 + fastq@1.19.1: 785 + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 786 + 787 + file-entry-cache@8.0.0: 788 + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 789 + engines: {node: '>=16.0.0'} 790 + 791 + fill-range@7.1.1: 792 + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 793 + engines: {node: '>=8'} 794 + 795 + find-up@5.0.0: 796 + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 797 + engines: {node: '>=10'} 798 + 799 + flat-cache@4.0.1: 800 + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 801 + engines: {node: '>=16'} 802 + 803 + flatted@3.3.3: 804 + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 805 + 806 + for-each@0.3.5: 807 + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} 808 + engines: {node: '>= 0.4'} 809 + 810 + function-bind@1.1.2: 811 + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 812 + 813 + function.prototype.name@1.1.8: 814 + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} 815 + engines: {node: '>= 0.4'} 816 + 817 + functions-have-names@1.2.3: 818 + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 819 + 820 + get-intrinsic@1.3.0: 821 + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 822 + engines: {node: '>= 0.4'} 823 + 824 + get-proto@1.0.1: 825 + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 826 + engines: {node: '>= 0.4'} 827 + 828 + get-symbol-description@1.1.0: 829 + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 830 + engines: {node: '>= 0.4'} 831 + 832 + glob-parent@5.1.2: 833 + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 834 + engines: {node: '>= 6'} 835 + 836 + glob-parent@6.0.2: 837 + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 838 + engines: {node: '>=10.13.0'} 839 + 840 + globals@14.0.0: 841 + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 842 + engines: {node: '>=18'} 843 + 844 + globals@16.3.0: 845 + resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==} 846 + engines: {node: '>=18'} 847 + 848 + globalthis@1.0.4: 849 + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 850 + engines: {node: '>= 0.4'} 851 + 852 + gopd@1.2.0: 853 + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 854 + engines: {node: '>= 0.4'} 855 + 856 + graphemer@1.4.0: 857 + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 858 + 859 + has-bigints@1.1.0: 860 + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 861 + engines: {node: '>= 0.4'} 862 + 863 + has-flag@4.0.0: 864 + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 865 + engines: {node: '>=8'} 866 + 867 + has-property-descriptors@1.0.2: 868 + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 869 + 870 + has-proto@1.2.0: 871 + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} 872 + engines: {node: '>= 0.4'} 873 + 874 + has-symbols@1.1.0: 875 + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 876 + engines: {node: '>= 0.4'} 877 + 878 + has-tostringtag@1.0.2: 879 + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 880 + engines: {node: '>= 0.4'} 881 + 882 + hasown@2.0.2: 883 + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 884 + engines: {node: '>= 0.4'} 885 + 886 + ignore@5.3.2: 887 + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 888 + engines: {node: '>= 4'} 889 + 890 + ignore@7.0.5: 891 + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} 892 + engines: {node: '>= 4'} 893 + 894 + import-fresh@3.3.1: 895 + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 896 + engines: {node: '>=6'} 897 + 898 + imurmurhash@0.1.4: 899 + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 900 + engines: {node: '>=0.8.19'} 901 + 902 + internal-slot@1.1.0: 903 + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} 904 + engines: {node: '>= 0.4'} 905 + 906 + is-array-buffer@3.0.5: 907 + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} 908 + engines: {node: '>= 0.4'} 909 + 910 + is-arrayish@0.3.2: 911 + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 912 + 913 + is-async-function@2.1.1: 914 + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} 915 + engines: {node: '>= 0.4'} 916 + 917 + is-bigint@1.1.0: 918 + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} 919 + engines: {node: '>= 0.4'} 920 + 921 + is-boolean-object@1.2.2: 922 + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} 923 + engines: {node: '>= 0.4'} 924 + 925 + is-callable@1.2.7: 926 + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 927 + engines: {node: '>= 0.4'} 928 + 929 + is-core-module@2.16.1: 930 + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 931 + engines: {node: '>= 0.4'} 932 + 933 + is-data-view@1.0.2: 934 + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} 935 + engines: {node: '>= 0.4'} 936 + 937 + is-date-object@1.1.0: 938 + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} 939 + engines: {node: '>= 0.4'} 940 + 941 + is-extglob@2.1.1: 942 + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 943 + engines: {node: '>=0.10.0'} 944 + 945 + is-finalizationregistry@1.1.1: 946 + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 947 + engines: {node: '>= 0.4'} 948 + 949 + is-generator-function@1.1.0: 950 + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} 951 + engines: {node: '>= 0.4'} 952 + 953 + is-glob@4.0.3: 954 + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 955 + engines: {node: '>=0.10.0'} 956 + 957 + is-map@2.0.3: 958 + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 959 + engines: {node: '>= 0.4'} 960 + 961 + is-negative-zero@2.0.3: 962 + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 963 + engines: {node: '>= 0.4'} 964 + 965 + is-number-object@1.1.1: 966 + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} 967 + engines: {node: '>= 0.4'} 968 + 969 + is-number@7.0.0: 970 + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 971 + engines: {node: '>=0.12.0'} 972 + 973 + is-regex@1.2.1: 974 + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} 975 + engines: {node: '>= 0.4'} 976 + 977 + is-set@2.0.3: 978 + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 979 + engines: {node: '>= 0.4'} 980 + 981 + is-shared-array-buffer@1.0.4: 982 + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 983 + engines: {node: '>= 0.4'} 984 + 985 + is-string@1.1.1: 986 + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} 987 + engines: {node: '>= 0.4'} 988 + 989 + is-symbol@1.1.1: 990 + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} 991 + engines: {node: '>= 0.4'} 992 + 993 + is-typed-array@1.1.15: 994 + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} 995 + engines: {node: '>= 0.4'} 996 + 997 + is-weakmap@2.0.2: 998 + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 999 + engines: {node: '>= 0.4'} 1000 + 1001 + is-weakref@1.1.1: 1002 + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} 1003 + engines: {node: '>= 0.4'} 1004 + 1005 + is-weakset@2.0.4: 1006 + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 1007 + engines: {node: '>= 0.4'} 1008 + 1009 + isarray@2.0.5: 1010 + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1011 + 1012 + isexe@2.0.0: 1013 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1014 + 1015 + iterator.prototype@1.1.5: 1016 + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} 1017 + engines: {node: '>= 0.4'} 1018 + 1019 + js-tokens@4.0.0: 1020 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1021 + 1022 + js-yaml@4.1.0: 1023 + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1024 + hasBin: true 1025 + 1026 + json-buffer@3.0.1: 1027 + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1028 + 1029 + json-schema-traverse@0.4.1: 1030 + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1031 + 1032 + json-stable-stringify-without-jsonify@1.0.1: 1033 + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1034 + 1035 + jsx-ast-utils@3.3.5: 1036 + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1037 + engines: {node: '>=4.0'} 1038 + 1039 + keyv@4.5.4: 1040 + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1041 + 1042 + levn@0.4.1: 1043 + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1044 + engines: {node: '>= 0.8.0'} 1045 + 1046 + locate-path@6.0.0: 1047 + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1048 + engines: {node: '>=10'} 1049 + 1050 + lodash.merge@4.6.2: 1051 + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1052 + 1053 + loose-envify@1.4.0: 1054 + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1055 + hasBin: true 1056 + 1057 + math-intrinsics@1.1.0: 1058 + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1059 + engines: {node: '>= 0.4'} 1060 + 1061 + merge2@1.4.1: 1062 + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1063 + engines: {node: '>= 8'} 1064 + 1065 + micromatch@4.0.8: 1066 + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1067 + engines: {node: '>=8.6'} 1068 + 1069 + minimatch@3.1.2: 1070 + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1071 + 1072 + minimatch@9.0.5: 1073 + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1074 + engines: {node: '>=16 || 14 >=14.17'} 1075 + 1076 + ms@2.1.3: 1077 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1078 + 1079 + nanoid@3.3.11: 1080 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1081 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1082 + hasBin: true 1083 + 1084 + natural-compare@1.4.0: 1085 + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1086 + 1087 + next@15.5.0: 1088 + resolution: {integrity: sha512-N1lp9Hatw3a9XLt0307lGB4uTKsXDhyOKQo7uYMzX4i0nF/c27grcGXkLdb7VcT8QPYLBa8ouIyEoUQJ2OyeNQ==} 1089 + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} 1090 + hasBin: true 1091 + peerDependencies: 1092 + '@opentelemetry/api': ^1.1.0 1093 + '@playwright/test': ^1.51.1 1094 + babel-plugin-react-compiler: '*' 1095 + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1096 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1097 + sass: ^1.3.0 1098 + peerDependenciesMeta: 1099 + '@opentelemetry/api': 1100 + optional: true 1101 + '@playwright/test': 1102 + optional: true 1103 + babel-plugin-react-compiler: 1104 + optional: true 1105 + sass: 1106 + optional: true 1107 + 1108 + object-assign@4.1.1: 1109 + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1110 + engines: {node: '>=0.10.0'} 1111 + 1112 + object-inspect@1.13.4: 1113 + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} 1114 + engines: {node: '>= 0.4'} 1115 + 1116 + object-keys@1.1.1: 1117 + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1118 + engines: {node: '>= 0.4'} 1119 + 1120 + object.assign@4.1.7: 1121 + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} 1122 + engines: {node: '>= 0.4'} 1123 + 1124 + object.entries@1.1.9: 1125 + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} 1126 + engines: {node: '>= 0.4'} 1127 + 1128 + object.fromentries@2.0.8: 1129 + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1130 + engines: {node: '>= 0.4'} 1131 + 1132 + object.values@1.2.1: 1133 + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} 1134 + engines: {node: '>= 0.4'} 1135 + 1136 + optionator@0.9.4: 1137 + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1138 + engines: {node: '>= 0.8.0'} 1139 + 1140 + own-keys@1.0.1: 1141 + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} 1142 + engines: {node: '>= 0.4'} 1143 + 1144 + p-limit@3.1.0: 1145 + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1146 + engines: {node: '>=10'} 1147 + 1148 + p-locate@5.0.0: 1149 + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1150 + engines: {node: '>=10'} 1151 + 1152 + parent-module@1.0.1: 1153 + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1154 + engines: {node: '>=6'} 1155 + 1156 + path-exists@4.0.0: 1157 + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1158 + engines: {node: '>=8'} 1159 + 1160 + path-key@3.1.1: 1161 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1162 + engines: {node: '>=8'} 1163 + 1164 + path-parse@1.0.7: 1165 + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1166 + 1167 + picocolors@1.1.1: 1168 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1169 + 1170 + picomatch@2.3.1: 1171 + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1172 + engines: {node: '>=8.6'} 1173 + 1174 + possible-typed-array-names@1.1.0: 1175 + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} 1176 + engines: {node: '>= 0.4'} 1177 + 1178 + postcss@8.4.31: 1179 + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 1180 + engines: {node: ^10 || ^12 || >=14} 1181 + 1182 + prelude-ls@1.2.1: 1183 + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1184 + engines: {node: '>= 0.8.0'} 1185 + 1186 + prettier@3.6.2: 1187 + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} 1188 + engines: {node: '>=14'} 1189 + hasBin: true 1190 + 1191 + prop-types@15.8.1: 1192 + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 1193 + 1194 + punycode@2.3.1: 1195 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1196 + engines: {node: '>=6'} 1197 + 1198 + queue-microtask@1.2.3: 1199 + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1200 + 1201 + react-dom@19.1.0: 1202 + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} 1203 + peerDependencies: 1204 + react: ^19.1.0 1205 + 1206 + react-is@16.13.1: 1207 + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1208 + 1209 + react@19.1.0: 1210 + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} 1211 + engines: {node: '>=0.10.0'} 1212 + 1213 + reflect.getprototypeof@1.0.10: 1214 + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 1215 + engines: {node: '>= 0.4'} 1216 + 1217 + regexp.prototype.flags@1.5.4: 1218 + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} 1219 + engines: {node: '>= 0.4'} 1220 + 1221 + resolve-from@4.0.0: 1222 + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1223 + engines: {node: '>=4'} 1224 + 1225 + resolve@2.0.0-next.5: 1226 + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 1227 + hasBin: true 1228 + 1229 + reusify@1.1.0: 1230 + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 1231 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1232 + 1233 + run-parallel@1.2.0: 1234 + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1235 + 1236 + safe-array-concat@1.1.3: 1237 + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} 1238 + engines: {node: '>=0.4'} 1239 + 1240 + safe-push-apply@1.0.0: 1241 + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} 1242 + engines: {node: '>= 0.4'} 1243 + 1244 + safe-regex-test@1.1.0: 1245 + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 1246 + engines: {node: '>= 0.4'} 1247 + 1248 + scheduler@0.26.0: 1249 + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} 1250 + 1251 + semver@6.3.1: 1252 + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1253 + hasBin: true 1254 + 1255 + semver@7.7.2: 1256 + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} 1257 + engines: {node: '>=10'} 1258 + hasBin: true 1259 + 1260 + set-function-length@1.2.2: 1261 + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1262 + engines: {node: '>= 0.4'} 1263 + 1264 + set-function-name@2.0.2: 1265 + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1266 + engines: {node: '>= 0.4'} 1267 + 1268 + set-proto@1.0.0: 1269 + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} 1270 + engines: {node: '>= 0.4'} 1271 + 1272 + sharp@0.34.3: 1273 + resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} 1274 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1275 + 1276 + shebang-command@2.0.0: 1277 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1278 + engines: {node: '>=8'} 1279 + 1280 + shebang-regex@3.0.0: 1281 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1282 + engines: {node: '>=8'} 1283 + 1284 + side-channel-list@1.0.0: 1285 + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1286 + engines: {node: '>= 0.4'} 1287 + 1288 + side-channel-map@1.0.1: 1289 + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1290 + engines: {node: '>= 0.4'} 1291 + 1292 + side-channel-weakmap@1.0.2: 1293 + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1294 + engines: {node: '>= 0.4'} 1295 + 1296 + side-channel@1.1.0: 1297 + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1298 + engines: {node: '>= 0.4'} 1299 + 1300 + simple-swizzle@0.2.2: 1301 + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 1302 + 1303 + source-map-js@1.2.1: 1304 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1305 + engines: {node: '>=0.10.0'} 1306 + 1307 + stop-iteration-iterator@1.1.0: 1308 + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} 1309 + engines: {node: '>= 0.4'} 1310 + 1311 + string.prototype.matchall@4.0.12: 1312 + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} 1313 + engines: {node: '>= 0.4'} 1314 + 1315 + string.prototype.repeat@1.0.0: 1316 + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} 1317 + 1318 + string.prototype.trim@1.2.10: 1319 + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} 1320 + engines: {node: '>= 0.4'} 1321 + 1322 + string.prototype.trimend@1.0.9: 1323 + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} 1324 + engines: {node: '>= 0.4'} 1325 + 1326 + string.prototype.trimstart@1.0.8: 1327 + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1328 + engines: {node: '>= 0.4'} 1329 + 1330 + strip-json-comments@3.1.1: 1331 + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1332 + engines: {node: '>=8'} 1333 + 1334 + styled-jsx@5.1.6: 1335 + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} 1336 + engines: {node: '>= 12.0.0'} 1337 + peerDependencies: 1338 + '@babel/core': '*' 1339 + babel-plugin-macros: '*' 1340 + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 1341 + peerDependenciesMeta: 1342 + '@babel/core': 1343 + optional: true 1344 + babel-plugin-macros: 1345 + optional: true 1346 + 1347 + supports-color@7.2.0: 1348 + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1349 + engines: {node: '>=8'} 1350 + 1351 + supports-preserve-symlinks-flag@1.0.0: 1352 + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1353 + engines: {node: '>= 0.4'} 1354 + 1355 + to-regex-range@5.0.1: 1356 + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1357 + engines: {node: '>=8.0'} 1358 + 1359 + ts-api-utils@2.1.0: 1360 + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} 1361 + engines: {node: '>=18.12'} 1362 + peerDependencies: 1363 + typescript: '>=4.8.4' 1364 + 1365 + tslib@2.8.1: 1366 + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1367 + 1368 + turbo-darwin-64@2.5.4: 1369 + resolution: {integrity: sha512-ah6YnH2dErojhFooxEzmvsoZQTMImaruZhFPfMKPBq8sb+hALRdvBNLqfc8NWlZq576FkfRZ/MSi4SHvVFT9PQ==} 1370 + cpu: [x64] 1371 + os: [darwin] 1372 + 1373 + turbo-darwin-arm64@2.5.4: 1374 + resolution: {integrity: sha512-2+Nx6LAyuXw2MdXb7pxqle3MYignLvS7OwtsP9SgtSBaMlnNlxl9BovzqdYAgkUW3AsYiQMJ/wBRb7d+xemM5A==} 1375 + cpu: [arm64] 1376 + os: [darwin] 1377 + 1378 + turbo-linux-64@2.5.4: 1379 + resolution: {integrity: sha512-5May2kjWbc8w4XxswGAl74GZ5eM4Gr6IiroqdLhXeXyfvWEdm2mFYCSWOzz0/z5cAgqyGidF1jt1qzUR8hTmOA==} 1380 + cpu: [x64] 1381 + os: [linux] 1382 + 1383 + turbo-linux-arm64@2.5.4: 1384 + resolution: {integrity: sha512-/2yqFaS3TbfxV3P5yG2JUI79P7OUQKOUvAnx4MV9Bdz6jqHsHwc9WZPpO4QseQm+NvmgY6ICORnoVPODxGUiJg==} 1385 + cpu: [arm64] 1386 + os: [linux] 1387 + 1388 + turbo-windows-64@2.5.4: 1389 + resolution: {integrity: sha512-EQUO4SmaCDhO6zYohxIjJpOKRN3wlfU7jMAj3CgcyTPvQR/UFLEKAYHqJOnJtymbQmiiM/ihX6c6W6Uq0yC7mA==} 1390 + cpu: [x64] 1391 + os: [win32] 1392 + 1393 + turbo-windows-arm64@2.5.4: 1394 + resolution: {integrity: sha512-oQ8RrK1VS8lrxkLriotFq+PiF7iiGgkZtfLKF4DDKsmdbPo0O9R2mQxm7jHLuXraRCuIQDWMIw6dpcr7Iykf4A==} 1395 + cpu: [arm64] 1396 + os: [win32] 1397 + 1398 + turbo@2.5.4: 1399 + resolution: {integrity: sha512-kc8ZibdRcuWUG1pbYSBFWqmIjynlD8Lp7IB6U3vIzvOv9VG+6Sp8bzyeBWE3Oi8XV5KsQrznyRTBPvrf99E4mA==} 1400 + hasBin: true 1401 + 1402 + type-check@0.4.0: 1403 + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1404 + engines: {node: '>= 0.8.0'} 1405 + 1406 + typed-array-buffer@1.0.3: 1407 + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 1408 + engines: {node: '>= 0.4'} 1409 + 1410 + typed-array-byte-length@1.0.3: 1411 + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} 1412 + engines: {node: '>= 0.4'} 1413 + 1414 + typed-array-byte-offset@1.0.4: 1415 + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} 1416 + engines: {node: '>= 0.4'} 1417 + 1418 + typed-array-length@1.0.7: 1419 + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 1420 + engines: {node: '>= 0.4'} 1421 + 1422 + typescript-eslint@8.40.0: 1423 + resolution: {integrity: sha512-Xvd2l+ZmFDPEt4oj1QEXzA4A2uUK6opvKu3eGN9aGjB8au02lIVcLyi375w94hHyejTOmzIU77L8ol2sRg9n7Q==} 1424 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1425 + peerDependencies: 1426 + eslint: ^8.57.0 || ^9.0.0 1427 + typescript: '>=4.8.4 <6.0.0' 1428 + 1429 + typescript@5.9.2: 1430 + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} 1431 + engines: {node: '>=14.17'} 1432 + hasBin: true 1433 + 1434 + unbox-primitive@1.1.0: 1435 + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} 1436 + engines: {node: '>= 0.4'} 1437 + 1438 + undici-types@6.21.0: 1439 + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} 1440 + 1441 + uri-js@4.4.1: 1442 + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1443 + 1444 + which-boxed-primitive@1.1.1: 1445 + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 1446 + engines: {node: '>= 0.4'} 1447 + 1448 + which-builtin-type@1.2.1: 1449 + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} 1450 + engines: {node: '>= 0.4'} 1451 + 1452 + which-collection@1.0.2: 1453 + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 1454 + engines: {node: '>= 0.4'} 1455 + 1456 + which-typed-array@1.1.19: 1457 + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} 1458 + engines: {node: '>= 0.4'} 1459 + 1460 + which@2.0.2: 1461 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1462 + engines: {node: '>= 8'} 1463 + hasBin: true 1464 + 1465 + word-wrap@1.2.5: 1466 + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1467 + engines: {node: '>=0.10.0'} 1468 + 1469 + yocto-queue@0.1.0: 1470 + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1471 + engines: {node: '>=10'} 1472 + 1473 + snapshots: 1474 + 1475 + '@emnapi/runtime@1.4.5': 1476 + dependencies: 1477 + tslib: 2.8.1 1478 + optional: true 1479 + 1480 + '@eslint-community/eslint-utils@4.7.0(eslint@9.34.0)': 1481 + dependencies: 1482 + eslint: 9.34.0 1483 + eslint-visitor-keys: 3.4.3 1484 + 1485 + '@eslint-community/regexpp@4.12.1': {} 1486 + 1487 + '@eslint/config-array@0.21.0': 1488 + dependencies: 1489 + '@eslint/object-schema': 2.1.6 1490 + debug: 4.4.1 1491 + minimatch: 3.1.2 1492 + transitivePeerDependencies: 1493 + - supports-color 1494 + 1495 + '@eslint/config-helpers@0.3.1': {} 1496 + 1497 + '@eslint/core@0.15.2': 1498 + dependencies: 1499 + '@types/json-schema': 7.0.15 1500 + 1501 + '@eslint/eslintrc@3.3.1': 1502 + dependencies: 1503 + ajv: 6.12.6 1504 + debug: 4.4.1 1505 + espree: 10.4.0 1506 + globals: 14.0.0 1507 + ignore: 5.3.2 1508 + import-fresh: 3.3.1 1509 + js-yaml: 4.1.0 1510 + minimatch: 3.1.2 1511 + strip-json-comments: 3.1.1 1512 + transitivePeerDependencies: 1513 + - supports-color 1514 + 1515 + '@eslint/js@9.34.0': {} 1516 + 1517 + '@eslint/object-schema@2.1.6': {} 1518 + 1519 + '@eslint/plugin-kit@0.3.5': 1520 + dependencies: 1521 + '@eslint/core': 0.15.2 1522 + levn: 0.4.1 1523 + 1524 + '@humanfs/core@0.19.1': {} 1525 + 1526 + '@humanfs/node@0.16.6': 1527 + dependencies: 1528 + '@humanfs/core': 0.19.1 1529 + '@humanwhocodes/retry': 0.3.1 1530 + 1531 + '@humanwhocodes/module-importer@1.0.1': {} 1532 + 1533 + '@humanwhocodes/retry@0.3.1': {} 1534 + 1535 + '@humanwhocodes/retry@0.4.3': {} 1536 + 1537 + '@img/sharp-darwin-arm64@0.34.3': 1538 + optionalDependencies: 1539 + '@img/sharp-libvips-darwin-arm64': 1.2.0 1540 + optional: true 1541 + 1542 + '@img/sharp-darwin-x64@0.34.3': 1543 + optionalDependencies: 1544 + '@img/sharp-libvips-darwin-x64': 1.2.0 1545 + optional: true 1546 + 1547 + '@img/sharp-libvips-darwin-arm64@1.2.0': 1548 + optional: true 1549 + 1550 + '@img/sharp-libvips-darwin-x64@1.2.0': 1551 + optional: true 1552 + 1553 + '@img/sharp-libvips-linux-arm64@1.2.0': 1554 + optional: true 1555 + 1556 + '@img/sharp-libvips-linux-arm@1.2.0': 1557 + optional: true 1558 + 1559 + '@img/sharp-libvips-linux-ppc64@1.2.0': 1560 + optional: true 1561 + 1562 + '@img/sharp-libvips-linux-s390x@1.2.0': 1563 + optional: true 1564 + 1565 + '@img/sharp-libvips-linux-x64@1.2.0': 1566 + optional: true 1567 + 1568 + '@img/sharp-libvips-linuxmusl-arm64@1.2.0': 1569 + optional: true 1570 + 1571 + '@img/sharp-libvips-linuxmusl-x64@1.2.0': 1572 + optional: true 1573 + 1574 + '@img/sharp-linux-arm64@0.34.3': 1575 + optionalDependencies: 1576 + '@img/sharp-libvips-linux-arm64': 1.2.0 1577 + optional: true 1578 + 1579 + '@img/sharp-linux-arm@0.34.3': 1580 + optionalDependencies: 1581 + '@img/sharp-libvips-linux-arm': 1.2.0 1582 + optional: true 1583 + 1584 + '@img/sharp-linux-ppc64@0.34.3': 1585 + optionalDependencies: 1586 + '@img/sharp-libvips-linux-ppc64': 1.2.0 1587 + optional: true 1588 + 1589 + '@img/sharp-linux-s390x@0.34.3': 1590 + optionalDependencies: 1591 + '@img/sharp-libvips-linux-s390x': 1.2.0 1592 + optional: true 1593 + 1594 + '@img/sharp-linux-x64@0.34.3': 1595 + optionalDependencies: 1596 + '@img/sharp-libvips-linux-x64': 1.2.0 1597 + optional: true 1598 + 1599 + '@img/sharp-linuxmusl-arm64@0.34.3': 1600 + optionalDependencies: 1601 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 1602 + optional: true 1603 + 1604 + '@img/sharp-linuxmusl-x64@0.34.3': 1605 + optionalDependencies: 1606 + '@img/sharp-libvips-linuxmusl-x64': 1.2.0 1607 + optional: true 1608 + 1609 + '@img/sharp-wasm32@0.34.3': 1610 + dependencies: 1611 + '@emnapi/runtime': 1.4.5 1612 + optional: true 1613 + 1614 + '@img/sharp-win32-arm64@0.34.3': 1615 + optional: true 1616 + 1617 + '@img/sharp-win32-ia32@0.34.3': 1618 + optional: true 1619 + 1620 + '@img/sharp-win32-x64@0.34.3': 1621 + optional: true 1622 + 1623 + '@next/env@15.5.0': {} 1624 + 1625 + '@next/eslint-plugin-next@15.5.0': 1626 + dependencies: 1627 + fast-glob: 3.3.1 1628 + 1629 + '@next/swc-darwin-arm64@15.5.0': 1630 + optional: true 1631 + 1632 + '@next/swc-darwin-x64@15.5.0': 1633 + optional: true 1634 + 1635 + '@next/swc-linux-arm64-gnu@15.5.0': 1636 + optional: true 1637 + 1638 + '@next/swc-linux-arm64-musl@15.5.0': 1639 + optional: true 1640 + 1641 + '@next/swc-linux-x64-gnu@15.5.0': 1642 + optional: true 1643 + 1644 + '@next/swc-linux-x64-musl@15.5.0': 1645 + optional: true 1646 + 1647 + '@next/swc-win32-arm64-msvc@15.5.0': 1648 + optional: true 1649 + 1650 + '@next/swc-win32-x64-msvc@15.5.0': 1651 + optional: true 1652 + 1653 + '@nodelib/fs.scandir@2.1.5': 1654 + dependencies: 1655 + '@nodelib/fs.stat': 2.0.5 1656 + run-parallel: 1.2.0 1657 + 1658 + '@nodelib/fs.stat@2.0.5': {} 1659 + 1660 + '@nodelib/fs.walk@1.2.8': 1661 + dependencies: 1662 + '@nodelib/fs.scandir': 2.1.5 1663 + fastq: 1.19.1 1664 + 1665 + '@swc/helpers@0.5.15': 1666 + dependencies: 1667 + tslib: 2.8.1 1668 + 1669 + '@types/estree@1.0.8': {} 1670 + 1671 + '@types/json-schema@7.0.15': {} 1672 + 1673 + '@types/node@22.15.3': 1674 + dependencies: 1675 + undici-types: 6.21.0 1676 + 1677 + '@types/react-dom@19.1.1(@types/react@19.1.0)': 1678 + dependencies: 1679 + '@types/react': 19.1.0 1680 + 1681 + '@types/react@19.1.0': 1682 + dependencies: 1683 + csstype: 3.1.3 1684 + 1685 + '@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)': 1686 + dependencies: 1687 + '@eslint-community/regexpp': 4.12.1 1688 + '@typescript-eslint/parser': 8.40.0(eslint@9.34.0)(typescript@5.9.2) 1689 + '@typescript-eslint/scope-manager': 8.40.0 1690 + '@typescript-eslint/type-utils': 8.40.0(eslint@9.34.0)(typescript@5.9.2) 1691 + '@typescript-eslint/utils': 8.40.0(eslint@9.34.0)(typescript@5.9.2) 1692 + '@typescript-eslint/visitor-keys': 8.40.0 1693 + eslint: 9.34.0 1694 + graphemer: 1.4.0 1695 + ignore: 7.0.5 1696 + natural-compare: 1.4.0 1697 + ts-api-utils: 2.1.0(typescript@5.9.2) 1698 + typescript: 5.9.2 1699 + transitivePeerDependencies: 1700 + - supports-color 1701 + 1702 + '@typescript-eslint/parser@8.40.0(eslint@9.34.0)(typescript@5.9.2)': 1703 + dependencies: 1704 + '@typescript-eslint/scope-manager': 8.40.0 1705 + '@typescript-eslint/types': 8.40.0 1706 + '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) 1707 + '@typescript-eslint/visitor-keys': 8.40.0 1708 + debug: 4.4.1 1709 + eslint: 9.34.0 1710 + typescript: 5.9.2 1711 + transitivePeerDependencies: 1712 + - supports-color 1713 + 1714 + '@typescript-eslint/project-service@8.40.0(typescript@5.9.2)': 1715 + dependencies: 1716 + '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) 1717 + '@typescript-eslint/types': 8.40.0 1718 + debug: 4.4.1 1719 + typescript: 5.9.2 1720 + transitivePeerDependencies: 1721 + - supports-color 1722 + 1723 + '@typescript-eslint/scope-manager@8.40.0': 1724 + dependencies: 1725 + '@typescript-eslint/types': 8.40.0 1726 + '@typescript-eslint/visitor-keys': 8.40.0 1727 + 1728 + '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)': 1729 + dependencies: 1730 + typescript: 5.9.2 1731 + 1732 + '@typescript-eslint/type-utils@8.40.0(eslint@9.34.0)(typescript@5.9.2)': 1733 + dependencies: 1734 + '@typescript-eslint/types': 8.40.0 1735 + '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) 1736 + '@typescript-eslint/utils': 8.40.0(eslint@9.34.0)(typescript@5.9.2) 1737 + debug: 4.4.1 1738 + eslint: 9.34.0 1739 + ts-api-utils: 2.1.0(typescript@5.9.2) 1740 + typescript: 5.9.2 1741 + transitivePeerDependencies: 1742 + - supports-color 1743 + 1744 + '@typescript-eslint/types@8.40.0': {} 1745 + 1746 + '@typescript-eslint/typescript-estree@8.40.0(typescript@5.9.2)': 1747 + dependencies: 1748 + '@typescript-eslint/project-service': 8.40.0(typescript@5.9.2) 1749 + '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) 1750 + '@typescript-eslint/types': 8.40.0 1751 + '@typescript-eslint/visitor-keys': 8.40.0 1752 + debug: 4.4.1 1753 + fast-glob: 3.3.3 1754 + is-glob: 4.0.3 1755 + minimatch: 9.0.5 1756 + semver: 7.7.2 1757 + ts-api-utils: 2.1.0(typescript@5.9.2) 1758 + typescript: 5.9.2 1759 + transitivePeerDependencies: 1760 + - supports-color 1761 + 1762 + '@typescript-eslint/utils@8.40.0(eslint@9.34.0)(typescript@5.9.2)': 1763 + dependencies: 1764 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0) 1765 + '@typescript-eslint/scope-manager': 8.40.0 1766 + '@typescript-eslint/types': 8.40.0 1767 + '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) 1768 + eslint: 9.34.0 1769 + typescript: 5.9.2 1770 + transitivePeerDependencies: 1771 + - supports-color 1772 + 1773 + '@typescript-eslint/visitor-keys@8.40.0': 1774 + dependencies: 1775 + '@typescript-eslint/types': 8.40.0 1776 + eslint-visitor-keys: 4.2.1 1777 + 1778 + acorn-jsx@5.3.2(acorn@8.15.0): 1779 + dependencies: 1780 + acorn: 8.15.0 1781 + 1782 + acorn@8.15.0: {} 1783 + 1784 + ajv@6.12.6: 1785 + dependencies: 1786 + fast-deep-equal: 3.1.3 1787 + fast-json-stable-stringify: 2.1.0 1788 + json-schema-traverse: 0.4.1 1789 + uri-js: 4.4.1 1790 + 1791 + ansi-styles@4.3.0: 1792 + dependencies: 1793 + color-convert: 2.0.1 1794 + 1795 + argparse@2.0.1: {} 1796 + 1797 + array-buffer-byte-length@1.0.2: 1798 + dependencies: 1799 + call-bound: 1.0.4 1800 + is-array-buffer: 3.0.5 1801 + 1802 + array-includes@3.1.9: 1803 + dependencies: 1804 + call-bind: 1.0.8 1805 + call-bound: 1.0.4 1806 + define-properties: 1.2.1 1807 + es-abstract: 1.24.0 1808 + es-object-atoms: 1.1.1 1809 + get-intrinsic: 1.3.0 1810 + is-string: 1.1.1 1811 + math-intrinsics: 1.1.0 1812 + 1813 + array.prototype.findlast@1.2.5: 1814 + dependencies: 1815 + call-bind: 1.0.8 1816 + define-properties: 1.2.1 1817 + es-abstract: 1.24.0 1818 + es-errors: 1.3.0 1819 + es-object-atoms: 1.1.1 1820 + es-shim-unscopables: 1.1.0 1821 + 1822 + array.prototype.flat@1.3.3: 1823 + dependencies: 1824 + call-bind: 1.0.8 1825 + define-properties: 1.2.1 1826 + es-abstract: 1.24.0 1827 + es-shim-unscopables: 1.1.0 1828 + 1829 + array.prototype.flatmap@1.3.3: 1830 + dependencies: 1831 + call-bind: 1.0.8 1832 + define-properties: 1.2.1 1833 + es-abstract: 1.24.0 1834 + es-shim-unscopables: 1.1.0 1835 + 1836 + array.prototype.tosorted@1.1.4: 1837 + dependencies: 1838 + call-bind: 1.0.8 1839 + define-properties: 1.2.1 1840 + es-abstract: 1.24.0 1841 + es-errors: 1.3.0 1842 + es-shim-unscopables: 1.1.0 1843 + 1844 + arraybuffer.prototype.slice@1.0.4: 1845 + dependencies: 1846 + array-buffer-byte-length: 1.0.2 1847 + call-bind: 1.0.8 1848 + define-properties: 1.2.1 1849 + es-abstract: 1.24.0 1850 + es-errors: 1.3.0 1851 + get-intrinsic: 1.3.0 1852 + is-array-buffer: 3.0.5 1853 + 1854 + async-function@1.0.0: {} 1855 + 1856 + available-typed-arrays@1.0.7: 1857 + dependencies: 1858 + possible-typed-array-names: 1.1.0 1859 + 1860 + balanced-match@1.0.2: {} 1861 + 1862 + brace-expansion@1.1.12: 1863 + dependencies: 1864 + balanced-match: 1.0.2 1865 + concat-map: 0.0.1 1866 + 1867 + brace-expansion@2.0.2: 1868 + dependencies: 1869 + balanced-match: 1.0.2 1870 + 1871 + braces@3.0.3: 1872 + dependencies: 1873 + fill-range: 7.1.1 1874 + 1875 + call-bind-apply-helpers@1.0.2: 1876 + dependencies: 1877 + es-errors: 1.3.0 1878 + function-bind: 1.1.2 1879 + 1880 + call-bind@1.0.8: 1881 + dependencies: 1882 + call-bind-apply-helpers: 1.0.2 1883 + es-define-property: 1.0.1 1884 + get-intrinsic: 1.3.0 1885 + set-function-length: 1.2.2 1886 + 1887 + call-bound@1.0.4: 1888 + dependencies: 1889 + call-bind-apply-helpers: 1.0.2 1890 + get-intrinsic: 1.3.0 1891 + 1892 + callsites@3.1.0: {} 1893 + 1894 + caniuse-lite@1.0.30001736: {} 1895 + 1896 + chalk@4.1.2: 1897 + dependencies: 1898 + ansi-styles: 4.3.0 1899 + supports-color: 7.2.0 1900 + 1901 + client-only@0.0.1: {} 1902 + 1903 + color-convert@2.0.1: 1904 + dependencies: 1905 + color-name: 1.1.4 1906 + 1907 + color-name@1.1.4: {} 1908 + 1909 + color-string@1.9.1: 1910 + dependencies: 1911 + color-name: 1.1.4 1912 + simple-swizzle: 0.2.2 1913 + optional: true 1914 + 1915 + color@4.2.3: 1916 + dependencies: 1917 + color-convert: 2.0.1 1918 + color-string: 1.9.1 1919 + optional: true 1920 + 1921 + concat-map@0.0.1: {} 1922 + 1923 + cross-spawn@7.0.6: 1924 + dependencies: 1925 + path-key: 3.1.1 1926 + shebang-command: 2.0.0 1927 + which: 2.0.2 1928 + 1929 + csstype@3.1.3: {} 1930 + 1931 + data-view-buffer@1.0.2: 1932 + dependencies: 1933 + call-bound: 1.0.4 1934 + es-errors: 1.3.0 1935 + is-data-view: 1.0.2 1936 + 1937 + data-view-byte-length@1.0.2: 1938 + dependencies: 1939 + call-bound: 1.0.4 1940 + es-errors: 1.3.0 1941 + is-data-view: 1.0.2 1942 + 1943 + data-view-byte-offset@1.0.1: 1944 + dependencies: 1945 + call-bound: 1.0.4 1946 + es-errors: 1.3.0 1947 + is-data-view: 1.0.2 1948 + 1949 + debug@4.4.1: 1950 + dependencies: 1951 + ms: 2.1.3 1952 + 1953 + deep-is@0.1.4: {} 1954 + 1955 + define-data-property@1.1.4: 1956 + dependencies: 1957 + es-define-property: 1.0.1 1958 + es-errors: 1.3.0 1959 + gopd: 1.2.0 1960 + 1961 + define-properties@1.2.1: 1962 + dependencies: 1963 + define-data-property: 1.1.4 1964 + has-property-descriptors: 1.0.2 1965 + object-keys: 1.1.1 1966 + 1967 + detect-libc@2.0.4: 1968 + optional: true 1969 + 1970 + doctrine@2.1.0: 1971 + dependencies: 1972 + esutils: 2.0.3 1973 + 1974 + dotenv@16.0.3: {} 1975 + 1976 + dunder-proto@1.0.1: 1977 + dependencies: 1978 + call-bind-apply-helpers: 1.0.2 1979 + es-errors: 1.3.0 1980 + gopd: 1.2.0 1981 + 1982 + es-abstract@1.24.0: 1983 + dependencies: 1984 + array-buffer-byte-length: 1.0.2 1985 + arraybuffer.prototype.slice: 1.0.4 1986 + available-typed-arrays: 1.0.7 1987 + call-bind: 1.0.8 1988 + call-bound: 1.0.4 1989 + data-view-buffer: 1.0.2 1990 + data-view-byte-length: 1.0.2 1991 + data-view-byte-offset: 1.0.1 1992 + es-define-property: 1.0.1 1993 + es-errors: 1.3.0 1994 + es-object-atoms: 1.1.1 1995 + es-set-tostringtag: 2.1.0 1996 + es-to-primitive: 1.3.0 1997 + function.prototype.name: 1.1.8 1998 + get-intrinsic: 1.3.0 1999 + get-proto: 1.0.1 2000 + get-symbol-description: 1.1.0 2001 + globalthis: 1.0.4 2002 + gopd: 1.2.0 2003 + has-property-descriptors: 1.0.2 2004 + has-proto: 1.2.0 2005 + has-symbols: 1.1.0 2006 + hasown: 2.0.2 2007 + internal-slot: 1.1.0 2008 + is-array-buffer: 3.0.5 2009 + is-callable: 1.2.7 2010 + is-data-view: 1.0.2 2011 + is-negative-zero: 2.0.3 2012 + is-regex: 1.2.1 2013 + is-set: 2.0.3 2014 + is-shared-array-buffer: 1.0.4 2015 + is-string: 1.1.1 2016 + is-typed-array: 1.1.15 2017 + is-weakref: 1.1.1 2018 + math-intrinsics: 1.1.0 2019 + object-inspect: 1.13.4 2020 + object-keys: 1.1.1 2021 + object.assign: 4.1.7 2022 + own-keys: 1.0.1 2023 + regexp.prototype.flags: 1.5.4 2024 + safe-array-concat: 1.1.3 2025 + safe-push-apply: 1.0.0 2026 + safe-regex-test: 1.1.0 2027 + set-proto: 1.0.0 2028 + stop-iteration-iterator: 1.1.0 2029 + string.prototype.trim: 1.2.10 2030 + string.prototype.trimend: 1.0.9 2031 + string.prototype.trimstart: 1.0.8 2032 + typed-array-buffer: 1.0.3 2033 + typed-array-byte-length: 1.0.3 2034 + typed-array-byte-offset: 1.0.4 2035 + typed-array-length: 1.0.7 2036 + unbox-primitive: 1.1.0 2037 + which-typed-array: 1.1.19 2038 + 2039 + es-define-property@1.0.1: {} 2040 + 2041 + es-errors@1.3.0: {} 2042 + 2043 + es-iterator-helpers@1.2.1: 2044 + dependencies: 2045 + call-bind: 1.0.8 2046 + call-bound: 1.0.4 2047 + define-properties: 1.2.1 2048 + es-abstract: 1.24.0 2049 + es-errors: 1.3.0 2050 + es-set-tostringtag: 2.1.0 2051 + function-bind: 1.1.2 2052 + get-intrinsic: 1.3.0 2053 + globalthis: 1.0.4 2054 + gopd: 1.2.0 2055 + has-property-descriptors: 1.0.2 2056 + has-proto: 1.2.0 2057 + has-symbols: 1.1.0 2058 + internal-slot: 1.1.0 2059 + iterator.prototype: 1.1.5 2060 + safe-array-concat: 1.1.3 2061 + 2062 + es-object-atoms@1.1.1: 2063 + dependencies: 2064 + es-errors: 1.3.0 2065 + 2066 + es-set-tostringtag@2.1.0: 2067 + dependencies: 2068 + es-errors: 1.3.0 2069 + get-intrinsic: 1.3.0 2070 + has-tostringtag: 1.0.2 2071 + hasown: 2.0.2 2072 + 2073 + es-shim-unscopables@1.1.0: 2074 + dependencies: 2075 + hasown: 2.0.2 2076 + 2077 + es-to-primitive@1.3.0: 2078 + dependencies: 2079 + is-callable: 1.2.7 2080 + is-date-object: 1.1.0 2081 + is-symbol: 1.1.1 2082 + 2083 + escape-string-regexp@4.0.0: {} 2084 + 2085 + eslint-config-prettier@10.1.1(eslint@9.34.0): 2086 + dependencies: 2087 + eslint: 9.34.0 2088 + 2089 + eslint-plugin-only-warn@1.1.0: {} 2090 + 2091 + eslint-plugin-react-hooks@5.2.0(eslint@9.34.0): 2092 + dependencies: 2093 + eslint: 9.34.0 2094 + 2095 + eslint-plugin-react@7.37.5(eslint@9.34.0): 2096 + dependencies: 2097 + array-includes: 3.1.9 2098 + array.prototype.findlast: 1.2.5 2099 + array.prototype.flatmap: 1.3.3 2100 + array.prototype.tosorted: 1.1.4 2101 + doctrine: 2.1.0 2102 + es-iterator-helpers: 1.2.1 2103 + eslint: 9.34.0 2104 + estraverse: 5.3.0 2105 + hasown: 2.0.2 2106 + jsx-ast-utils: 3.3.5 2107 + minimatch: 3.1.2 2108 + object.entries: 1.1.9 2109 + object.fromentries: 2.0.8 2110 + object.values: 1.2.1 2111 + prop-types: 15.8.1 2112 + resolve: 2.0.0-next.5 2113 + semver: 6.3.1 2114 + string.prototype.matchall: 4.0.12 2115 + string.prototype.repeat: 1.0.0 2116 + 2117 + eslint-plugin-turbo@2.5.0(eslint@9.34.0)(turbo@2.5.4): 2118 + dependencies: 2119 + dotenv: 16.0.3 2120 + eslint: 9.34.0 2121 + turbo: 2.5.4 2122 + 2123 + eslint-scope@8.4.0: 2124 + dependencies: 2125 + esrecurse: 4.3.0 2126 + estraverse: 5.3.0 2127 + 2128 + eslint-visitor-keys@3.4.3: {} 2129 + 2130 + eslint-visitor-keys@4.2.1: {} 2131 + 2132 + eslint@9.34.0: 2133 + dependencies: 2134 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0) 2135 + '@eslint-community/regexpp': 4.12.1 2136 + '@eslint/config-array': 0.21.0 2137 + '@eslint/config-helpers': 0.3.1 2138 + '@eslint/core': 0.15.2 2139 + '@eslint/eslintrc': 3.3.1 2140 + '@eslint/js': 9.34.0 2141 + '@eslint/plugin-kit': 0.3.5 2142 + '@humanfs/node': 0.16.6 2143 + '@humanwhocodes/module-importer': 1.0.1 2144 + '@humanwhocodes/retry': 0.4.3 2145 + '@types/estree': 1.0.8 2146 + '@types/json-schema': 7.0.15 2147 + ajv: 6.12.6 2148 + chalk: 4.1.2 2149 + cross-spawn: 7.0.6 2150 + debug: 4.4.1 2151 + escape-string-regexp: 4.0.0 2152 + eslint-scope: 8.4.0 2153 + eslint-visitor-keys: 4.2.1 2154 + espree: 10.4.0 2155 + esquery: 1.6.0 2156 + esutils: 2.0.3 2157 + fast-deep-equal: 3.1.3 2158 + file-entry-cache: 8.0.0 2159 + find-up: 5.0.0 2160 + glob-parent: 6.0.2 2161 + ignore: 5.3.2 2162 + imurmurhash: 0.1.4 2163 + is-glob: 4.0.3 2164 + json-stable-stringify-without-jsonify: 1.0.1 2165 + lodash.merge: 4.6.2 2166 + minimatch: 3.1.2 2167 + natural-compare: 1.4.0 2168 + optionator: 0.9.4 2169 + transitivePeerDependencies: 2170 + - supports-color 2171 + 2172 + espree@10.4.0: 2173 + dependencies: 2174 + acorn: 8.15.0 2175 + acorn-jsx: 5.3.2(acorn@8.15.0) 2176 + eslint-visitor-keys: 4.2.1 2177 + 2178 + esquery@1.6.0: 2179 + dependencies: 2180 + estraverse: 5.3.0 2181 + 2182 + esrecurse@4.3.0: 2183 + dependencies: 2184 + estraverse: 5.3.0 2185 + 2186 + estraverse@5.3.0: {} 2187 + 2188 + esutils@2.0.3: {} 2189 + 2190 + fast-deep-equal@3.1.3: {} 2191 + 2192 + fast-glob@3.3.1: 2193 + dependencies: 2194 + '@nodelib/fs.stat': 2.0.5 2195 + '@nodelib/fs.walk': 1.2.8 2196 + glob-parent: 5.1.2 2197 + merge2: 1.4.1 2198 + micromatch: 4.0.8 2199 + 2200 + fast-glob@3.3.3: 2201 + dependencies: 2202 + '@nodelib/fs.stat': 2.0.5 2203 + '@nodelib/fs.walk': 1.2.8 2204 + glob-parent: 5.1.2 2205 + merge2: 1.4.1 2206 + micromatch: 4.0.8 2207 + 2208 + fast-json-stable-stringify@2.1.0: {} 2209 + 2210 + fast-levenshtein@2.0.6: {} 2211 + 2212 + fastq@1.19.1: 2213 + dependencies: 2214 + reusify: 1.1.0 2215 + 2216 + file-entry-cache@8.0.0: 2217 + dependencies: 2218 + flat-cache: 4.0.1 2219 + 2220 + fill-range@7.1.1: 2221 + dependencies: 2222 + to-regex-range: 5.0.1 2223 + 2224 + find-up@5.0.0: 2225 + dependencies: 2226 + locate-path: 6.0.0 2227 + path-exists: 4.0.0 2228 + 2229 + flat-cache@4.0.1: 2230 + dependencies: 2231 + flatted: 3.3.3 2232 + keyv: 4.5.4 2233 + 2234 + flatted@3.3.3: {} 2235 + 2236 + for-each@0.3.5: 2237 + dependencies: 2238 + is-callable: 1.2.7 2239 + 2240 + function-bind@1.1.2: {} 2241 + 2242 + function.prototype.name@1.1.8: 2243 + dependencies: 2244 + call-bind: 1.0.8 2245 + call-bound: 1.0.4 2246 + define-properties: 1.2.1 2247 + functions-have-names: 1.2.3 2248 + hasown: 2.0.2 2249 + is-callable: 1.2.7 2250 + 2251 + functions-have-names@1.2.3: {} 2252 + 2253 + get-intrinsic@1.3.0: 2254 + dependencies: 2255 + call-bind-apply-helpers: 1.0.2 2256 + es-define-property: 1.0.1 2257 + es-errors: 1.3.0 2258 + es-object-atoms: 1.1.1 2259 + function-bind: 1.1.2 2260 + get-proto: 1.0.1 2261 + gopd: 1.2.0 2262 + has-symbols: 1.1.0 2263 + hasown: 2.0.2 2264 + math-intrinsics: 1.1.0 2265 + 2266 + get-proto@1.0.1: 2267 + dependencies: 2268 + dunder-proto: 1.0.1 2269 + es-object-atoms: 1.1.1 2270 + 2271 + get-symbol-description@1.1.0: 2272 + dependencies: 2273 + call-bound: 1.0.4 2274 + es-errors: 1.3.0 2275 + get-intrinsic: 1.3.0 2276 + 2277 + glob-parent@5.1.2: 2278 + dependencies: 2279 + is-glob: 4.0.3 2280 + 2281 + glob-parent@6.0.2: 2282 + dependencies: 2283 + is-glob: 4.0.3 2284 + 2285 + globals@14.0.0: {} 2286 + 2287 + globals@16.3.0: {} 2288 + 2289 + globalthis@1.0.4: 2290 + dependencies: 2291 + define-properties: 1.2.1 2292 + gopd: 1.2.0 2293 + 2294 + gopd@1.2.0: {} 2295 + 2296 + graphemer@1.4.0: {} 2297 + 2298 + has-bigints@1.1.0: {} 2299 + 2300 + has-flag@4.0.0: {} 2301 + 2302 + has-property-descriptors@1.0.2: 2303 + dependencies: 2304 + es-define-property: 1.0.1 2305 + 2306 + has-proto@1.2.0: 2307 + dependencies: 2308 + dunder-proto: 1.0.1 2309 + 2310 + has-symbols@1.1.0: {} 2311 + 2312 + has-tostringtag@1.0.2: 2313 + dependencies: 2314 + has-symbols: 1.1.0 2315 + 2316 + hasown@2.0.2: 2317 + dependencies: 2318 + function-bind: 1.1.2 2319 + 2320 + ignore@5.3.2: {} 2321 + 2322 + ignore@7.0.5: {} 2323 + 2324 + import-fresh@3.3.1: 2325 + dependencies: 2326 + parent-module: 1.0.1 2327 + resolve-from: 4.0.0 2328 + 2329 + imurmurhash@0.1.4: {} 2330 + 2331 + internal-slot@1.1.0: 2332 + dependencies: 2333 + es-errors: 1.3.0 2334 + hasown: 2.0.2 2335 + side-channel: 1.1.0 2336 + 2337 + is-array-buffer@3.0.5: 2338 + dependencies: 2339 + call-bind: 1.0.8 2340 + call-bound: 1.0.4 2341 + get-intrinsic: 1.3.0 2342 + 2343 + is-arrayish@0.3.2: 2344 + optional: true 2345 + 2346 + is-async-function@2.1.1: 2347 + dependencies: 2348 + async-function: 1.0.0 2349 + call-bound: 1.0.4 2350 + get-proto: 1.0.1 2351 + has-tostringtag: 1.0.2 2352 + safe-regex-test: 1.1.0 2353 + 2354 + is-bigint@1.1.0: 2355 + dependencies: 2356 + has-bigints: 1.1.0 2357 + 2358 + is-boolean-object@1.2.2: 2359 + dependencies: 2360 + call-bound: 1.0.4 2361 + has-tostringtag: 1.0.2 2362 + 2363 + is-callable@1.2.7: {} 2364 + 2365 + is-core-module@2.16.1: 2366 + dependencies: 2367 + hasown: 2.0.2 2368 + 2369 + is-data-view@1.0.2: 2370 + dependencies: 2371 + call-bound: 1.0.4 2372 + get-intrinsic: 1.3.0 2373 + is-typed-array: 1.1.15 2374 + 2375 + is-date-object@1.1.0: 2376 + dependencies: 2377 + call-bound: 1.0.4 2378 + has-tostringtag: 1.0.2 2379 + 2380 + is-extglob@2.1.1: {} 2381 + 2382 + is-finalizationregistry@1.1.1: 2383 + dependencies: 2384 + call-bound: 1.0.4 2385 + 2386 + is-generator-function@1.1.0: 2387 + dependencies: 2388 + call-bound: 1.0.4 2389 + get-proto: 1.0.1 2390 + has-tostringtag: 1.0.2 2391 + safe-regex-test: 1.1.0 2392 + 2393 + is-glob@4.0.3: 2394 + dependencies: 2395 + is-extglob: 2.1.1 2396 + 2397 + is-map@2.0.3: {} 2398 + 2399 + is-negative-zero@2.0.3: {} 2400 + 2401 + is-number-object@1.1.1: 2402 + dependencies: 2403 + call-bound: 1.0.4 2404 + has-tostringtag: 1.0.2 2405 + 2406 + is-number@7.0.0: {} 2407 + 2408 + is-regex@1.2.1: 2409 + dependencies: 2410 + call-bound: 1.0.4 2411 + gopd: 1.2.0 2412 + has-tostringtag: 1.0.2 2413 + hasown: 2.0.2 2414 + 2415 + is-set@2.0.3: {} 2416 + 2417 + is-shared-array-buffer@1.0.4: 2418 + dependencies: 2419 + call-bound: 1.0.4 2420 + 2421 + is-string@1.1.1: 2422 + dependencies: 2423 + call-bound: 1.0.4 2424 + has-tostringtag: 1.0.2 2425 + 2426 + is-symbol@1.1.1: 2427 + dependencies: 2428 + call-bound: 1.0.4 2429 + has-symbols: 1.1.0 2430 + safe-regex-test: 1.1.0 2431 + 2432 + is-typed-array@1.1.15: 2433 + dependencies: 2434 + which-typed-array: 1.1.19 2435 + 2436 + is-weakmap@2.0.2: {} 2437 + 2438 + is-weakref@1.1.1: 2439 + dependencies: 2440 + call-bound: 1.0.4 2441 + 2442 + is-weakset@2.0.4: 2443 + dependencies: 2444 + call-bound: 1.0.4 2445 + get-intrinsic: 1.3.0 2446 + 2447 + isarray@2.0.5: {} 2448 + 2449 + isexe@2.0.0: {} 2450 + 2451 + iterator.prototype@1.1.5: 2452 + dependencies: 2453 + define-data-property: 1.1.4 2454 + es-object-atoms: 1.1.1 2455 + get-intrinsic: 1.3.0 2456 + get-proto: 1.0.1 2457 + has-symbols: 1.1.0 2458 + set-function-name: 2.0.2 2459 + 2460 + js-tokens@4.0.0: {} 2461 + 2462 + js-yaml@4.1.0: 2463 + dependencies: 2464 + argparse: 2.0.1 2465 + 2466 + json-buffer@3.0.1: {} 2467 + 2468 + json-schema-traverse@0.4.1: {} 2469 + 2470 + json-stable-stringify-without-jsonify@1.0.1: {} 2471 + 2472 + jsx-ast-utils@3.3.5: 2473 + dependencies: 2474 + array-includes: 3.1.9 2475 + array.prototype.flat: 1.3.3 2476 + object.assign: 4.1.7 2477 + object.values: 1.2.1 2478 + 2479 + keyv@4.5.4: 2480 + dependencies: 2481 + json-buffer: 3.0.1 2482 + 2483 + levn@0.4.1: 2484 + dependencies: 2485 + prelude-ls: 1.2.1 2486 + type-check: 0.4.0 2487 + 2488 + locate-path@6.0.0: 2489 + dependencies: 2490 + p-locate: 5.0.0 2491 + 2492 + lodash.merge@4.6.2: {} 2493 + 2494 + loose-envify@1.4.0: 2495 + dependencies: 2496 + js-tokens: 4.0.0 2497 + 2498 + math-intrinsics@1.1.0: {} 2499 + 2500 + merge2@1.4.1: {} 2501 + 2502 + micromatch@4.0.8: 2503 + dependencies: 2504 + braces: 3.0.3 2505 + picomatch: 2.3.1 2506 + 2507 + minimatch@3.1.2: 2508 + dependencies: 2509 + brace-expansion: 1.1.12 2510 + 2511 + minimatch@9.0.5: 2512 + dependencies: 2513 + brace-expansion: 2.0.2 2514 + 2515 + ms@2.1.3: {} 2516 + 2517 + nanoid@3.3.11: {} 2518 + 2519 + natural-compare@1.4.0: {} 2520 + 2521 + next@15.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): 2522 + dependencies: 2523 + '@next/env': 15.5.0 2524 + '@swc/helpers': 0.5.15 2525 + caniuse-lite: 1.0.30001736 2526 + postcss: 8.4.31 2527 + react: 19.1.0 2528 + react-dom: 19.1.0(react@19.1.0) 2529 + styled-jsx: 5.1.6(react@19.1.0) 2530 + optionalDependencies: 2531 + '@next/swc-darwin-arm64': 15.5.0 2532 + '@next/swc-darwin-x64': 15.5.0 2533 + '@next/swc-linux-arm64-gnu': 15.5.0 2534 + '@next/swc-linux-arm64-musl': 15.5.0 2535 + '@next/swc-linux-x64-gnu': 15.5.0 2536 + '@next/swc-linux-x64-musl': 15.5.0 2537 + '@next/swc-win32-arm64-msvc': 15.5.0 2538 + '@next/swc-win32-x64-msvc': 15.5.0 2539 + sharp: 0.34.3 2540 + transitivePeerDependencies: 2541 + - '@babel/core' 2542 + - babel-plugin-macros 2543 + 2544 + object-assign@4.1.1: {} 2545 + 2546 + object-inspect@1.13.4: {} 2547 + 2548 + object-keys@1.1.1: {} 2549 + 2550 + object.assign@4.1.7: 2551 + dependencies: 2552 + call-bind: 1.0.8 2553 + call-bound: 1.0.4 2554 + define-properties: 1.2.1 2555 + es-object-atoms: 1.1.1 2556 + has-symbols: 1.1.0 2557 + object-keys: 1.1.1 2558 + 2559 + object.entries@1.1.9: 2560 + dependencies: 2561 + call-bind: 1.0.8 2562 + call-bound: 1.0.4 2563 + define-properties: 1.2.1 2564 + es-object-atoms: 1.1.1 2565 + 2566 + object.fromentries@2.0.8: 2567 + dependencies: 2568 + call-bind: 1.0.8 2569 + define-properties: 1.2.1 2570 + es-abstract: 1.24.0 2571 + es-object-atoms: 1.1.1 2572 + 2573 + object.values@1.2.1: 2574 + dependencies: 2575 + call-bind: 1.0.8 2576 + call-bound: 1.0.4 2577 + define-properties: 1.2.1 2578 + es-object-atoms: 1.1.1 2579 + 2580 + optionator@0.9.4: 2581 + dependencies: 2582 + deep-is: 0.1.4 2583 + fast-levenshtein: 2.0.6 2584 + levn: 0.4.1 2585 + prelude-ls: 1.2.1 2586 + type-check: 0.4.0 2587 + word-wrap: 1.2.5 2588 + 2589 + own-keys@1.0.1: 2590 + dependencies: 2591 + get-intrinsic: 1.3.0 2592 + object-keys: 1.1.1 2593 + safe-push-apply: 1.0.0 2594 + 2595 + p-limit@3.1.0: 2596 + dependencies: 2597 + yocto-queue: 0.1.0 2598 + 2599 + p-locate@5.0.0: 2600 + dependencies: 2601 + p-limit: 3.1.0 2602 + 2603 + parent-module@1.0.1: 2604 + dependencies: 2605 + callsites: 3.1.0 2606 + 2607 + path-exists@4.0.0: {} 2608 + 2609 + path-key@3.1.1: {} 2610 + 2611 + path-parse@1.0.7: {} 2612 + 2613 + picocolors@1.1.1: {} 2614 + 2615 + picomatch@2.3.1: {} 2616 + 2617 + possible-typed-array-names@1.1.0: {} 2618 + 2619 + postcss@8.4.31: 2620 + dependencies: 2621 + nanoid: 3.3.11 2622 + picocolors: 1.1.1 2623 + source-map-js: 1.2.1 2624 + 2625 + prelude-ls@1.2.1: {} 2626 + 2627 + prettier@3.6.2: {} 2628 + 2629 + prop-types@15.8.1: 2630 + dependencies: 2631 + loose-envify: 1.4.0 2632 + object-assign: 4.1.1 2633 + react-is: 16.13.1 2634 + 2635 + punycode@2.3.1: {} 2636 + 2637 + queue-microtask@1.2.3: {} 2638 + 2639 + react-dom@19.1.0(react@19.1.0): 2640 + dependencies: 2641 + react: 19.1.0 2642 + scheduler: 0.26.0 2643 + 2644 + react-is@16.13.1: {} 2645 + 2646 + react@19.1.0: {} 2647 + 2648 + reflect.getprototypeof@1.0.10: 2649 + dependencies: 2650 + call-bind: 1.0.8 2651 + define-properties: 1.2.1 2652 + es-abstract: 1.24.0 2653 + es-errors: 1.3.0 2654 + es-object-atoms: 1.1.1 2655 + get-intrinsic: 1.3.0 2656 + get-proto: 1.0.1 2657 + which-builtin-type: 1.2.1 2658 + 2659 + regexp.prototype.flags@1.5.4: 2660 + dependencies: 2661 + call-bind: 1.0.8 2662 + define-properties: 1.2.1 2663 + es-errors: 1.3.0 2664 + get-proto: 1.0.1 2665 + gopd: 1.2.0 2666 + set-function-name: 2.0.2 2667 + 2668 + resolve-from@4.0.0: {} 2669 + 2670 + resolve@2.0.0-next.5: 2671 + dependencies: 2672 + is-core-module: 2.16.1 2673 + path-parse: 1.0.7 2674 + supports-preserve-symlinks-flag: 1.0.0 2675 + 2676 + reusify@1.1.0: {} 2677 + 2678 + run-parallel@1.2.0: 2679 + dependencies: 2680 + queue-microtask: 1.2.3 2681 + 2682 + safe-array-concat@1.1.3: 2683 + dependencies: 2684 + call-bind: 1.0.8 2685 + call-bound: 1.0.4 2686 + get-intrinsic: 1.3.0 2687 + has-symbols: 1.1.0 2688 + isarray: 2.0.5 2689 + 2690 + safe-push-apply@1.0.0: 2691 + dependencies: 2692 + es-errors: 1.3.0 2693 + isarray: 2.0.5 2694 + 2695 + safe-regex-test@1.1.0: 2696 + dependencies: 2697 + call-bound: 1.0.4 2698 + es-errors: 1.3.0 2699 + is-regex: 1.2.1 2700 + 2701 + scheduler@0.26.0: {} 2702 + 2703 + semver@6.3.1: {} 2704 + 2705 + semver@7.7.2: {} 2706 + 2707 + set-function-length@1.2.2: 2708 + dependencies: 2709 + define-data-property: 1.1.4 2710 + es-errors: 1.3.0 2711 + function-bind: 1.1.2 2712 + get-intrinsic: 1.3.0 2713 + gopd: 1.2.0 2714 + has-property-descriptors: 1.0.2 2715 + 2716 + set-function-name@2.0.2: 2717 + dependencies: 2718 + define-data-property: 1.1.4 2719 + es-errors: 1.3.0 2720 + functions-have-names: 1.2.3 2721 + has-property-descriptors: 1.0.2 2722 + 2723 + set-proto@1.0.0: 2724 + dependencies: 2725 + dunder-proto: 1.0.1 2726 + es-errors: 1.3.0 2727 + es-object-atoms: 1.1.1 2728 + 2729 + sharp@0.34.3: 2730 + dependencies: 2731 + color: 4.2.3 2732 + detect-libc: 2.0.4 2733 + semver: 7.7.2 2734 + optionalDependencies: 2735 + '@img/sharp-darwin-arm64': 0.34.3 2736 + '@img/sharp-darwin-x64': 0.34.3 2737 + '@img/sharp-libvips-darwin-arm64': 1.2.0 2738 + '@img/sharp-libvips-darwin-x64': 1.2.0 2739 + '@img/sharp-libvips-linux-arm': 1.2.0 2740 + '@img/sharp-libvips-linux-arm64': 1.2.0 2741 + '@img/sharp-libvips-linux-ppc64': 1.2.0 2742 + '@img/sharp-libvips-linux-s390x': 1.2.0 2743 + '@img/sharp-libvips-linux-x64': 1.2.0 2744 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 2745 + '@img/sharp-libvips-linuxmusl-x64': 1.2.0 2746 + '@img/sharp-linux-arm': 0.34.3 2747 + '@img/sharp-linux-arm64': 0.34.3 2748 + '@img/sharp-linux-ppc64': 0.34.3 2749 + '@img/sharp-linux-s390x': 0.34.3 2750 + '@img/sharp-linux-x64': 0.34.3 2751 + '@img/sharp-linuxmusl-arm64': 0.34.3 2752 + '@img/sharp-linuxmusl-x64': 0.34.3 2753 + '@img/sharp-wasm32': 0.34.3 2754 + '@img/sharp-win32-arm64': 0.34.3 2755 + '@img/sharp-win32-ia32': 0.34.3 2756 + '@img/sharp-win32-x64': 0.34.3 2757 + optional: true 2758 + 2759 + shebang-command@2.0.0: 2760 + dependencies: 2761 + shebang-regex: 3.0.0 2762 + 2763 + shebang-regex@3.0.0: {} 2764 + 2765 + side-channel-list@1.0.0: 2766 + dependencies: 2767 + es-errors: 1.3.0 2768 + object-inspect: 1.13.4 2769 + 2770 + side-channel-map@1.0.1: 2771 + dependencies: 2772 + call-bound: 1.0.4 2773 + es-errors: 1.3.0 2774 + get-intrinsic: 1.3.0 2775 + object-inspect: 1.13.4 2776 + 2777 + side-channel-weakmap@1.0.2: 2778 + dependencies: 2779 + call-bound: 1.0.4 2780 + es-errors: 1.3.0 2781 + get-intrinsic: 1.3.0 2782 + object-inspect: 1.13.4 2783 + side-channel-map: 1.0.1 2784 + 2785 + side-channel@1.1.0: 2786 + dependencies: 2787 + es-errors: 1.3.0 2788 + object-inspect: 1.13.4 2789 + side-channel-list: 1.0.0 2790 + side-channel-map: 1.0.1 2791 + side-channel-weakmap: 1.0.2 2792 + 2793 + simple-swizzle@0.2.2: 2794 + dependencies: 2795 + is-arrayish: 0.3.2 2796 + optional: true 2797 + 2798 + source-map-js@1.2.1: {} 2799 + 2800 + stop-iteration-iterator@1.1.0: 2801 + dependencies: 2802 + es-errors: 1.3.0 2803 + internal-slot: 1.1.0 2804 + 2805 + string.prototype.matchall@4.0.12: 2806 + dependencies: 2807 + call-bind: 1.0.8 2808 + call-bound: 1.0.4 2809 + define-properties: 1.2.1 2810 + es-abstract: 1.24.0 2811 + es-errors: 1.3.0 2812 + es-object-atoms: 1.1.1 2813 + get-intrinsic: 1.3.0 2814 + gopd: 1.2.0 2815 + has-symbols: 1.1.0 2816 + internal-slot: 1.1.0 2817 + regexp.prototype.flags: 1.5.4 2818 + set-function-name: 2.0.2 2819 + side-channel: 1.1.0 2820 + 2821 + string.prototype.repeat@1.0.0: 2822 + dependencies: 2823 + define-properties: 1.2.1 2824 + es-abstract: 1.24.0 2825 + 2826 + string.prototype.trim@1.2.10: 2827 + dependencies: 2828 + call-bind: 1.0.8 2829 + call-bound: 1.0.4 2830 + define-data-property: 1.1.4 2831 + define-properties: 1.2.1 2832 + es-abstract: 1.24.0 2833 + es-object-atoms: 1.1.1 2834 + has-property-descriptors: 1.0.2 2835 + 2836 + string.prototype.trimend@1.0.9: 2837 + dependencies: 2838 + call-bind: 1.0.8 2839 + call-bound: 1.0.4 2840 + define-properties: 1.2.1 2841 + es-object-atoms: 1.1.1 2842 + 2843 + string.prototype.trimstart@1.0.8: 2844 + dependencies: 2845 + call-bind: 1.0.8 2846 + define-properties: 1.2.1 2847 + es-object-atoms: 1.1.1 2848 + 2849 + strip-json-comments@3.1.1: {} 2850 + 2851 + styled-jsx@5.1.6(react@19.1.0): 2852 + dependencies: 2853 + client-only: 0.0.1 2854 + react: 19.1.0 2855 + 2856 + supports-color@7.2.0: 2857 + dependencies: 2858 + has-flag: 4.0.0 2859 + 2860 + supports-preserve-symlinks-flag@1.0.0: {} 2861 + 2862 + to-regex-range@5.0.1: 2863 + dependencies: 2864 + is-number: 7.0.0 2865 + 2866 + ts-api-utils@2.1.0(typescript@5.9.2): 2867 + dependencies: 2868 + typescript: 5.9.2 2869 + 2870 + tslib@2.8.1: {} 2871 + 2872 + turbo-darwin-64@2.5.4: 2873 + optional: true 2874 + 2875 + turbo-darwin-arm64@2.5.4: 2876 + optional: true 2877 + 2878 + turbo-linux-64@2.5.4: 2879 + optional: true 2880 + 2881 + turbo-linux-arm64@2.5.4: 2882 + optional: true 2883 + 2884 + turbo-windows-64@2.5.4: 2885 + optional: true 2886 + 2887 + turbo-windows-arm64@2.5.4: 2888 + optional: true 2889 + 2890 + turbo@2.5.4: 2891 + optionalDependencies: 2892 + turbo-darwin-64: 2.5.4 2893 + turbo-darwin-arm64: 2.5.4 2894 + turbo-linux-64: 2.5.4 2895 + turbo-linux-arm64: 2.5.4 2896 + turbo-windows-64: 2.5.4 2897 + turbo-windows-arm64: 2.5.4 2898 + 2899 + type-check@0.4.0: 2900 + dependencies: 2901 + prelude-ls: 1.2.1 2902 + 2903 + typed-array-buffer@1.0.3: 2904 + dependencies: 2905 + call-bound: 1.0.4 2906 + es-errors: 1.3.0 2907 + is-typed-array: 1.1.15 2908 + 2909 + typed-array-byte-length@1.0.3: 2910 + dependencies: 2911 + call-bind: 1.0.8 2912 + for-each: 0.3.5 2913 + gopd: 1.2.0 2914 + has-proto: 1.2.0 2915 + is-typed-array: 1.1.15 2916 + 2917 + typed-array-byte-offset@1.0.4: 2918 + dependencies: 2919 + available-typed-arrays: 1.0.7 2920 + call-bind: 1.0.8 2921 + for-each: 0.3.5 2922 + gopd: 1.2.0 2923 + has-proto: 1.2.0 2924 + is-typed-array: 1.1.15 2925 + reflect.getprototypeof: 1.0.10 2926 + 2927 + typed-array-length@1.0.7: 2928 + dependencies: 2929 + call-bind: 1.0.8 2930 + for-each: 0.3.5 2931 + gopd: 1.2.0 2932 + is-typed-array: 1.1.15 2933 + possible-typed-array-names: 1.1.0 2934 + reflect.getprototypeof: 1.0.10 2935 + 2936 + typescript-eslint@8.40.0(eslint@9.34.0)(typescript@5.9.2): 2937 + dependencies: 2938 + '@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2) 2939 + '@typescript-eslint/parser': 8.40.0(eslint@9.34.0)(typescript@5.9.2) 2940 + '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) 2941 + '@typescript-eslint/utils': 8.40.0(eslint@9.34.0)(typescript@5.9.2) 2942 + eslint: 9.34.0 2943 + typescript: 5.9.2 2944 + transitivePeerDependencies: 2945 + - supports-color 2946 + 2947 + typescript@5.9.2: {} 2948 + 2949 + unbox-primitive@1.1.0: 2950 + dependencies: 2951 + call-bound: 1.0.4 2952 + has-bigints: 1.1.0 2953 + has-symbols: 1.1.0 2954 + which-boxed-primitive: 1.1.1 2955 + 2956 + undici-types@6.21.0: {} 2957 + 2958 + uri-js@4.4.1: 2959 + dependencies: 2960 + punycode: 2.3.1 2961 + 2962 + which-boxed-primitive@1.1.1: 2963 + dependencies: 2964 + is-bigint: 1.1.0 2965 + is-boolean-object: 1.2.2 2966 + is-number-object: 1.1.1 2967 + is-string: 1.1.1 2968 + is-symbol: 1.1.1 2969 + 2970 + which-builtin-type@1.2.1: 2971 + dependencies: 2972 + call-bound: 1.0.4 2973 + function.prototype.name: 1.1.8 2974 + has-tostringtag: 1.0.2 2975 + is-async-function: 2.1.1 2976 + is-date-object: 1.1.0 2977 + is-finalizationregistry: 1.1.1 2978 + is-generator-function: 1.1.0 2979 + is-regex: 1.2.1 2980 + is-weakref: 1.1.1 2981 + isarray: 2.0.5 2982 + which-boxed-primitive: 1.1.1 2983 + which-collection: 1.0.2 2984 + which-typed-array: 1.1.19 2985 + 2986 + which-collection@1.0.2: 2987 + dependencies: 2988 + is-map: 2.0.3 2989 + is-set: 2.0.3 2990 + is-weakmap: 2.0.2 2991 + is-weakset: 2.0.4 2992 + 2993 + which-typed-array@1.1.19: 2994 + dependencies: 2995 + available-typed-arrays: 1.0.7 2996 + call-bind: 1.0.8 2997 + call-bound: 1.0.4 2998 + for-each: 0.3.5 2999 + get-proto: 1.0.1 3000 + gopd: 1.2.0 3001 + has-tostringtag: 1.0.2 3002 + 3003 + which@2.0.2: 3004 + dependencies: 3005 + isexe: 2.0.0 3006 + 3007 + word-wrap@1.2.5: {} 3008 + 3009 + yocto-queue@0.1.0: {}
+3
pnpm-workspace.yaml
··· 1 + packages: 2 + - "apps/*" 3 + - "packages/*"
+21
turbo.json
··· 1 + { 2 + "$schema": "https://turborepo.com/schema.json", 3 + "ui": "tui", 4 + "tasks": { 5 + "build": { 6 + "dependsOn": ["^build"], 7 + "inputs": ["$TURBO_DEFAULT$", ".env*"], 8 + "outputs": [".next/**", "!.next/cache/**"] 9 + }, 10 + "lint": { 11 + "dependsOn": ["^lint"] 12 + }, 13 + "check-types": { 14 + "dependsOn": ["^check-types"] 15 + }, 16 + "dev": { 17 + "cache": false, 18 + "persistent": true 19 + } 20 + } 21 + }