├── app ├── favicon.ico ├── globals.css ├── page.tsx ├── layout.tsx ├── actions.ts └── todo-list.tsx ├── next.config.ts ├── postcss.config.mjs ├── lib └── db │ ├── migrations │ ├── 0000_bitter_talisman.sql │ └── meta │ │ ├── _journal.json │ │ └── 0000_snapshot.json │ ├── schema.ts │ ├── seed.ts │ ├── migrate.ts │ ├── queries.ts │ ├── drizzle.ts │ └── setup.ts ├── drizzle.config.ts ├── .gitignore ├── tsconfig.json ├── README.md ├── package.json ├── LICENSE └── pnpm-lock.yaml /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vercel/postgres-next-starter/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /app/globals.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss'; 2 | 3 | @theme { 4 | --font-family-sans: 'Geist', sans-serif; 5 | } 6 | -------------------------------------------------------------------------------- /next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from 'next'; 2 | 3 | const nextConfig: NextConfig = {}; 4 | 5 | export default nextConfig; 6 | -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | export default { 3 | plugins: { 4 | '@tailwindcss/postcss': {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /lib/db/migrations/0000_bitter_talisman.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS "todos" ( 2 | "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, 3 | "text" varchar(255) NOT NULL, 4 | "created_at" timestamp DEFAULT now() NOT NULL, 5 | "updated_at" timestamp DEFAULT now() NOT NULL 6 | ); 7 | -------------------------------------------------------------------------------- /drizzle.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from 'drizzle-kit'; 2 | 3 | export default { 4 | schema: './lib/db/schema.ts', 5 | out: './lib/db/migrations', 6 | dialect: 'postgresql', 7 | dbCredentials: { 8 | url: process.env.POSTGRES_URL!, 9 | }, 10 | } satisfies Config; 11 | -------------------------------------------------------------------------------- /lib/db/migrations/meta/_journal.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "7", 3 | "dialect": "postgresql", 4 | "entries": [ 5 | { 6 | "idx": 0, 7 | "version": "7", 8 | "when": 1733332502118, 9 | "tag": "0000_bitter_talisman", 10 | "breakpoints": true 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /lib/db/schema.ts: -------------------------------------------------------------------------------- 1 | import { pgTable, varchar, timestamp, uuid } from 'drizzle-orm/pg-core'; 2 | 3 | export const todos = pgTable('todos', { 4 | id: uuid('id').defaultRandom().primaryKey(), 5 | text: varchar('text', { length: 255 }).notNull(), 6 | createdAt: timestamp('created_at').defaultNow().notNull(), 7 | updatedAt: timestamp('updated_at').defaultNow().notNull(), 8 | }); 9 | -------------------------------------------------------------------------------- /lib/db/seed.ts: -------------------------------------------------------------------------------- 1 | import { db } from './drizzle'; 2 | import { todos } from './schema'; 3 | import { seed } from 'drizzle-seed'; 4 | 5 | async function main() { 6 | await seed(db, { todos }).refine((f) => ({ 7 | todos: { 8 | columns: { 9 | text: f.loremIpsum(), 10 | }, 11 | count: 5, 12 | }, 13 | })); 14 | process.exit(); 15 | } 16 | 17 | main(); 18 | -------------------------------------------------------------------------------- /lib/db/migrate.ts: -------------------------------------------------------------------------------- 1 | import dotenv from 'dotenv'; 2 | import path from 'path'; 3 | import { migrate } from 'drizzle-orm/postgres-js/migrator'; 4 | import { client, db } from './drizzle'; 5 | 6 | dotenv.config(); 7 | 8 | async function main() { 9 | await migrate(db, { 10 | migrationsFolder: path.join(process.cwd(), '/lib/db/migrations'), 11 | }); 12 | console.log(`Migrations complete`); 13 | await client.end(); 14 | } 15 | 16 | main(); 17 | -------------------------------------------------------------------------------- /lib/db/queries.ts: -------------------------------------------------------------------------------- 1 | import { db } from './drizzle'; 2 | import { todos } from './schema'; 3 | import { InferSelectModel } from 'drizzle-orm'; 4 | 5 | export type Todo = InferSelectModel; 6 | 7 | export async function getTodos() { 8 | return db 9 | .select({ 10 | id: todos.id, 11 | text: todos.text, 12 | createdAt: todos.createdAt, 13 | updatedAt: todos.updatedAt, 14 | }) 15 | .from(todos); 16 | } 17 | -------------------------------------------------------------------------------- /.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 29 | .env* 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | .vscode 38 | -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- 1 | import { getTodos } from '@/lib/db/queries'; 2 | import TodoList from './todo-list'; 3 | 4 | export const dynamic = 'force-dynamic'; 5 | 6 | export default async function Home() { 7 | const todos = await getTodos(); 8 | 9 | return ( 10 |
11 |
12 |

13 | Postgres Starter 14 |

15 | 16 |
17 |
18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from 'next'; 2 | import { Geist_Mono } from 'next/font/google'; 3 | import './globals.css'; 4 | 5 | const geistMono = Geist_Mono({ subsets: ['latin'] }); 6 | 7 | export const metadata: Metadata = { 8 | title: 'Todo List', 9 | description: 'A simple todo list application', 10 | }; 11 | 12 | export default function RootLayout({ 13 | children, 14 | }: { 15 | children: React.ReactNode; 16 | }) { 17 | return ( 18 | 19 | 20 | {children} 21 | 22 | 23 | ); 24 | } 25 | -------------------------------------------------------------------------------- /app/actions.ts: -------------------------------------------------------------------------------- 1 | 'use server'; 2 | 3 | import { revalidatePath } from 'next/cache'; 4 | import { eq } from 'drizzle-orm'; 5 | import { db } from '@/lib/db/drizzle'; 6 | import { todos } from '@/lib/db/schema'; 7 | 8 | export async function addTodo(_: any, formData: FormData) { 9 | const text = formData.get('todo') as string; 10 | 11 | if (text.trim()) { 12 | await db.insert(todos).values({ text }); 13 | revalidatePath('/'); 14 | return { message: 'Todo added successfully', input: '' }; 15 | } 16 | 17 | return { message: 'Todo cannot be empty', input: text }; 18 | } 19 | 20 | export async function deleteTodo(_: any, formData: FormData) { 21 | const id = formData.get('id') as string; 22 | 23 | await db.delete(todos).where(eq(todos.id, id)); 24 | 25 | revalidatePath('/'); 26 | return { message: 'Todo deleted successfully' }; 27 | } 28 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "strict": true, 12 | "noEmit": true, 13 | "esModuleInterop": true, 14 | "module": "esnext", 15 | "moduleResolution": "bundler", 16 | "resolveJsonModule": true, 17 | "isolatedModules": true, 18 | "jsx": "react-jsx", 19 | "incremental": true, 20 | "baseUrl": ".", 21 | "plugins": [ 22 | { 23 | "name": "next" 24 | } 25 | ], 26 | "paths": { 27 | "@/*": [ 28 | "./*" 29 | ] 30 | } 31 | }, 32 | "include": [ 33 | "next-env.d.ts", 34 | "**/*.ts", 35 | "**/*.tsx", 36 | ".next/types/**/*.ts" 37 | ], 38 | "exclude": [ 39 | "node_modules" 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Next.js and Postgres Starter Template 2 | 3 | ## Tech Stack 4 | 5 | - **Framework**: [Next.js](https://nextjs.org/) 6 | - **Database**: [Postgres](https://www.postgresql.org/) 7 | - **ORM**: [Drizzle](https://orm.drizzle.team/) 8 | 9 | ## Getting Started 10 | 11 | ```bash 12 | git clone https://github.com/vercel/postgres-next-starter 13 | cd postgres-next-starter 14 | pnpm install 15 | ``` 16 | 17 | ## Running Locally 18 | 19 | Use the included setup script to create your `.env` file: 20 | 21 | ```bash 22 | pnpm db:setup 23 | ``` 24 | 25 | Then, run the database migrations and seed the database: 26 | 27 | ```bash 28 | pnpm db:generate 29 | pnpm db:migrate 30 | pnpm db:seed 31 | ``` 32 | 33 | Finally, run the Next.js development server: 34 | 35 | ```bash 36 | pnpm dev 37 | ``` 38 | 39 | Open [http://localhost:3000](http://localhost:3000) in your browser to see the app in action. 40 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "next dev --turbopack", 5 | "build": "next build", 6 | "start": "next start", 7 | "db:setup": "npx tsx lib/db/setup.ts", 8 | "db:seed": "npx tsx lib/db/seed.ts", 9 | "db:generate": "drizzle-kit generate", 10 | "db:migrate": "npx tsx lib/db/migrate.ts", 11 | "db:studio": "drizzle-kit studio" 12 | }, 13 | "dependencies": { 14 | "@tailwindcss/postcss": "4.0.0-beta.4", 15 | "@types/node": "^22.10.1", 16 | "@types/react": "npm:types-react@19.0.0-rc.1", 17 | "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", 18 | "dotenv": "^16.4.7", 19 | "drizzle-kit": "^0.28.1", 20 | "drizzle-orm": "^0.36.4", 21 | "drizzle-seed": "^0.1.2", 22 | "lucide-react": "^0.465.0", 23 | "next": "^15.6.0-canary.58", 24 | "postgres": "^3.4.5", 25 | "react": "19.0.0-rc-2d16326d-20240930", 26 | "react-dom": "19.0.0-rc-2d16326d-20240930", 27 | "tailwindcss": "4.0.0-beta.4", 28 | "typescript": "^5.7.2", 29 | "zod": "^3.23.8" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /lib/db/drizzle.ts: -------------------------------------------------------------------------------- 1 | import { drizzle } from 'drizzle-orm/postgres-js'; 2 | import postgres from 'postgres'; 3 | import * as schema from './schema'; 4 | import dotenv from 'dotenv'; 5 | 6 | dotenv.config(); 7 | 8 | let _client: ReturnType | null = null; 9 | let _db: ReturnType | null = null; 10 | 11 | function getClient() { 12 | if (!_client) { 13 | if (!process.env.POSTGRES_URL) { 14 | throw new Error('POSTGRES_URL environment variable is not set'); 15 | } 16 | _client = postgres(process.env.POSTGRES_URL); 17 | } 18 | return _client; 19 | } 20 | 21 | function getDb() { 22 | if (!_db) { 23 | _db = drizzle(getClient(), { schema }); 24 | } 25 | return _db; 26 | } 27 | 28 | export const client = new Proxy({} as ReturnType, { 29 | get(target, prop) { 30 | return getClient()[prop as keyof ReturnType]; 31 | } 32 | }); 33 | 34 | export const db = new Proxy({} as ReturnType, { 35 | get(target, prop) { 36 | return getDb()[prop as keyof ReturnType]; 37 | } 38 | }); 39 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2024 Vercel, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/db/migrations/meta/0000_snapshot.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "9038895f-cfe9-48b6-91dc-34962fbfe396", 3 | "prevId": "00000000-0000-0000-0000-000000000000", 4 | "version": "7", 5 | "dialect": "postgresql", 6 | "tables": { 7 | "public.todos": { 8 | "name": "todos", 9 | "schema": "", 10 | "columns": { 11 | "id": { 12 | "name": "id", 13 | "type": "uuid", 14 | "primaryKey": true, 15 | "notNull": true, 16 | "default": "gen_random_uuid()" 17 | }, 18 | "text": { 19 | "name": "text", 20 | "type": "varchar(255)", 21 | "primaryKey": false, 22 | "notNull": true 23 | }, 24 | "created_at": { 25 | "name": "created_at", 26 | "type": "timestamp", 27 | "primaryKey": false, 28 | "notNull": true, 29 | "default": "now()" 30 | }, 31 | "updated_at": { 32 | "name": "updated_at", 33 | "type": "timestamp", 34 | "primaryKey": false, 35 | "notNull": true, 36 | "default": "now()" 37 | } 38 | }, 39 | "indexes": {}, 40 | "foreignKeys": {}, 41 | "compositePrimaryKeys": {}, 42 | "uniqueConstraints": {}, 43 | "policies": {}, 44 | "checkConstraints": {}, 45 | "isRLSEnabled": false 46 | } 47 | }, 48 | "enums": {}, 49 | "schemas": {}, 50 | "sequences": {}, 51 | "roles": {}, 52 | "policies": {}, 53 | "views": {}, 54 | "_meta": { 55 | "columns": {}, 56 | "schemas": {}, 57 | "tables": {} 58 | } 59 | } -------------------------------------------------------------------------------- /app/todo-list.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { useActionState } from 'react'; 4 | import { addTodo, deleteTodo } from './actions'; 5 | import { Loader2, Plus, Trash2 } from 'lucide-react'; 6 | import { Todo } from '@/lib/db/queries'; 7 | 8 | export default function TodoList({ initialTodos }: { initialTodos: Todo[] }) { 9 | const [addState, addAction, isAddPending] = useActionState(addTodo, { 10 | input: '', 11 | message: '', 12 | }); 13 | const [_, deleteAction] = useActionState(deleteTodo, { 14 | message: '', 15 | }); 16 | 17 | return ( 18 |
19 |
20 | 27 | 38 |
39 | {addState.message && ( 40 |

{addState.message}

41 | )} 42 |
    43 | {initialTodos.map((todo) => ( 44 |
  • 48 | {todo.text} 49 |
    50 | 51 | 57 |
    58 |
  • 59 | ))} 60 |
61 |
62 | ); 63 | } 64 | -------------------------------------------------------------------------------- /lib/db/setup.ts: -------------------------------------------------------------------------------- 1 | import { exec } from 'node:child_process'; 2 | import { promises as fs } from 'node:fs'; 3 | import { promisify } from 'node:util'; 4 | import readline from 'node:readline'; 5 | import path from 'node:path'; 6 | 7 | const execAsync = promisify(exec); 8 | 9 | function question(query: string): Promise { 10 | const rl = readline.createInterface({ 11 | input: process.stdin, 12 | output: process.stdout, 13 | }); 14 | 15 | return new Promise((resolve) => 16 | rl.question(query, (ans) => { 17 | rl.close(); 18 | resolve(ans); 19 | }) 20 | ); 21 | } 22 | 23 | async function getPostgresURL(): Promise { 24 | console.log('Step 1: Setting up Postgres'); 25 | const dbChoice = await question( 26 | 'Do you want to use a local Postgres instance with Docker (L) or a remote Postgres instance (R)? (L/R): ' 27 | ); 28 | 29 | if (dbChoice.toLowerCase() === 'l') { 30 | console.log('Setting up local Postgres instance with Docker...'); 31 | await setupLocalPostgres(); 32 | return 'postgres://postgres:postgres@localhost:54322/postgres'; 33 | } else { 34 | console.log( 35 | 'You can find Postgres databases at: https://vercel.com/marketplace?category=databases' 36 | ); 37 | return await question('Enter your POSTGRES_URL: '); 38 | } 39 | } 40 | 41 | async function setupLocalPostgres() { 42 | console.log('Checking if Docker is installed...'); 43 | try { 44 | await execAsync('docker --version'); 45 | console.log('Docker is installed.'); 46 | } catch (error) { 47 | console.error( 48 | 'Docker is not installed. Please install Docker and try again.' 49 | ); 50 | console.log( 51 | 'To install Docker, visit: https://docs.docker.com/get-docker/' 52 | ); 53 | process.exit(1); 54 | } 55 | 56 | console.log('Creating docker-compose.yml file...'); 57 | const dockerComposeContent = ` 58 | services: 59 | postgres: 60 | image: postgres:16.4-alpine 61 | container_name: music_player_postgres 62 | environment: 63 | POSTGRES_DB: postgres 64 | POSTGRES_USER: postgres 65 | POSTGRES_PASSWORD: postgres 66 | ports: 67 | - "54322:5432" 68 | volumes: 69 | - postgres_data:/var/lib/postgresql/data 70 | 71 | volumes: 72 | postgres_data: 73 | `; 74 | 75 | await fs.writeFile( 76 | path.join(process.cwd(), 'docker-compose.yml'), 77 | dockerComposeContent 78 | ); 79 | console.log('docker-compose.yml file created.'); 80 | 81 | console.log('Starting Docker container with `docker compose up -d`...'); 82 | try { 83 | await execAsync('docker compose up -d'); 84 | console.log('Docker container started successfully.'); 85 | } catch (error) { 86 | console.error( 87 | 'Failed to start Docker container. Please check your Docker installation and try again.' 88 | ); 89 | process.exit(1); 90 | } 91 | } 92 | 93 | async function writeEnvFile(envVars: Record) { 94 | console.log('Step 3: Writing environment variables to .env'); 95 | const envContent = Object.entries(envVars) 96 | .map(([key, value]) => `${key}=${value}`) 97 | .join('\n'); 98 | 99 | await fs.writeFile(path.join(process.cwd(), '.env'), envContent); 100 | console.log('.env file created with the necessary variables.'); 101 | } 102 | 103 | async function main() { 104 | const POSTGRES_URL = await getPostgresURL(); 105 | 106 | await writeEnvFile({ 107 | POSTGRES_URL, 108 | }); 109 | 110 | console.log('🎉 Setup completed successfully!'); 111 | } 112 | 113 | main().catch(console.error); 114 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@tailwindcss/postcss': 12 | specifier: 4.0.0-beta.4 13 | version: 4.0.0-beta.4 14 | '@types/node': 15 | specifier: ^22.10.1 16 | version: 22.10.1 17 | '@types/react': 18 | specifier: npm:types-react@19.0.0-rc.1 19 | version: types-react@19.0.0-rc.1 20 | '@types/react-dom': 21 | specifier: npm:types-react-dom@19.0.0-rc.1 22 | version: types-react-dom@19.0.0-rc.1 23 | dotenv: 24 | specifier: ^16.4.7 25 | version: 16.4.7 26 | drizzle-kit: 27 | specifier: ^0.28.1 28 | version: 0.28.1 29 | drizzle-orm: 30 | specifier: ^0.36.4 31 | version: 0.36.4(postgres@3.4.5)(react@19.0.0-rc-2d16326d-20240930)(types-react@19.0.0-rc.1) 32 | drizzle-seed: 33 | specifier: ^0.1.2 34 | version: 0.1.2(drizzle-orm@0.36.4(postgres@3.4.5)(react@19.0.0-rc-2d16326d-20240930)(types-react@19.0.0-rc.1)) 35 | lucide-react: 36 | specifier: ^0.465.0 37 | version: 0.465.0(react@19.0.0-rc-2d16326d-20240930) 38 | next: 39 | specifier: ^15.6.0-canary.58 40 | version: 15.6.0-canary.58(react-dom@19.0.0-rc-2d16326d-20240930(react@19.0.0-rc-2d16326d-20240930))(react@19.0.0-rc-2d16326d-20240930) 41 | postgres: 42 | specifier: ^3.4.5 43 | version: 3.4.5 44 | react: 45 | specifier: 19.0.0-rc-2d16326d-20240930 46 | version: 19.0.0-rc-2d16326d-20240930 47 | react-dom: 48 | specifier: 19.0.0-rc-2d16326d-20240930 49 | version: 19.0.0-rc-2d16326d-20240930(react@19.0.0-rc-2d16326d-20240930) 50 | tailwindcss: 51 | specifier: 4.0.0-beta.4 52 | version: 4.0.0-beta.4 53 | typescript: 54 | specifier: ^5.7.2 55 | version: 5.7.2 56 | zod: 57 | specifier: ^3.23.8 58 | version: 3.23.8 59 | 60 | packages: 61 | 62 | '@alloc/quick-lru@5.2.0': 63 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 64 | engines: {node: '>=10'} 65 | 66 | '@drizzle-team/brocli@0.10.2': 67 | resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} 68 | 69 | '@emnapi/runtime@1.7.1': 70 | resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} 71 | 72 | '@esbuild-kit/core-utils@3.3.2': 73 | resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} 74 | deprecated: 'Merged into tsx: https://tsx.is' 75 | 76 | '@esbuild-kit/esm-loader@2.6.5': 77 | resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} 78 | deprecated: 'Merged into tsx: https://tsx.is' 79 | 80 | '@esbuild/aix-ppc64@0.19.12': 81 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 82 | engines: {node: '>=12'} 83 | cpu: [ppc64] 84 | os: [aix] 85 | 86 | '@esbuild/android-arm64@0.18.20': 87 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 88 | engines: {node: '>=12'} 89 | cpu: [arm64] 90 | os: [android] 91 | 92 | '@esbuild/android-arm64@0.19.12': 93 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 94 | engines: {node: '>=12'} 95 | cpu: [arm64] 96 | os: [android] 97 | 98 | '@esbuild/android-arm@0.18.20': 99 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 100 | engines: {node: '>=12'} 101 | cpu: [arm] 102 | os: [android] 103 | 104 | '@esbuild/android-arm@0.19.12': 105 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 106 | engines: {node: '>=12'} 107 | cpu: [arm] 108 | os: [android] 109 | 110 | '@esbuild/android-x64@0.18.20': 111 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 112 | engines: {node: '>=12'} 113 | cpu: [x64] 114 | os: [android] 115 | 116 | '@esbuild/android-x64@0.19.12': 117 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 118 | engines: {node: '>=12'} 119 | cpu: [x64] 120 | os: [android] 121 | 122 | '@esbuild/darwin-arm64@0.18.20': 123 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 124 | engines: {node: '>=12'} 125 | cpu: [arm64] 126 | os: [darwin] 127 | 128 | '@esbuild/darwin-arm64@0.19.12': 129 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 130 | engines: {node: '>=12'} 131 | cpu: [arm64] 132 | os: [darwin] 133 | 134 | '@esbuild/darwin-x64@0.18.20': 135 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 136 | engines: {node: '>=12'} 137 | cpu: [x64] 138 | os: [darwin] 139 | 140 | '@esbuild/darwin-x64@0.19.12': 141 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 142 | engines: {node: '>=12'} 143 | cpu: [x64] 144 | os: [darwin] 145 | 146 | '@esbuild/freebsd-arm64@0.18.20': 147 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 148 | engines: {node: '>=12'} 149 | cpu: [arm64] 150 | os: [freebsd] 151 | 152 | '@esbuild/freebsd-arm64@0.19.12': 153 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 154 | engines: {node: '>=12'} 155 | cpu: [arm64] 156 | os: [freebsd] 157 | 158 | '@esbuild/freebsd-x64@0.18.20': 159 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 160 | engines: {node: '>=12'} 161 | cpu: [x64] 162 | os: [freebsd] 163 | 164 | '@esbuild/freebsd-x64@0.19.12': 165 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 166 | engines: {node: '>=12'} 167 | cpu: [x64] 168 | os: [freebsd] 169 | 170 | '@esbuild/linux-arm64@0.18.20': 171 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 172 | engines: {node: '>=12'} 173 | cpu: [arm64] 174 | os: [linux] 175 | 176 | '@esbuild/linux-arm64@0.19.12': 177 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 178 | engines: {node: '>=12'} 179 | cpu: [arm64] 180 | os: [linux] 181 | 182 | '@esbuild/linux-arm@0.18.20': 183 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 184 | engines: {node: '>=12'} 185 | cpu: [arm] 186 | os: [linux] 187 | 188 | '@esbuild/linux-arm@0.19.12': 189 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 190 | engines: {node: '>=12'} 191 | cpu: [arm] 192 | os: [linux] 193 | 194 | '@esbuild/linux-ia32@0.18.20': 195 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 196 | engines: {node: '>=12'} 197 | cpu: [ia32] 198 | os: [linux] 199 | 200 | '@esbuild/linux-ia32@0.19.12': 201 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 202 | engines: {node: '>=12'} 203 | cpu: [ia32] 204 | os: [linux] 205 | 206 | '@esbuild/linux-loong64@0.18.20': 207 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 208 | engines: {node: '>=12'} 209 | cpu: [loong64] 210 | os: [linux] 211 | 212 | '@esbuild/linux-loong64@0.19.12': 213 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 214 | engines: {node: '>=12'} 215 | cpu: [loong64] 216 | os: [linux] 217 | 218 | '@esbuild/linux-mips64el@0.18.20': 219 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 220 | engines: {node: '>=12'} 221 | cpu: [mips64el] 222 | os: [linux] 223 | 224 | '@esbuild/linux-mips64el@0.19.12': 225 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 226 | engines: {node: '>=12'} 227 | cpu: [mips64el] 228 | os: [linux] 229 | 230 | '@esbuild/linux-ppc64@0.18.20': 231 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 232 | engines: {node: '>=12'} 233 | cpu: [ppc64] 234 | os: [linux] 235 | 236 | '@esbuild/linux-ppc64@0.19.12': 237 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 238 | engines: {node: '>=12'} 239 | cpu: [ppc64] 240 | os: [linux] 241 | 242 | '@esbuild/linux-riscv64@0.18.20': 243 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 244 | engines: {node: '>=12'} 245 | cpu: [riscv64] 246 | os: [linux] 247 | 248 | '@esbuild/linux-riscv64@0.19.12': 249 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 250 | engines: {node: '>=12'} 251 | cpu: [riscv64] 252 | os: [linux] 253 | 254 | '@esbuild/linux-s390x@0.18.20': 255 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 256 | engines: {node: '>=12'} 257 | cpu: [s390x] 258 | os: [linux] 259 | 260 | '@esbuild/linux-s390x@0.19.12': 261 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 262 | engines: {node: '>=12'} 263 | cpu: [s390x] 264 | os: [linux] 265 | 266 | '@esbuild/linux-x64@0.18.20': 267 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 268 | engines: {node: '>=12'} 269 | cpu: [x64] 270 | os: [linux] 271 | 272 | '@esbuild/linux-x64@0.19.12': 273 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 274 | engines: {node: '>=12'} 275 | cpu: [x64] 276 | os: [linux] 277 | 278 | '@esbuild/netbsd-x64@0.18.20': 279 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 280 | engines: {node: '>=12'} 281 | cpu: [x64] 282 | os: [netbsd] 283 | 284 | '@esbuild/netbsd-x64@0.19.12': 285 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 286 | engines: {node: '>=12'} 287 | cpu: [x64] 288 | os: [netbsd] 289 | 290 | '@esbuild/openbsd-x64@0.18.20': 291 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 292 | engines: {node: '>=12'} 293 | cpu: [x64] 294 | os: [openbsd] 295 | 296 | '@esbuild/openbsd-x64@0.19.12': 297 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 298 | engines: {node: '>=12'} 299 | cpu: [x64] 300 | os: [openbsd] 301 | 302 | '@esbuild/sunos-x64@0.18.20': 303 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 304 | engines: {node: '>=12'} 305 | cpu: [x64] 306 | os: [sunos] 307 | 308 | '@esbuild/sunos-x64@0.19.12': 309 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 310 | engines: {node: '>=12'} 311 | cpu: [x64] 312 | os: [sunos] 313 | 314 | '@esbuild/win32-arm64@0.18.20': 315 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 316 | engines: {node: '>=12'} 317 | cpu: [arm64] 318 | os: [win32] 319 | 320 | '@esbuild/win32-arm64@0.19.12': 321 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 322 | engines: {node: '>=12'} 323 | cpu: [arm64] 324 | os: [win32] 325 | 326 | '@esbuild/win32-ia32@0.18.20': 327 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 328 | engines: {node: '>=12'} 329 | cpu: [ia32] 330 | os: [win32] 331 | 332 | '@esbuild/win32-ia32@0.19.12': 333 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 334 | engines: {node: '>=12'} 335 | cpu: [ia32] 336 | os: [win32] 337 | 338 | '@esbuild/win32-x64@0.18.20': 339 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 340 | engines: {node: '>=12'} 341 | cpu: [x64] 342 | os: [win32] 343 | 344 | '@esbuild/win32-x64@0.19.12': 345 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 346 | engines: {node: '>=12'} 347 | cpu: [x64] 348 | os: [win32] 349 | 350 | '@img/colour@1.0.0': 351 | resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} 352 | engines: {node: '>=18'} 353 | 354 | '@img/sharp-darwin-arm64@0.34.5': 355 | resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} 356 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 357 | cpu: [arm64] 358 | os: [darwin] 359 | 360 | '@img/sharp-darwin-x64@0.34.5': 361 | resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} 362 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 363 | cpu: [x64] 364 | os: [darwin] 365 | 366 | '@img/sharp-libvips-darwin-arm64@1.2.4': 367 | resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} 368 | cpu: [arm64] 369 | os: [darwin] 370 | 371 | '@img/sharp-libvips-darwin-x64@1.2.4': 372 | resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} 373 | cpu: [x64] 374 | os: [darwin] 375 | 376 | '@img/sharp-libvips-linux-arm64@1.2.4': 377 | resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} 378 | cpu: [arm64] 379 | os: [linux] 380 | 381 | '@img/sharp-libvips-linux-arm@1.2.4': 382 | resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} 383 | cpu: [arm] 384 | os: [linux] 385 | 386 | '@img/sharp-libvips-linux-ppc64@1.2.4': 387 | resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} 388 | cpu: [ppc64] 389 | os: [linux] 390 | 391 | '@img/sharp-libvips-linux-riscv64@1.2.4': 392 | resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} 393 | cpu: [riscv64] 394 | os: [linux] 395 | 396 | '@img/sharp-libvips-linux-s390x@1.2.4': 397 | resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} 398 | cpu: [s390x] 399 | os: [linux] 400 | 401 | '@img/sharp-libvips-linux-x64@1.2.4': 402 | resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} 403 | cpu: [x64] 404 | os: [linux] 405 | 406 | '@img/sharp-libvips-linuxmusl-arm64@1.2.4': 407 | resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} 408 | cpu: [arm64] 409 | os: [linux] 410 | 411 | '@img/sharp-libvips-linuxmusl-x64@1.2.4': 412 | resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} 413 | cpu: [x64] 414 | os: [linux] 415 | 416 | '@img/sharp-linux-arm64@0.34.5': 417 | resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} 418 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 419 | cpu: [arm64] 420 | os: [linux] 421 | 422 | '@img/sharp-linux-arm@0.34.5': 423 | resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} 424 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 425 | cpu: [arm] 426 | os: [linux] 427 | 428 | '@img/sharp-linux-ppc64@0.34.5': 429 | resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} 430 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 431 | cpu: [ppc64] 432 | os: [linux] 433 | 434 | '@img/sharp-linux-riscv64@0.34.5': 435 | resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} 436 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 437 | cpu: [riscv64] 438 | os: [linux] 439 | 440 | '@img/sharp-linux-s390x@0.34.5': 441 | resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} 442 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 443 | cpu: [s390x] 444 | os: [linux] 445 | 446 | '@img/sharp-linux-x64@0.34.5': 447 | resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} 448 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 449 | cpu: [x64] 450 | os: [linux] 451 | 452 | '@img/sharp-linuxmusl-arm64@0.34.5': 453 | resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} 454 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 455 | cpu: [arm64] 456 | os: [linux] 457 | 458 | '@img/sharp-linuxmusl-x64@0.34.5': 459 | resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} 460 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 461 | cpu: [x64] 462 | os: [linux] 463 | 464 | '@img/sharp-wasm32@0.34.5': 465 | resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} 466 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 467 | cpu: [wasm32] 468 | 469 | '@img/sharp-win32-arm64@0.34.5': 470 | resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} 471 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 472 | cpu: [arm64] 473 | os: [win32] 474 | 475 | '@img/sharp-win32-ia32@0.34.5': 476 | resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} 477 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 478 | cpu: [ia32] 479 | os: [win32] 480 | 481 | '@img/sharp-win32-x64@0.34.5': 482 | resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} 483 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 484 | cpu: [x64] 485 | os: [win32] 486 | 487 | '@next/env@15.6.0-canary.58': 488 | resolution: {integrity: sha512-JyYhiCaCYgLfs3a195cncgUfyATTvtIpK2L9wpka4JdJ/Cn58LxO2WRQysmWYXWjuCTgE9n4vjWDAJcWmRisiw==} 489 | 490 | '@next/swc-darwin-arm64@15.6.0-canary.58': 491 | resolution: {integrity: sha512-jGawwiKITJHOH8dSbTqfjVvCf+DesljZhtvh9LKCrO+1octLlGyDAbEQw5WEzrXCch5LWrdSqPyKft0/9LeniA==} 492 | engines: {node: '>= 10'} 493 | cpu: [arm64] 494 | os: [darwin] 495 | 496 | '@next/swc-darwin-x64@15.6.0-canary.58': 497 | resolution: {integrity: sha512-iD15Eav7Y7lQOCFvsPf9NMwo3dFrHZMX4wghrEysLuwOEJC9zM0jOSb1hdSqZwf1Odn86CIiJUvXH1UcfAm6og==} 498 | engines: {node: '>= 10'} 499 | cpu: [x64] 500 | os: [darwin] 501 | 502 | '@next/swc-linux-arm64-gnu@15.6.0-canary.58': 503 | resolution: {integrity: sha512-b8ayBG/wrycIilOFP/zU6yPQI8UVMtrQfowNaoCvG7FIuu5Fpa7MwPEGWXPyvwn2qQM5fDSsVGQOrjQ6gWLTbA==} 504 | engines: {node: '>= 10'} 505 | cpu: [arm64] 506 | os: [linux] 507 | 508 | '@next/swc-linux-arm64-musl@15.6.0-canary.58': 509 | resolution: {integrity: sha512-KMYPUdBTAITdgxRNjMKdG85bHsn3wu0KWPV2nftoov2/dVs5eFJ47w+m4upPdTgBXRAHY50OvS/nzf5mN/TXeQ==} 510 | engines: {node: '>= 10'} 511 | cpu: [arm64] 512 | os: [linux] 513 | 514 | '@next/swc-linux-x64-gnu@15.6.0-canary.58': 515 | resolution: {integrity: sha512-myknT/if7wuwss0B/1Le7ymlN0Zr/DsfGji8b+XcqeFhoy1GxQerfTlrsblZTB6EIPIex1QPRUbpIcy+N9Qfpw==} 516 | engines: {node: '>= 10'} 517 | cpu: [x64] 518 | os: [linux] 519 | 520 | '@next/swc-linux-x64-musl@15.6.0-canary.58': 521 | resolution: {integrity: sha512-3A1YLtmuot0pnZqDHV2iAfUrvQS0zp7xXUlqNb8flAJAu1Civ+2qt94l0kTfUjWHtFFUENyt2yEcXEqxuxEJfg==} 522 | engines: {node: '>= 10'} 523 | cpu: [x64] 524 | os: [linux] 525 | 526 | '@next/swc-win32-arm64-msvc@15.6.0-canary.58': 527 | resolution: {integrity: sha512-3hkMBi/Zbatqi9vwnh1zuOWQerS4CtUptn9cj4NRtVAJurzhfQBwz8RJIq/5f85XDkq0LxDrhyABZ+6RU7Un7Q==} 528 | engines: {node: '>= 10'} 529 | cpu: [arm64] 530 | os: [win32] 531 | 532 | '@next/swc-win32-x64-msvc@15.6.0-canary.58': 533 | resolution: {integrity: sha512-CFB6BzqgYJ7yJvoji0KD5nWf88JN5/iliiLn/kfzxUMvfaKmoYLrGZwRuePrAwLdBpczEsgcmuER6YuT9/pZLw==} 534 | engines: {node: '>= 10'} 535 | cpu: [x64] 536 | os: [win32] 537 | 538 | '@swc/helpers@0.5.15': 539 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 540 | 541 | '@tailwindcss/node@4.0.0-beta.4': 542 | resolution: {integrity: sha512-NAPhQ6BcjXUqI+QFtzYHTcoqX4ACGNZl69NfMIDCCTvmPZ761sdvX8cy3LyeJEZDyfyoBT5vzjzfWeNZR7Y+KA==} 543 | 544 | '@tailwindcss/oxide-android-arm64@4.0.0-beta.4': 545 | resolution: {integrity: sha512-r/MBScgeBZXE1xkZ+mw8/QybAlTOEzSJ6Jo9W9YCaqy+6S0Iaeo6CmwOPBrtX4/nlHm/v3hcmQWnaeJDQJMkTg==} 546 | engines: {node: '>= 10'} 547 | cpu: [arm64] 548 | os: [android] 549 | 550 | '@tailwindcss/oxide-darwin-arm64@4.0.0-beta.4': 551 | resolution: {integrity: sha512-snm+1FmjU59X/2kCgryBlbGYEwJ945cC48XkN78pZIxYn/V7LNukGvDlIKgVJ6GxU4iiac7pk149ZyFZ7Ukj4Q==} 552 | engines: {node: '>= 10'} 553 | cpu: [arm64] 554 | os: [darwin] 555 | 556 | '@tailwindcss/oxide-darwin-x64@4.0.0-beta.4': 557 | resolution: {integrity: sha512-BRbp+1WSExBCHnBK3EmTmmweM04UhpegOjjQbWDADrklhNU7juYNiu/4RN7A74ndweeopKuYB8gvMrdGlAEeuA==} 558 | engines: {node: '>= 10'} 559 | cpu: [x64] 560 | os: [darwin] 561 | 562 | '@tailwindcss/oxide-freebsd-x64@4.0.0-beta.4': 563 | resolution: {integrity: sha512-HO6cclVvp1JueqleUfYpLFK41lnI/5/oqwkftZQ5LNF0fwp8sQm2cEh7GTCj2hwTIUnHbxmSmrg1MZL1/yoVgA==} 564 | engines: {node: '>= 10'} 565 | cpu: [x64] 566 | os: [freebsd] 567 | 568 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0-beta.4': 569 | resolution: {integrity: sha512-Z6xUcakkJZGySTce0QqfbNdLRK4cUNmilvDd69q+8Ep+Vxqy+x5bkCweAf7b+lJsUe6mjclT2EP1ouMvqegnQQ==} 570 | engines: {node: '>= 10'} 571 | cpu: [arm] 572 | os: [linux] 573 | 574 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.0-beta.4': 575 | resolution: {integrity: sha512-hr9AbxrsAXWjZp8iIcQes7eIfMnSgUS6qA/SbcxFfvmte/BHUSuSxa21OZpFRVYFcQ/BIqLA1hU27fvfZZq4JQ==} 576 | engines: {node: '>= 10'} 577 | cpu: [arm64] 578 | os: [linux] 579 | 580 | '@tailwindcss/oxide-linux-arm64-musl@4.0.0-beta.4': 581 | resolution: {integrity: sha512-b//iI94Eo29LqzAOBfFt1m3bM1CF9NU3K59o3ikAwM6kdxmPQoc7TBpcrEh3lKomJ1Ejj0M95022YqksY7O8gQ==} 582 | engines: {node: '>= 10'} 583 | cpu: [arm64] 584 | os: [linux] 585 | 586 | '@tailwindcss/oxide-linux-x64-gnu@4.0.0-beta.4': 587 | resolution: {integrity: sha512-xqK6amSCZpEpWbuN0WYDlaOir7n2NjD2jtnVZ5eWpnw4kkjzu0kmVqN9PaWdejZUKVfvEy7Ldbmcos9MpQhi4g==} 588 | engines: {node: '>= 10'} 589 | cpu: [x64] 590 | os: [linux] 591 | 592 | '@tailwindcss/oxide-linux-x64-musl@4.0.0-beta.4': 593 | resolution: {integrity: sha512-9V3CtBJ+oBxeppvBUvfZ2NbsrgKkLDIVrF4jUcpj3Md4rdpW6mIRWxqzEY1uT9JZlFr4YmVx6Auax+32BUtD2A==} 594 | engines: {node: '>= 10'} 595 | cpu: [x64] 596 | os: [linux] 597 | 598 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.0-beta.4': 599 | resolution: {integrity: sha512-MYfGNg1nikym/F2aCx0ni5ZWKsChVwWTsjgmDo9ZOiqhWE/7yeX0Ej+lugEh4gPHyUpcMbeTZySZx0OJ8o+X1Q==} 600 | engines: {node: '>= 10'} 601 | cpu: [arm64] 602 | os: [win32] 603 | 604 | '@tailwindcss/oxide-win32-x64-msvc@4.0.0-beta.4': 605 | resolution: {integrity: sha512-hCMihksJD5odhAm+SLFNk75etPRK+QjyMIPMryUI7na6kvB8OaTH4gRBIO27GvRk2q1Zm2sqn4JoYy2auuoAAA==} 606 | engines: {node: '>= 10'} 607 | cpu: [x64] 608 | os: [win32] 609 | 610 | '@tailwindcss/oxide@4.0.0-beta.4': 611 | resolution: {integrity: sha512-yYZ069LXAEOrQt3SwYV+PhwsGBM0qo7ofsOF5BDrju9Nsz+X0z9NCF9fvc6zJ11wX1bSVuiyLbwIS4P9rVT8hg==} 612 | engines: {node: '>= 10'} 613 | 614 | '@tailwindcss/postcss@4.0.0-beta.4': 615 | resolution: {integrity: sha512-nZZKXG/SRf4+8udSThSMbCduQRen60kWtlkxwLUNpKlJWBkWF7vy/ybJzfgCXwEFxBLuNsnm89o42I3XoifAIw==} 616 | 617 | '@types/node@22.10.1': 618 | resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} 619 | 620 | '@types/prop-types@15.7.13': 621 | resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} 622 | 623 | '@types/react@18.3.12': 624 | resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} 625 | 626 | buffer-from@1.1.2: 627 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 628 | 629 | caniuse-lite@1.0.30001686: 630 | resolution: {integrity: sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==} 631 | 632 | client-only@0.0.1: 633 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 634 | 635 | csstype@3.1.3: 636 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 637 | 638 | debug@4.3.7: 639 | resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} 640 | engines: {node: '>=6.0'} 641 | peerDependencies: 642 | supports-color: '*' 643 | peerDependenciesMeta: 644 | supports-color: 645 | optional: true 646 | 647 | detect-libc@1.0.3: 648 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} 649 | engines: {node: '>=0.10'} 650 | hasBin: true 651 | 652 | detect-libc@2.1.2: 653 | resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 654 | engines: {node: '>=8'} 655 | 656 | dotenv@16.4.7: 657 | resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} 658 | engines: {node: '>=12'} 659 | 660 | drizzle-kit@0.28.1: 661 | resolution: {integrity: sha512-JimOV+ystXTWMgZkLHYHf2w3oS28hxiH1FR0dkmJLc7GHzdGJoJAQtQS5DRppnabsRZwE2U1F6CuezVBgmsBBQ==} 662 | hasBin: true 663 | 664 | drizzle-orm@0.36.4: 665 | resolution: {integrity: sha512-1OZY3PXD7BR00Gl61UUOFihslDldfH4NFRH2MbP54Yxi0G/PKn4HfO65JYZ7c16DeP3SpM3Aw+VXVG9j6CRSXA==} 666 | peerDependencies: 667 | '@aws-sdk/client-rds-data': '>=3' 668 | '@cloudflare/workers-types': '>=3' 669 | '@electric-sql/pglite': '>=0.2.0' 670 | '@libsql/client': '>=0.10.0' 671 | '@libsql/client-wasm': '>=0.10.0' 672 | '@neondatabase/serverless': '>=0.10.0' 673 | '@op-engineering/op-sqlite': '>=2' 674 | '@opentelemetry/api': ^1.4.1 675 | '@planetscale/database': '>=1' 676 | '@prisma/client': '*' 677 | '@tidbcloud/serverless': '*' 678 | '@types/better-sqlite3': '*' 679 | '@types/pg': '*' 680 | '@types/react': '>=18' 681 | '@types/sql.js': '*' 682 | '@vercel/postgres': '>=0.8.0' 683 | '@xata.io/client': '*' 684 | better-sqlite3: '>=7' 685 | bun-types: '*' 686 | expo-sqlite: '>=14.0.0' 687 | knex: '*' 688 | kysely: '*' 689 | mysql2: '>=2' 690 | pg: '>=8' 691 | postgres: '>=3' 692 | prisma: '*' 693 | react: '>=18' 694 | sql.js: '>=1' 695 | sqlite3: '>=5' 696 | peerDependenciesMeta: 697 | '@aws-sdk/client-rds-data': 698 | optional: true 699 | '@cloudflare/workers-types': 700 | optional: true 701 | '@electric-sql/pglite': 702 | optional: true 703 | '@libsql/client': 704 | optional: true 705 | '@libsql/client-wasm': 706 | optional: true 707 | '@neondatabase/serverless': 708 | optional: true 709 | '@op-engineering/op-sqlite': 710 | optional: true 711 | '@opentelemetry/api': 712 | optional: true 713 | '@planetscale/database': 714 | optional: true 715 | '@prisma/client': 716 | optional: true 717 | '@tidbcloud/serverless': 718 | optional: true 719 | '@types/better-sqlite3': 720 | optional: true 721 | '@types/pg': 722 | optional: true 723 | '@types/react': 724 | optional: true 725 | '@types/sql.js': 726 | optional: true 727 | '@vercel/postgres': 728 | optional: true 729 | '@xata.io/client': 730 | optional: true 731 | better-sqlite3: 732 | optional: true 733 | bun-types: 734 | optional: true 735 | expo-sqlite: 736 | optional: true 737 | knex: 738 | optional: true 739 | kysely: 740 | optional: true 741 | mysql2: 742 | optional: true 743 | pg: 744 | optional: true 745 | postgres: 746 | optional: true 747 | prisma: 748 | optional: true 749 | react: 750 | optional: true 751 | sql.js: 752 | optional: true 753 | sqlite3: 754 | optional: true 755 | 756 | drizzle-seed@0.1.2: 757 | resolution: {integrity: sha512-F7+1tK/f5SHXK75ISH1zKUZWslW18dr9gbYB9tQHx7t5Wm82481OE5HGKFIjWuGV1VS0eFVr7+uXl8PFwPJjPA==} 758 | peerDependencies: 759 | drizzle-orm: '>=0.36.4' 760 | peerDependenciesMeta: 761 | drizzle-orm: 762 | optional: true 763 | 764 | enhanced-resolve@5.17.1: 765 | resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} 766 | engines: {node: '>=10.13.0'} 767 | 768 | esbuild-register@3.6.0: 769 | resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} 770 | peerDependencies: 771 | esbuild: '>=0.12 <1' 772 | 773 | esbuild@0.18.20: 774 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 775 | engines: {node: '>=12'} 776 | hasBin: true 777 | 778 | esbuild@0.19.12: 779 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 780 | engines: {node: '>=12'} 781 | hasBin: true 782 | 783 | get-tsconfig@4.8.1: 784 | resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} 785 | 786 | graceful-fs@4.2.11: 787 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 788 | 789 | jiti@2.4.1: 790 | resolution: {integrity: sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==} 791 | hasBin: true 792 | 793 | lightningcss-darwin-arm64@1.28.2: 794 | resolution: {integrity: sha512-/8cPSqZiusHSS+WQz0W4NuaqFjquys1x+NsdN/XOHb+idGHJSoJ7SoQTVl3DZuAgtPZwFZgRfb/vd1oi8uX6+g==} 795 | engines: {node: '>= 12.0.0'} 796 | cpu: [arm64] 797 | os: [darwin] 798 | 799 | lightningcss-darwin-x64@1.28.2: 800 | resolution: {integrity: sha512-R7sFrXlgKjvoEG8umpVt/yutjxOL0z8KWf0bfPT3cYMOW4470xu5qSHpFdIOpRWwl3FKNMUdbKtMUjYt0h2j4g==} 801 | engines: {node: '>= 12.0.0'} 802 | cpu: [x64] 803 | os: [darwin] 804 | 805 | lightningcss-freebsd-x64@1.28.2: 806 | resolution: {integrity: sha512-l2qrCT+x7crAY+lMIxtgvV10R8VurzHAoUZJaVFSlHrN8kRLTvEg9ObojIDIexqWJQvJcVVV3vfzsEynpiuvgA==} 807 | engines: {node: '>= 12.0.0'} 808 | cpu: [x64] 809 | os: [freebsd] 810 | 811 | lightningcss-linux-arm-gnueabihf@1.28.2: 812 | resolution: {integrity: sha512-DKMzpICBEKnL53X14rF7hFDu8KKALUJtcKdFUCW5YOlGSiwRSgVoRjM97wUm/E0NMPkzrTi/rxfvt7ruNK8meg==} 813 | engines: {node: '>= 12.0.0'} 814 | cpu: [arm] 815 | os: [linux] 816 | 817 | lightningcss-linux-arm64-gnu@1.28.2: 818 | resolution: {integrity: sha512-nhfjYkfymWZSxdtTNMWyhFk2ImUm0X7NAgJWFwnsYPOfmtWQEapzG/DXZTfEfMjSzERNUNJoQjPAbdqgB+sjiw==} 819 | engines: {node: '>= 12.0.0'} 820 | cpu: [arm64] 821 | os: [linux] 822 | 823 | lightningcss-linux-arm64-musl@1.28.2: 824 | resolution: {integrity: sha512-1SPG1ZTNnphWvAv8RVOymlZ8BDtAg69Hbo7n4QxARvkFVCJAt0cgjAw1Fox0WEhf4PwnyoOBaVH0Z5YNgzt4dA==} 825 | engines: {node: '>= 12.0.0'} 826 | cpu: [arm64] 827 | os: [linux] 828 | 829 | lightningcss-linux-x64-gnu@1.28.2: 830 | resolution: {integrity: sha512-ZhQy0FcO//INWUdo/iEdbefntTdpPVQ0XJwwtdbBuMQe+uxqZoytm9M+iqR9O5noWFaxK+nbS2iR/I80Q2Ofpg==} 831 | engines: {node: '>= 12.0.0'} 832 | cpu: [x64] 833 | os: [linux] 834 | 835 | lightningcss-linux-x64-musl@1.28.2: 836 | resolution: {integrity: sha512-alb/j1NMrgQmSFyzTbN1/pvMPM+gdDw7YBuQ5VSgcFDypN3Ah0BzC2dTZbzwzaMdUVDszX6zH5MzjfVN1oGuww==} 837 | engines: {node: '>= 12.0.0'} 838 | cpu: [x64] 839 | os: [linux] 840 | 841 | lightningcss-win32-arm64-msvc@1.28.2: 842 | resolution: {integrity: sha512-WnwcjcBeAt0jGdjlgbT9ANf30pF0C/QMb1XnLnH272DQU8QXh+kmpi24R55wmWBwaTtNAETZ+m35ohyeMiNt+g==} 843 | engines: {node: '>= 12.0.0'} 844 | cpu: [arm64] 845 | os: [win32] 846 | 847 | lightningcss-win32-x64-msvc@1.28.2: 848 | resolution: {integrity: sha512-3piBifyT3avz22o6mDKywQC/OisH2yDK+caHWkiMsF82i3m5wDBadyCjlCQ5VNgzYkxrWZgiaxHDdd5uxsi0/A==} 849 | engines: {node: '>= 12.0.0'} 850 | cpu: [x64] 851 | os: [win32] 852 | 853 | lightningcss@1.28.2: 854 | resolution: {integrity: sha512-ePLRrbt3fgjXI5VFZOLbvkLD5ZRuxGKm+wJ3ujCqBtL3NanDHPo/5zicR5uEKAPiIjBYF99BM4K4okvMznjkVA==} 855 | engines: {node: '>= 12.0.0'} 856 | 857 | lucide-react@0.465.0: 858 | resolution: {integrity: sha512-uV7WEqbwaCcc+QjAxIhAvkAr3kgwkkYID3XptCHll72/F7NZlk6ONmJYpk+Xqx5Q0r/8wiOjz73H1BYbl8Z8iw==} 859 | peerDependencies: 860 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc 861 | 862 | ms@2.1.3: 863 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 864 | 865 | nanoid@3.3.8: 866 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 867 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 868 | hasBin: true 869 | 870 | next@15.6.0-canary.58: 871 | resolution: {integrity: sha512-crPQo+AxBCmmBFMpDLbFg1uH+ArvrPNkvsviM60wrlzmhNuQyIOQ0tHL7Y10BVlxqtM7esMDQnepKT1XJBqYBQ==} 872 | engines: {node: '>=20.9.0'} 873 | hasBin: true 874 | peerDependencies: 875 | '@opentelemetry/api': ^1.1.0 876 | '@playwright/test': ^1.51.1 877 | babel-plugin-react-compiler: '*' 878 | react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 879 | react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 880 | sass: ^1.3.0 881 | peerDependenciesMeta: 882 | '@opentelemetry/api': 883 | optional: true 884 | '@playwright/test': 885 | optional: true 886 | babel-plugin-react-compiler: 887 | optional: true 888 | sass: 889 | optional: true 890 | 891 | picocolors@1.1.1: 892 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 893 | 894 | postcss@8.4.31: 895 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 896 | engines: {node: ^10 || ^12 || >=14} 897 | 898 | postcss@8.4.49: 899 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 900 | engines: {node: ^10 || ^12 || >=14} 901 | 902 | postgres@3.4.5: 903 | resolution: {integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==} 904 | engines: {node: '>=12'} 905 | 906 | pure-rand@6.1.0: 907 | resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} 908 | 909 | react-dom@19.0.0-rc-2d16326d-20240930: 910 | resolution: {integrity: sha512-eBmzUwg2n0SkG+LFoQbRM/b6GyKSDFDnUEPWS+Oepbv6O6XCLSEzoJzPu7bFgNzL0tOA8gjjtP4ZJChcasldqA==} 911 | peerDependencies: 912 | react: 19.0.0-rc-2d16326d-20240930 913 | 914 | react@19.0.0-rc-2d16326d-20240930: 915 | resolution: {integrity: sha512-XeaCnXQ5lZoOtPaVZPDEcx2TUDDt6JPIEviTKhIBkQNAYKcQkAT6SPbEqxC2KqkLPnilvPi9zz+c8iikstrwRg==} 916 | engines: {node: '>=0.10.0'} 917 | 918 | resolve-pkg-maps@1.0.0: 919 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 920 | 921 | scheduler@0.25.0-rc-2d16326d-20240930: 922 | resolution: {integrity: sha512-P0lFGsD0rOhDQR2AA3ls0MYXeWnw/Tuu5bERwBC92DXSASB/493N9LQKe4AuCwVC671tjktLckGAxghUqJq7yg==} 923 | 924 | semver@7.7.3: 925 | resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 926 | engines: {node: '>=10'} 927 | hasBin: true 928 | 929 | sharp@0.34.5: 930 | resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} 931 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 932 | 933 | source-map-js@1.2.1: 934 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 935 | engines: {node: '>=0.10.0'} 936 | 937 | source-map-support@0.5.21: 938 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 939 | 940 | source-map@0.6.1: 941 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 942 | engines: {node: '>=0.10.0'} 943 | 944 | styled-jsx@5.1.6: 945 | resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} 946 | engines: {node: '>= 12.0.0'} 947 | peerDependencies: 948 | '@babel/core': '*' 949 | babel-plugin-macros: '*' 950 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 951 | peerDependenciesMeta: 952 | '@babel/core': 953 | optional: true 954 | babel-plugin-macros: 955 | optional: true 956 | 957 | tailwindcss@4.0.0-beta.4: 958 | resolution: {integrity: sha512-mkjpwMyaHCa3L5HmRjYyY8w8D+7brxwbM7YQxH8QeEFtCURd5fvdHIC9TEpIaL1X49vhl8cuOFY6Nhi6sCsI5w==} 959 | 960 | tapable@2.2.1: 961 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 962 | engines: {node: '>=6'} 963 | 964 | tslib@2.8.1: 965 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 966 | 967 | types-react-dom@19.0.0-rc.1: 968 | resolution: {integrity: sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==} 969 | 970 | types-react@19.0.0-rc.1: 971 | resolution: {integrity: sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==} 972 | 973 | typescript@5.7.2: 974 | resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} 975 | engines: {node: '>=14.17'} 976 | hasBin: true 977 | 978 | undici-types@6.20.0: 979 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 980 | 981 | zod@3.23.8: 982 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 983 | 984 | snapshots: 985 | 986 | '@alloc/quick-lru@5.2.0': {} 987 | 988 | '@drizzle-team/brocli@0.10.2': {} 989 | 990 | '@emnapi/runtime@1.7.1': 991 | dependencies: 992 | tslib: 2.8.1 993 | optional: true 994 | 995 | '@esbuild-kit/core-utils@3.3.2': 996 | dependencies: 997 | esbuild: 0.18.20 998 | source-map-support: 0.5.21 999 | 1000 | '@esbuild-kit/esm-loader@2.6.5': 1001 | dependencies: 1002 | '@esbuild-kit/core-utils': 3.3.2 1003 | get-tsconfig: 4.8.1 1004 | 1005 | '@esbuild/aix-ppc64@0.19.12': 1006 | optional: true 1007 | 1008 | '@esbuild/android-arm64@0.18.20': 1009 | optional: true 1010 | 1011 | '@esbuild/android-arm64@0.19.12': 1012 | optional: true 1013 | 1014 | '@esbuild/android-arm@0.18.20': 1015 | optional: true 1016 | 1017 | '@esbuild/android-arm@0.19.12': 1018 | optional: true 1019 | 1020 | '@esbuild/android-x64@0.18.20': 1021 | optional: true 1022 | 1023 | '@esbuild/android-x64@0.19.12': 1024 | optional: true 1025 | 1026 | '@esbuild/darwin-arm64@0.18.20': 1027 | optional: true 1028 | 1029 | '@esbuild/darwin-arm64@0.19.12': 1030 | optional: true 1031 | 1032 | '@esbuild/darwin-x64@0.18.20': 1033 | optional: true 1034 | 1035 | '@esbuild/darwin-x64@0.19.12': 1036 | optional: true 1037 | 1038 | '@esbuild/freebsd-arm64@0.18.20': 1039 | optional: true 1040 | 1041 | '@esbuild/freebsd-arm64@0.19.12': 1042 | optional: true 1043 | 1044 | '@esbuild/freebsd-x64@0.18.20': 1045 | optional: true 1046 | 1047 | '@esbuild/freebsd-x64@0.19.12': 1048 | optional: true 1049 | 1050 | '@esbuild/linux-arm64@0.18.20': 1051 | optional: true 1052 | 1053 | '@esbuild/linux-arm64@0.19.12': 1054 | optional: true 1055 | 1056 | '@esbuild/linux-arm@0.18.20': 1057 | optional: true 1058 | 1059 | '@esbuild/linux-arm@0.19.12': 1060 | optional: true 1061 | 1062 | '@esbuild/linux-ia32@0.18.20': 1063 | optional: true 1064 | 1065 | '@esbuild/linux-ia32@0.19.12': 1066 | optional: true 1067 | 1068 | '@esbuild/linux-loong64@0.18.20': 1069 | optional: true 1070 | 1071 | '@esbuild/linux-loong64@0.19.12': 1072 | optional: true 1073 | 1074 | '@esbuild/linux-mips64el@0.18.20': 1075 | optional: true 1076 | 1077 | '@esbuild/linux-mips64el@0.19.12': 1078 | optional: true 1079 | 1080 | '@esbuild/linux-ppc64@0.18.20': 1081 | optional: true 1082 | 1083 | '@esbuild/linux-ppc64@0.19.12': 1084 | optional: true 1085 | 1086 | '@esbuild/linux-riscv64@0.18.20': 1087 | optional: true 1088 | 1089 | '@esbuild/linux-riscv64@0.19.12': 1090 | optional: true 1091 | 1092 | '@esbuild/linux-s390x@0.18.20': 1093 | optional: true 1094 | 1095 | '@esbuild/linux-s390x@0.19.12': 1096 | optional: true 1097 | 1098 | '@esbuild/linux-x64@0.18.20': 1099 | optional: true 1100 | 1101 | '@esbuild/linux-x64@0.19.12': 1102 | optional: true 1103 | 1104 | '@esbuild/netbsd-x64@0.18.20': 1105 | optional: true 1106 | 1107 | '@esbuild/netbsd-x64@0.19.12': 1108 | optional: true 1109 | 1110 | '@esbuild/openbsd-x64@0.18.20': 1111 | optional: true 1112 | 1113 | '@esbuild/openbsd-x64@0.19.12': 1114 | optional: true 1115 | 1116 | '@esbuild/sunos-x64@0.18.20': 1117 | optional: true 1118 | 1119 | '@esbuild/sunos-x64@0.19.12': 1120 | optional: true 1121 | 1122 | '@esbuild/win32-arm64@0.18.20': 1123 | optional: true 1124 | 1125 | '@esbuild/win32-arm64@0.19.12': 1126 | optional: true 1127 | 1128 | '@esbuild/win32-ia32@0.18.20': 1129 | optional: true 1130 | 1131 | '@esbuild/win32-ia32@0.19.12': 1132 | optional: true 1133 | 1134 | '@esbuild/win32-x64@0.18.20': 1135 | optional: true 1136 | 1137 | '@esbuild/win32-x64@0.19.12': 1138 | optional: true 1139 | 1140 | '@img/colour@1.0.0': 1141 | optional: true 1142 | 1143 | '@img/sharp-darwin-arm64@0.34.5': 1144 | optionalDependencies: 1145 | '@img/sharp-libvips-darwin-arm64': 1.2.4 1146 | optional: true 1147 | 1148 | '@img/sharp-darwin-x64@0.34.5': 1149 | optionalDependencies: 1150 | '@img/sharp-libvips-darwin-x64': 1.2.4 1151 | optional: true 1152 | 1153 | '@img/sharp-libvips-darwin-arm64@1.2.4': 1154 | optional: true 1155 | 1156 | '@img/sharp-libvips-darwin-x64@1.2.4': 1157 | optional: true 1158 | 1159 | '@img/sharp-libvips-linux-arm64@1.2.4': 1160 | optional: true 1161 | 1162 | '@img/sharp-libvips-linux-arm@1.2.4': 1163 | optional: true 1164 | 1165 | '@img/sharp-libvips-linux-ppc64@1.2.4': 1166 | optional: true 1167 | 1168 | '@img/sharp-libvips-linux-riscv64@1.2.4': 1169 | optional: true 1170 | 1171 | '@img/sharp-libvips-linux-s390x@1.2.4': 1172 | optional: true 1173 | 1174 | '@img/sharp-libvips-linux-x64@1.2.4': 1175 | optional: true 1176 | 1177 | '@img/sharp-libvips-linuxmusl-arm64@1.2.4': 1178 | optional: true 1179 | 1180 | '@img/sharp-libvips-linuxmusl-x64@1.2.4': 1181 | optional: true 1182 | 1183 | '@img/sharp-linux-arm64@0.34.5': 1184 | optionalDependencies: 1185 | '@img/sharp-libvips-linux-arm64': 1.2.4 1186 | optional: true 1187 | 1188 | '@img/sharp-linux-arm@0.34.5': 1189 | optionalDependencies: 1190 | '@img/sharp-libvips-linux-arm': 1.2.4 1191 | optional: true 1192 | 1193 | '@img/sharp-linux-ppc64@0.34.5': 1194 | optionalDependencies: 1195 | '@img/sharp-libvips-linux-ppc64': 1.2.4 1196 | optional: true 1197 | 1198 | '@img/sharp-linux-riscv64@0.34.5': 1199 | optionalDependencies: 1200 | '@img/sharp-libvips-linux-riscv64': 1.2.4 1201 | optional: true 1202 | 1203 | '@img/sharp-linux-s390x@0.34.5': 1204 | optionalDependencies: 1205 | '@img/sharp-libvips-linux-s390x': 1.2.4 1206 | optional: true 1207 | 1208 | '@img/sharp-linux-x64@0.34.5': 1209 | optionalDependencies: 1210 | '@img/sharp-libvips-linux-x64': 1.2.4 1211 | optional: true 1212 | 1213 | '@img/sharp-linuxmusl-arm64@0.34.5': 1214 | optionalDependencies: 1215 | '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 1216 | optional: true 1217 | 1218 | '@img/sharp-linuxmusl-x64@0.34.5': 1219 | optionalDependencies: 1220 | '@img/sharp-libvips-linuxmusl-x64': 1.2.4 1221 | optional: true 1222 | 1223 | '@img/sharp-wasm32@0.34.5': 1224 | dependencies: 1225 | '@emnapi/runtime': 1.7.1 1226 | optional: true 1227 | 1228 | '@img/sharp-win32-arm64@0.34.5': 1229 | optional: true 1230 | 1231 | '@img/sharp-win32-ia32@0.34.5': 1232 | optional: true 1233 | 1234 | '@img/sharp-win32-x64@0.34.5': 1235 | optional: true 1236 | 1237 | '@next/env@15.6.0-canary.58': {} 1238 | 1239 | '@next/swc-darwin-arm64@15.6.0-canary.58': 1240 | optional: true 1241 | 1242 | '@next/swc-darwin-x64@15.6.0-canary.58': 1243 | optional: true 1244 | 1245 | '@next/swc-linux-arm64-gnu@15.6.0-canary.58': 1246 | optional: true 1247 | 1248 | '@next/swc-linux-arm64-musl@15.6.0-canary.58': 1249 | optional: true 1250 | 1251 | '@next/swc-linux-x64-gnu@15.6.0-canary.58': 1252 | optional: true 1253 | 1254 | '@next/swc-linux-x64-musl@15.6.0-canary.58': 1255 | optional: true 1256 | 1257 | '@next/swc-win32-arm64-msvc@15.6.0-canary.58': 1258 | optional: true 1259 | 1260 | '@next/swc-win32-x64-msvc@15.6.0-canary.58': 1261 | optional: true 1262 | 1263 | '@swc/helpers@0.5.15': 1264 | dependencies: 1265 | tslib: 2.8.1 1266 | 1267 | '@tailwindcss/node@4.0.0-beta.4': 1268 | dependencies: 1269 | enhanced-resolve: 5.17.1 1270 | jiti: 2.4.1 1271 | tailwindcss: 4.0.0-beta.4 1272 | 1273 | '@tailwindcss/oxide-android-arm64@4.0.0-beta.4': 1274 | optional: true 1275 | 1276 | '@tailwindcss/oxide-darwin-arm64@4.0.0-beta.4': 1277 | optional: true 1278 | 1279 | '@tailwindcss/oxide-darwin-x64@4.0.0-beta.4': 1280 | optional: true 1281 | 1282 | '@tailwindcss/oxide-freebsd-x64@4.0.0-beta.4': 1283 | optional: true 1284 | 1285 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0-beta.4': 1286 | optional: true 1287 | 1288 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.0-beta.4': 1289 | optional: true 1290 | 1291 | '@tailwindcss/oxide-linux-arm64-musl@4.0.0-beta.4': 1292 | optional: true 1293 | 1294 | '@tailwindcss/oxide-linux-x64-gnu@4.0.0-beta.4': 1295 | optional: true 1296 | 1297 | '@tailwindcss/oxide-linux-x64-musl@4.0.0-beta.4': 1298 | optional: true 1299 | 1300 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.0-beta.4': 1301 | optional: true 1302 | 1303 | '@tailwindcss/oxide-win32-x64-msvc@4.0.0-beta.4': 1304 | optional: true 1305 | 1306 | '@tailwindcss/oxide@4.0.0-beta.4': 1307 | optionalDependencies: 1308 | '@tailwindcss/oxide-android-arm64': 4.0.0-beta.4 1309 | '@tailwindcss/oxide-darwin-arm64': 4.0.0-beta.4 1310 | '@tailwindcss/oxide-darwin-x64': 4.0.0-beta.4 1311 | '@tailwindcss/oxide-freebsd-x64': 4.0.0-beta.4 1312 | '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.0-beta.4 1313 | '@tailwindcss/oxide-linux-arm64-gnu': 4.0.0-beta.4 1314 | '@tailwindcss/oxide-linux-arm64-musl': 4.0.0-beta.4 1315 | '@tailwindcss/oxide-linux-x64-gnu': 4.0.0-beta.4 1316 | '@tailwindcss/oxide-linux-x64-musl': 4.0.0-beta.4 1317 | '@tailwindcss/oxide-win32-arm64-msvc': 4.0.0-beta.4 1318 | '@tailwindcss/oxide-win32-x64-msvc': 4.0.0-beta.4 1319 | 1320 | '@tailwindcss/postcss@4.0.0-beta.4': 1321 | dependencies: 1322 | '@alloc/quick-lru': 5.2.0 1323 | '@tailwindcss/node': 4.0.0-beta.4 1324 | '@tailwindcss/oxide': 4.0.0-beta.4 1325 | lightningcss: 1.28.2 1326 | postcss: 8.4.49 1327 | tailwindcss: 4.0.0-beta.4 1328 | 1329 | '@types/node@22.10.1': 1330 | dependencies: 1331 | undici-types: 6.20.0 1332 | 1333 | '@types/prop-types@15.7.13': {} 1334 | 1335 | '@types/react@18.3.12': 1336 | dependencies: 1337 | '@types/prop-types': 15.7.13 1338 | csstype: 3.1.3 1339 | 1340 | buffer-from@1.1.2: {} 1341 | 1342 | caniuse-lite@1.0.30001686: {} 1343 | 1344 | client-only@0.0.1: {} 1345 | 1346 | csstype@3.1.3: {} 1347 | 1348 | debug@4.3.7: 1349 | dependencies: 1350 | ms: 2.1.3 1351 | 1352 | detect-libc@1.0.3: {} 1353 | 1354 | detect-libc@2.1.2: 1355 | optional: true 1356 | 1357 | dotenv@16.4.7: {} 1358 | 1359 | drizzle-kit@0.28.1: 1360 | dependencies: 1361 | '@drizzle-team/brocli': 0.10.2 1362 | '@esbuild-kit/esm-loader': 2.6.5 1363 | esbuild: 0.19.12 1364 | esbuild-register: 3.6.0(esbuild@0.19.12) 1365 | transitivePeerDependencies: 1366 | - supports-color 1367 | 1368 | drizzle-orm@0.36.4(postgres@3.4.5)(react@19.0.0-rc-2d16326d-20240930)(types-react@19.0.0-rc.1): 1369 | optionalDependencies: 1370 | '@types/react': types-react@19.0.0-rc.1 1371 | postgres: 3.4.5 1372 | react: 19.0.0-rc-2d16326d-20240930 1373 | 1374 | drizzle-seed@0.1.2(drizzle-orm@0.36.4(postgres@3.4.5)(react@19.0.0-rc-2d16326d-20240930)(types-react@19.0.0-rc.1)): 1375 | dependencies: 1376 | pure-rand: 6.1.0 1377 | optionalDependencies: 1378 | drizzle-orm: 0.36.4(postgres@3.4.5)(react@19.0.0-rc-2d16326d-20240930)(types-react@19.0.0-rc.1) 1379 | 1380 | enhanced-resolve@5.17.1: 1381 | dependencies: 1382 | graceful-fs: 4.2.11 1383 | tapable: 2.2.1 1384 | 1385 | esbuild-register@3.6.0(esbuild@0.19.12): 1386 | dependencies: 1387 | debug: 4.3.7 1388 | esbuild: 0.19.12 1389 | transitivePeerDependencies: 1390 | - supports-color 1391 | 1392 | esbuild@0.18.20: 1393 | optionalDependencies: 1394 | '@esbuild/android-arm': 0.18.20 1395 | '@esbuild/android-arm64': 0.18.20 1396 | '@esbuild/android-x64': 0.18.20 1397 | '@esbuild/darwin-arm64': 0.18.20 1398 | '@esbuild/darwin-x64': 0.18.20 1399 | '@esbuild/freebsd-arm64': 0.18.20 1400 | '@esbuild/freebsd-x64': 0.18.20 1401 | '@esbuild/linux-arm': 0.18.20 1402 | '@esbuild/linux-arm64': 0.18.20 1403 | '@esbuild/linux-ia32': 0.18.20 1404 | '@esbuild/linux-loong64': 0.18.20 1405 | '@esbuild/linux-mips64el': 0.18.20 1406 | '@esbuild/linux-ppc64': 0.18.20 1407 | '@esbuild/linux-riscv64': 0.18.20 1408 | '@esbuild/linux-s390x': 0.18.20 1409 | '@esbuild/linux-x64': 0.18.20 1410 | '@esbuild/netbsd-x64': 0.18.20 1411 | '@esbuild/openbsd-x64': 0.18.20 1412 | '@esbuild/sunos-x64': 0.18.20 1413 | '@esbuild/win32-arm64': 0.18.20 1414 | '@esbuild/win32-ia32': 0.18.20 1415 | '@esbuild/win32-x64': 0.18.20 1416 | 1417 | esbuild@0.19.12: 1418 | optionalDependencies: 1419 | '@esbuild/aix-ppc64': 0.19.12 1420 | '@esbuild/android-arm': 0.19.12 1421 | '@esbuild/android-arm64': 0.19.12 1422 | '@esbuild/android-x64': 0.19.12 1423 | '@esbuild/darwin-arm64': 0.19.12 1424 | '@esbuild/darwin-x64': 0.19.12 1425 | '@esbuild/freebsd-arm64': 0.19.12 1426 | '@esbuild/freebsd-x64': 0.19.12 1427 | '@esbuild/linux-arm': 0.19.12 1428 | '@esbuild/linux-arm64': 0.19.12 1429 | '@esbuild/linux-ia32': 0.19.12 1430 | '@esbuild/linux-loong64': 0.19.12 1431 | '@esbuild/linux-mips64el': 0.19.12 1432 | '@esbuild/linux-ppc64': 0.19.12 1433 | '@esbuild/linux-riscv64': 0.19.12 1434 | '@esbuild/linux-s390x': 0.19.12 1435 | '@esbuild/linux-x64': 0.19.12 1436 | '@esbuild/netbsd-x64': 0.19.12 1437 | '@esbuild/openbsd-x64': 0.19.12 1438 | '@esbuild/sunos-x64': 0.19.12 1439 | '@esbuild/win32-arm64': 0.19.12 1440 | '@esbuild/win32-ia32': 0.19.12 1441 | '@esbuild/win32-x64': 0.19.12 1442 | 1443 | get-tsconfig@4.8.1: 1444 | dependencies: 1445 | resolve-pkg-maps: 1.0.0 1446 | 1447 | graceful-fs@4.2.11: {} 1448 | 1449 | jiti@2.4.1: {} 1450 | 1451 | lightningcss-darwin-arm64@1.28.2: 1452 | optional: true 1453 | 1454 | lightningcss-darwin-x64@1.28.2: 1455 | optional: true 1456 | 1457 | lightningcss-freebsd-x64@1.28.2: 1458 | optional: true 1459 | 1460 | lightningcss-linux-arm-gnueabihf@1.28.2: 1461 | optional: true 1462 | 1463 | lightningcss-linux-arm64-gnu@1.28.2: 1464 | optional: true 1465 | 1466 | lightningcss-linux-arm64-musl@1.28.2: 1467 | optional: true 1468 | 1469 | lightningcss-linux-x64-gnu@1.28.2: 1470 | optional: true 1471 | 1472 | lightningcss-linux-x64-musl@1.28.2: 1473 | optional: true 1474 | 1475 | lightningcss-win32-arm64-msvc@1.28.2: 1476 | optional: true 1477 | 1478 | lightningcss-win32-x64-msvc@1.28.2: 1479 | optional: true 1480 | 1481 | lightningcss@1.28.2: 1482 | dependencies: 1483 | detect-libc: 1.0.3 1484 | optionalDependencies: 1485 | lightningcss-darwin-arm64: 1.28.2 1486 | lightningcss-darwin-x64: 1.28.2 1487 | lightningcss-freebsd-x64: 1.28.2 1488 | lightningcss-linux-arm-gnueabihf: 1.28.2 1489 | lightningcss-linux-arm64-gnu: 1.28.2 1490 | lightningcss-linux-arm64-musl: 1.28.2 1491 | lightningcss-linux-x64-gnu: 1.28.2 1492 | lightningcss-linux-x64-musl: 1.28.2 1493 | lightningcss-win32-arm64-msvc: 1.28.2 1494 | lightningcss-win32-x64-msvc: 1.28.2 1495 | 1496 | lucide-react@0.465.0(react@19.0.0-rc-2d16326d-20240930): 1497 | dependencies: 1498 | react: 19.0.0-rc-2d16326d-20240930 1499 | 1500 | ms@2.1.3: {} 1501 | 1502 | nanoid@3.3.8: {} 1503 | 1504 | next@15.6.0-canary.58(react-dom@19.0.0-rc-2d16326d-20240930(react@19.0.0-rc-2d16326d-20240930))(react@19.0.0-rc-2d16326d-20240930): 1505 | dependencies: 1506 | '@next/env': 15.6.0-canary.58 1507 | '@swc/helpers': 0.5.15 1508 | caniuse-lite: 1.0.30001686 1509 | postcss: 8.4.31 1510 | react: 19.0.0-rc-2d16326d-20240930 1511 | react-dom: 19.0.0-rc-2d16326d-20240930(react@19.0.0-rc-2d16326d-20240930) 1512 | styled-jsx: 5.1.6(react@19.0.0-rc-2d16326d-20240930) 1513 | optionalDependencies: 1514 | '@next/swc-darwin-arm64': 15.6.0-canary.58 1515 | '@next/swc-darwin-x64': 15.6.0-canary.58 1516 | '@next/swc-linux-arm64-gnu': 15.6.0-canary.58 1517 | '@next/swc-linux-arm64-musl': 15.6.0-canary.58 1518 | '@next/swc-linux-x64-gnu': 15.6.0-canary.58 1519 | '@next/swc-linux-x64-musl': 15.6.0-canary.58 1520 | '@next/swc-win32-arm64-msvc': 15.6.0-canary.58 1521 | '@next/swc-win32-x64-msvc': 15.6.0-canary.58 1522 | sharp: 0.34.5 1523 | transitivePeerDependencies: 1524 | - '@babel/core' 1525 | - babel-plugin-macros 1526 | 1527 | picocolors@1.1.1: {} 1528 | 1529 | postcss@8.4.31: 1530 | dependencies: 1531 | nanoid: 3.3.8 1532 | picocolors: 1.1.1 1533 | source-map-js: 1.2.1 1534 | 1535 | postcss@8.4.49: 1536 | dependencies: 1537 | nanoid: 3.3.8 1538 | picocolors: 1.1.1 1539 | source-map-js: 1.2.1 1540 | 1541 | postgres@3.4.5: {} 1542 | 1543 | pure-rand@6.1.0: {} 1544 | 1545 | react-dom@19.0.0-rc-2d16326d-20240930(react@19.0.0-rc-2d16326d-20240930): 1546 | dependencies: 1547 | react: 19.0.0-rc-2d16326d-20240930 1548 | scheduler: 0.25.0-rc-2d16326d-20240930 1549 | 1550 | react@19.0.0-rc-2d16326d-20240930: {} 1551 | 1552 | resolve-pkg-maps@1.0.0: {} 1553 | 1554 | scheduler@0.25.0-rc-2d16326d-20240930: {} 1555 | 1556 | semver@7.7.3: 1557 | optional: true 1558 | 1559 | sharp@0.34.5: 1560 | dependencies: 1561 | '@img/colour': 1.0.0 1562 | detect-libc: 2.1.2 1563 | semver: 7.7.3 1564 | optionalDependencies: 1565 | '@img/sharp-darwin-arm64': 0.34.5 1566 | '@img/sharp-darwin-x64': 0.34.5 1567 | '@img/sharp-libvips-darwin-arm64': 1.2.4 1568 | '@img/sharp-libvips-darwin-x64': 1.2.4 1569 | '@img/sharp-libvips-linux-arm': 1.2.4 1570 | '@img/sharp-libvips-linux-arm64': 1.2.4 1571 | '@img/sharp-libvips-linux-ppc64': 1.2.4 1572 | '@img/sharp-libvips-linux-riscv64': 1.2.4 1573 | '@img/sharp-libvips-linux-s390x': 1.2.4 1574 | '@img/sharp-libvips-linux-x64': 1.2.4 1575 | '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 1576 | '@img/sharp-libvips-linuxmusl-x64': 1.2.4 1577 | '@img/sharp-linux-arm': 0.34.5 1578 | '@img/sharp-linux-arm64': 0.34.5 1579 | '@img/sharp-linux-ppc64': 0.34.5 1580 | '@img/sharp-linux-riscv64': 0.34.5 1581 | '@img/sharp-linux-s390x': 0.34.5 1582 | '@img/sharp-linux-x64': 0.34.5 1583 | '@img/sharp-linuxmusl-arm64': 0.34.5 1584 | '@img/sharp-linuxmusl-x64': 0.34.5 1585 | '@img/sharp-wasm32': 0.34.5 1586 | '@img/sharp-win32-arm64': 0.34.5 1587 | '@img/sharp-win32-ia32': 0.34.5 1588 | '@img/sharp-win32-x64': 0.34.5 1589 | optional: true 1590 | 1591 | source-map-js@1.2.1: {} 1592 | 1593 | source-map-support@0.5.21: 1594 | dependencies: 1595 | buffer-from: 1.1.2 1596 | source-map: 0.6.1 1597 | 1598 | source-map@0.6.1: {} 1599 | 1600 | styled-jsx@5.1.6(react@19.0.0-rc-2d16326d-20240930): 1601 | dependencies: 1602 | client-only: 0.0.1 1603 | react: 19.0.0-rc-2d16326d-20240930 1604 | 1605 | tailwindcss@4.0.0-beta.4: {} 1606 | 1607 | tapable@2.2.1: {} 1608 | 1609 | tslib@2.8.1: {} 1610 | 1611 | types-react-dom@19.0.0-rc.1: 1612 | dependencies: 1613 | '@types/react': 18.3.12 1614 | 1615 | types-react@19.0.0-rc.1: 1616 | dependencies: 1617 | csstype: 3.1.3 1618 | 1619 | typescript@5.7.2: {} 1620 | 1621 | undici-types@6.20.0: {} 1622 | 1623 | zod@3.23.8: {} 1624 | --------------------------------------------------------------------------------