From e90846bde6e0904b2d80cf3e124151925f0a2fba Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 09:56:42 -0500 Subject: [PATCH 01/11] Add npm scripts for drizzle tasks --- package.json | 10 +- pnpm-lock.yaml | 409 ++++++++++++++++++++++++++++--------------------- tsconfig.json | 1 + 3 files changed, 241 insertions(+), 179 deletions(-) diff --git a/package.json b/package.json index 202f021..a7f9c0f 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,14 @@ "private": true, "scripts": { "dev": "next dev --turbo", - "build": "tsx db/migrate && next build", + "build": "next build", "start": "next start", "lint": "next lint", - "format": "prettier --write ." + "lint:fix": "next lint --fix", + "format": "prettier --write .", + "db:generate": "drizzle-kit generate", + "db:migrate": "npx tsx db/migrate.ts", + "db:studio": "drizzle-kit studio" }, "dependencies": { "@ai-sdk/openai": "1.0.0-canary.3", @@ -64,7 +68,7 @@ "devDependencies": { "@tailwindcss/typography": "^0.5.15", "@types/d3-scale": "^4.0.8", - "@types/node": "^20", + "@types/node": "^22.8.6", "@types/pdf-parse": "^1.1.4", "@types/react": "^18", "@types/react-dom": "^18", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ca3785..4854c39 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,37 +13,37 @@ importers: version: 1.0.0-canary.3(zod@3.23.8) '@radix-ui/react-alert-dialog': specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-dialog': specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-dropdown-menu': specifier: ^2.1.1 - version: 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-icons': specifier: ^1.3.0 version: 1.3.0(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-label': specifier: ^2.1.0 - version: 2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-select': specifier: ^2.1.2 - version: 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-separator': specifier: ^1.1.0 - version: 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-slot': specifier: ^1.1.0 version: 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-tooltip': specifier: ^1.1.2 - version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-visually-hidden': specifier: ^1.1.0 - version: 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@vercel/analytics': specifier: ^1.3.1 - version: 1.3.2(next@15.0.3-canary.2)(react@19.0.0-rc-45804af1-20241021) + version: 1.3.2(next@15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@vercel/blob': specifier: ^0.24.1 version: 0.24.1 @@ -76,25 +76,25 @@ importers: version: 16.4.5 drizzle-orm: specifier: ^0.34.0 - version: 0.34.1(@types/react@18.3.12)(@vercel/postgres@0.10.0)(postgres@3.4.5)(react@19.0.0-rc-45804af1-20241021) + version: 0.34.1(@neondatabase/serverless@0.9.5)(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@types/react@18.3.12)(@vercel/postgres@0.10.0)(postgres@3.4.5)(react@19.0.0-rc-45804af1-20241021) framer-motion: specifier: ^11.3.19 - version: 11.11.10(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 11.11.10(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) geist: specifier: ^1.3.1 - version: 1.3.1(next@15.0.3-canary.2) + version: 1.3.1(next@15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)) lucide-react: specifier: ^0.446.0 version: 0.446.0(react@19.0.0-rc-45804af1-20241021) next: specifier: 15.0.3-canary.2 - version: 15.0.3-canary.2(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) next-auth: specifier: 5.0.0-beta.25 - version: 5.0.0-beta.25(next@15.0.3-canary.2)(react@19.0.0-rc-45804af1-20241021) + version: 5.0.0-beta.25(next@15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) next-themes: specifier: ^0.3.0 - version: 0.3.0(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 0.3.0(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) orderedmap: specifier: ^2.1.1 version: 2.1.1 @@ -142,7 +142,7 @@ importers: version: 0.0.1 sonner: specifier: ^1.5.0 - version: 1.5.0(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + version: 1.5.0(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) swr: specifier: ^2.2.5 version: 2.2.5(react@19.0.0-rc-45804af1-20241021) @@ -166,8 +166,8 @@ importers: specifier: ^4.0.8 version: 4.0.8 '@types/node': - specifier: ^20 - version: 20.17.2 + specifier: ^22.8.6 + version: 22.9.0 '@types/pdf-parse': specifier: ^1.1.4 version: 1.1.4 @@ -1396,8 +1396,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.17.2': - resolution: {integrity: sha512-OOHK4sjXqkL7yQ7VEEHcf6+0jSvKjWqwnaCtY7AKD/VLEvRHMsxxu7eI8ErnjxHS8VwmekD4PeVCpu4qZEZSxg==} + '@types/node@22.9.0': + resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} '@types/pdf-parse@1.1.4': resolution: {integrity: sha512-+gbBHbNCVGGYw1S9lAIIvrHW47UYOhMIFUsJcMkMrzy1Jf0vulBN3XQIjPgnoOXveMuHnF3b57fXROnY/Or7eg==} @@ -3608,6 +3608,7 @@ snapshots: eventsource-parser: 3.0.0 nanoid: 5.0.8 secure-json-parse: 2.7.0 + optionalDependencies: zod: 3.23.8 '@ai-sdk/provider@1.0.0-canary.0': @@ -3618,17 +3619,19 @@ snapshots: dependencies: '@ai-sdk/provider-utils': 2.0.0-canary.3(zod@3.23.8) '@ai-sdk/ui-utils': 1.0.0-canary.6(zod@3.23.8) - react: 19.0.0-rc-45804af1-20241021 swr: 2.2.5(react@19.0.0-rc-45804af1-20241021) throttleit: 2.1.0 + optionalDependencies: + react: 19.0.0-rc-45804af1-20241021 zod: 3.23.8 '@ai-sdk/ui-utils@1.0.0-canary.6(zod@3.23.8)': dependencies: '@ai-sdk/provider': 1.0.0-canary.0 '@ai-sdk/provider-utils': 2.0.0-canary.3(zod@3.23.8) - zod: 3.23.8 zod-to-json-schema: 3.23.5(zod@3.23.8) + optionalDependencies: + zod: 3.23.8 '@alloc/quick-lru@5.2.0': {} @@ -3900,7 +3903,7 @@ snapshots: '@floating-ui/core': 1.6.8 '@floating-ui/utils': 0.2.8 - '@floating-ui/react-dom@2.1.2(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@floating-ui/dom': 1.6.11 react: 19.0.0-rc-45804af1-20241021 @@ -4080,119 +4083,131 @@ snapshots: '@radix-ui/primitive@1.1.0': {} - '@radix-ui/react-alert-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-alert-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/primitive': 1.1.0 '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 '@radix-ui/react-context@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 '@radix-ui/react-context@1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 - '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/primitive': 1.1.0 '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 aria-hidden: 1.2.4 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 '@radix-ui/react-direction@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 - '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/primitive': 1.1.0 '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-dropdown-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-dropdown-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/primitive': 1.1.0 '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 - '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 '@radix-ui/react-icons@1.3.0(react@19.0.0-rc-45804af1-20241021)': dependencies: @@ -4201,208 +4216,228 @@ snapshots: '@radix-ui/react-id@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 - - '@radix-ui/react-label@2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': - dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + + '@radix-ui/react-label@2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 aria-hidden: 1.2.4 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/rect': 1.1.0 - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 - '@radix-ui/react-select@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-select@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/number': 1.1.0 '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) aria-hidden: 1.2.4 react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - - '@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': - dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: '@types/react': 18.3.12 '@types/react-dom': 18.3.1 + + '@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 '@radix-ui/react-slot@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 - '@radix-ui/react-tooltip@1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': + '@radix-ui/react-tooltip@1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/primitive': 1.1.0 '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/rect': 1.1.0 - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 + optionalDependencies: + '@types/react': 18.3.12 '@radix-ui/react-use-size@1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 - - '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021)': - dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 + + '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 '@radix-ui/rect@1.1.0': {} @@ -4465,7 +4500,7 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@20.17.2': + '@types/node@22.9.0': dependencies: undici-types: 6.19.8 @@ -4473,7 +4508,7 @@ snapshots: '@types/pg@8.11.6': dependencies: - '@types/node': 20.17.2 + '@types/node': 22.9.0 pg-protocol: 1.7.0 pg-types: 4.0.2 @@ -4500,6 +4535,7 @@ snapshots: '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.3.7 eslint: 8.57.1 + optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4521,6 +4557,7 @@ snapshots: minimatch: 9.0.3 semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4532,11 +4569,12 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vercel/analytics@1.3.2(next@15.0.3-canary.2)(react@19.0.0-rc-45804af1-20241021)': + '@vercel/analytics@1.3.2(next@15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)': dependencies: - next: 15.0.3-canary.2(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) - react: 19.0.0-rc-45804af1-20241021 server-only: 0.0.1 + optionalDependencies: + next: 15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) + react: 19.0.0-rc-45804af1-20241021 '@vercel/blob@0.24.1': dependencies: @@ -4567,9 +4605,10 @@ snapshots: '@ai-sdk/ui-utils': 1.0.0-canary.6(zod@3.23.8) '@opentelemetry/api': 1.9.0 jsondiffpatch: 0.6.0 + zod-to-json-schema: 3.23.5(zod@3.23.8) + optionalDependencies: react: 19.0.0-rc-45804af1-20241021 zod: 3.23.8 - zod-to-json-schema: 3.23.5(zod@3.23.8) ajv@6.12.6: dependencies: @@ -4900,8 +4939,11 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.34.1(@types/react@18.3.12)(@vercel/postgres@0.10.0)(postgres@3.4.5)(react@19.0.0-rc-45804af1-20241021): - dependencies: + drizzle-orm@0.34.1(@neondatabase/serverless@0.9.5)(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@types/react@18.3.12)(@vercel/postgres@0.10.0)(postgres@3.4.5)(react@19.0.0-rc-45804af1-20241021): + optionalDependencies: + '@neondatabase/serverless': 0.9.5 + '@opentelemetry/api': 1.9.0 + '@types/pg': 8.11.6 '@types/react': 18.3.12 '@vercel/postgres': 0.10.0 postgres: 3.4.5 @@ -5108,11 +5150,12 @@ snapshots: '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.2(eslint@8.57.1) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1) + optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - eslint-import-resolver-webpack @@ -5131,18 +5174,19 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -5155,49 +5199,52 @@ snapshots: debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.12.0(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-module-utils: 2.12.0(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: + debug: 3.2.7 + optionalDependencies: '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) - debug: 3.2.7 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 + optionalDependencies: eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-module-utils@2.12.0(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 + optionalDependencies: eslint: 8.57.1 eslint-import-resolver-typescript: 3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -5206,7 +5253,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -5217,6 +5264,8 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -5233,7 +5282,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -5422,11 +5471,12 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - framer-motion@11.11.10(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021): + framer-motion@11.11.10(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021): dependencies: + tslib: 2.8.0 + optionalDependencies: react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) - tslib: 2.8.0 fs.realpath@1.0.0: {} @@ -5444,9 +5494,9 @@ snapshots: functions-have-names@1.2.3: {} - geist@1.3.1(next@15.0.3-canary.2): + geist@1.3.1(next@15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021)): dependencies: - next: 15.0.3-canary.2(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + next: 15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) get-intrinsic@1.2.4: dependencies: @@ -6223,18 +6273,18 @@ snapshots: natural-compare@1.4.0: {} - next-auth@5.0.0-beta.25(next@15.0.3-canary.2)(react@19.0.0-rc-45804af1-20241021): + next-auth@5.0.0-beta.25(next@15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021): dependencies: '@auth/core': 0.37.2 - next: 15.0.3-canary.2(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021) + next: 15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021) react: 19.0.0-rc-45804af1-20241021 - next-themes@0.3.0(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021): + next-themes@0.3.0(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021): dependencies: react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) - next@15.0.3-canary.2(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021): + next@15.0.3-canary.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021): dependencies: '@next/env': 15.0.3-canary.2 '@swc/counter': 0.1.3 @@ -6254,6 +6304,7 @@ snapshots: '@next/swc-linux-x64-musl': 15.0.3-canary.2 '@next/swc-win32-arm64-msvc': 15.0.3-canary.2 '@next/swc-win32-x64-msvc': 15.0.3-canary.2 + '@opentelemetry/api': 1.9.0 sharp: 0.33.5 transitivePeerDependencies: - '@babel/core' @@ -6403,8 +6454,9 @@ snapshots: postcss-load-config@4.0.2(postcss@8.4.47): dependencies: lilconfig: 3.1.2 - postcss: 8.4.47 yaml: 2.6.0 + optionalDependencies: + postcss: 8.4.47 postcss-nested@6.2.0(postcss@8.4.47): dependencies: @@ -6593,28 +6645,31 @@ snapshots: react-remove-scroll-bar@2.3.6(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021): dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 react-style-singleton: 2.2.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) tslib: 2.8.0 + optionalDependencies: + '@types/react': 18.3.12 react-remove-scroll@2.6.0(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021): dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 react-remove-scroll-bar: 2.3.6(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) react-style-singleton: 2.2.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) tslib: 2.8.0 use-callback-ref: 1.3.2(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) use-sidecar: 1.1.2(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021) + optionalDependencies: + '@types/react': 18.3.12 react-style-singleton@2.2.1(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021): dependencies: - '@types/react': 18.3.12 get-nonce: 1.0.1 invariant: 2.2.4 react: 19.0.0-rc-45804af1-20241021 tslib: 2.8.0 + optionalDependencies: + '@types/react': 18.3.12 react@19.0.0-rc-45804af1-20241021: {} @@ -6795,7 +6850,7 @@ snapshots: slash@3.0.0: {} - sonner@1.5.0(react-dom@19.0.0-rc-45804af1-20241021)(react@19.0.0-rc-45804af1-20241021): + sonner@1.5.0(react-dom@19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021))(react@19.0.0-rc-45804af1-20241021): dependencies: react: 19.0.0-rc-45804af1-20241021 react-dom: 19.0.0-rc-45804af1-20241021(react@19.0.0-rc-45804af1-20241021) @@ -7089,16 +7144,18 @@ snapshots: use-callback-ref@1.3.2(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021): dependencies: - '@types/react': 18.3.12 react: 19.0.0-rc-45804af1-20241021 tslib: 2.8.0 + optionalDependencies: + '@types/react': 18.3.12 use-sidecar@1.1.2(@types/react@18.3.12)(react@19.0.0-rc-45804af1-20241021): dependencies: - '@types/react': 18.3.12 detect-node-es: 1.1.0 react: 19.0.0-rc-45804af1-20241021 tslib: 2.8.0 + optionalDependencies: + '@types/react': 18.3.12 use-sync-external-store@1.2.2(react@19.0.0-rc-45804af1-20241021): dependencies: @@ -7182,7 +7239,7 @@ snapshots: wrappy@1.0.2: {} ws@8.18.0(bufferutil@4.0.8): - dependencies: + optionalDependencies: bufferutil: 4.0.8 yaml@2.6.0: {} diff --git a/tsconfig.json b/tsconfig.json index 10c77bb..42e476b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,6 +13,7 @@ "isolatedModules": true, "jsx": "preserve", "incremental": true, + "baseUrl": ".", "plugins": [ { "name": "next" From b44ab8dae5bae25318d83be5d8f51f7148bb4abe Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 10:00:24 -0500 Subject: [PATCH 02/11] Add prettier ignore file --- .prettierignore | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .prettierignore diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..480855d --- /dev/null +++ b/.prettierignore @@ -0,0 +1,7 @@ +dist +node_modules +.next +.vercel +build +pnpm-lock.yaml +lib/drizzle \ No newline at end of file From e96dfb2d7404c51b04b0358094e5207e3a1ccfa6 Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 10:01:02 -0500 Subject: [PATCH 03/11] Simplify prettierignore --- .prettierignore | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.prettierignore b/.prettierignore index 480855d..4be8cf9 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,7 +1,2 @@ -dist -node_modules -.next -.vercel -build pnpm-lock.yaml lib/drizzle \ No newline at end of file From c493ac342b5e34a0414e96d2f8ad19efbf1b20df Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 10:13:21 -0500 Subject: [PATCH 04/11] Refactor drizzle and db folder --- app/(auth)/actions.ts | 2 +- app/(auth)/auth.ts | 2 +- app/(chat)/api/chat/route.ts | 4 ++-- app/(chat)/api/document/route.ts | 2 +- app/(chat)/api/history/route.ts | 2 +- app/(chat)/api/suggestions/route.ts | 2 +- app/(chat)/api/vote/route.ts | 2 +- app/(chat)/chat/[id]/page.tsx | 2 +- components/custom/block.tsx | 2 +- components/custom/chat.tsx | 2 +- components/custom/editor.tsx | 2 +- components/custom/message-actions.tsx | 2 +- components/custom/message.tsx | 2 +- components/custom/sidebar-history.tsx | 2 +- components/custom/use-block-stream.tsx | 2 +- components/custom/version-footer.tsx | 2 +- drizzle.config.ts | 4 ++-- {db => lib/db}/migrate.ts | 0 lib/{drizzle => db/migrations}/0000_keen_devos.sql | 0 lib/{drizzle => db/migrations}/0001_sparkling_blue_marvel.sql | 0 lib/{drizzle => db/migrations}/0002_wandering_riptide.sql | 0 lib/{drizzle => db/migrations}/meta/0000_snapshot.json | 0 lib/{drizzle => db/migrations}/meta/0001_snapshot.json | 0 lib/{drizzle => db/migrations}/meta/0002_snapshot.json | 0 lib/{drizzle => db/migrations}/meta/_journal.json | 0 {db => lib/db}/queries.ts | 0 {db => lib/db}/schema.ts | 0 lib/editor/suggestions.tsx | 2 +- lib/utils.ts | 2 +- package.json | 2 +- tsconfig.json | 1 - 31 files changed, 22 insertions(+), 23 deletions(-) rename {db => lib/db}/migrate.ts (100%) rename lib/{drizzle => db/migrations}/0000_keen_devos.sql (100%) rename lib/{drizzle => db/migrations}/0001_sparkling_blue_marvel.sql (100%) rename lib/{drizzle => db/migrations}/0002_wandering_riptide.sql (100%) rename lib/{drizzle => db/migrations}/meta/0000_snapshot.json (100%) rename lib/{drizzle => db/migrations}/meta/0001_snapshot.json (100%) rename lib/{drizzle => db/migrations}/meta/0002_snapshot.json (100%) rename lib/{drizzle => db/migrations}/meta/_journal.json (100%) rename {db => lib/db}/queries.ts (100%) rename {db => lib/db}/schema.ts (100%) diff --git a/app/(auth)/actions.ts b/app/(auth)/actions.ts index 66006c9..058e8af 100644 --- a/app/(auth)/actions.ts +++ b/app/(auth)/actions.ts @@ -2,7 +2,7 @@ import { z } from 'zod'; -import { createUser, getUser } from '@/db/queries'; +import { createUser, getUser } from '@/lib/db/queries'; import { signIn } from './auth'; diff --git a/app/(auth)/auth.ts b/app/(auth)/auth.ts index 1fa8401..d49fefe 100644 --- a/app/(auth)/auth.ts +++ b/app/(auth)/auth.ts @@ -2,7 +2,7 @@ import { compare } from 'bcrypt-ts'; import NextAuth, { User, Session } from 'next-auth'; import Credentials from 'next-auth/providers/credentials'; -import { getUser } from '@/db/queries'; +import { getUser } from '@/lib/db/queries'; import { authConfig } from './auth.config'; diff --git a/app/(chat)/api/chat/route.ts b/app/(chat)/api/chat/route.ts index 83b7dcd..f3b54f7 100644 --- a/app/(chat)/api/chat/route.ts +++ b/app/(chat)/api/chat/route.ts @@ -19,8 +19,8 @@ import { saveDocument, saveMessages, saveSuggestions, -} from '@/db/queries'; -import { Suggestion } from '@/db/schema'; +} from '@/lib/db/queries'; +import { Suggestion } from '@/lib/db/schema'; import { generateUUID, getMostRecentUserMessage, diff --git a/app/(chat)/api/document/route.ts b/app/(chat)/api/document/route.ts index f73572f..885d39c 100644 --- a/app/(chat)/api/document/route.ts +++ b/app/(chat)/api/document/route.ts @@ -3,7 +3,7 @@ import { deleteDocumentsByIdAfterTimestamp, getDocumentsById, saveDocument, -} from '@/db/queries'; +} from '@/lib/db/queries'; export async function GET(request: Request) { const { searchParams } = new URL(request.url); diff --git a/app/(chat)/api/history/route.ts b/app/(chat)/api/history/route.ts index 0c98e79..00d365b 100644 --- a/app/(chat)/api/history/route.ts +++ b/app/(chat)/api/history/route.ts @@ -1,5 +1,5 @@ import { auth } from '@/app/(auth)/auth'; -import { getChatsByUserId } from '@/db/queries'; +import { getChatsByUserId } from '@/lib/db/queries'; export async function GET() { const session = await auth(); diff --git a/app/(chat)/api/suggestions/route.ts b/app/(chat)/api/suggestions/route.ts index dc472c2..542bc61 100644 --- a/app/(chat)/api/suggestions/route.ts +++ b/app/(chat)/api/suggestions/route.ts @@ -1,5 +1,5 @@ import { auth } from '@/app/(auth)/auth'; -import { getSuggestionsByDocumentId } from '@/db/queries'; +import { getSuggestionsByDocumentId } from '@/lib/db/queries'; export async function GET(request: Request) { const { searchParams } = new URL(request.url); diff --git a/app/(chat)/api/vote/route.ts b/app/(chat)/api/vote/route.ts index 42b1701..87f78e7 100644 --- a/app/(chat)/api/vote/route.ts +++ b/app/(chat)/api/vote/route.ts @@ -1,5 +1,5 @@ import { auth } from '@/app/(auth)/auth'; -import { getVotesByChatId, voteMessage } from '@/db/queries'; +import { getVotesByChatId, voteMessage } from '@/lib/db/queries'; export async function GET(request: Request) { const { searchParams } = new URL(request.url); diff --git a/app/(chat)/chat/[id]/page.tsx b/app/(chat)/chat/[id]/page.tsx index 859e328..a99d718 100644 --- a/app/(chat)/chat/[id]/page.tsx +++ b/app/(chat)/chat/[id]/page.tsx @@ -5,7 +5,7 @@ import { notFound } from 'next/navigation'; import { DEFAULT_MODEL_NAME, models } from '@/ai/models'; import { auth } from '@/app/(auth)/auth'; import { Chat as PreviewChat } from '@/components/custom/chat'; -import { getChatById, getMessagesByChatId } from '@/db/queries'; +import { getChatById, getMessagesByChatId } from '@/lib/db/queries'; import { convertToUIMessages } from '@/lib/utils'; export default async function Page(props: { params: Promise }) { diff --git a/components/custom/block.tsx b/components/custom/block.tsx index d01bd4c..7321121 100644 --- a/components/custom/block.tsx +++ b/components/custom/block.tsx @@ -17,7 +17,7 @@ import { useWindowSize, } from 'usehooks-ts'; -import { Document, Suggestion, Vote } from '@/db/schema'; +import { Document, Suggestion, Vote } from '@/lib/db/schema'; import { fetcher } from '@/lib/utils'; import { DiffView } from './diffview'; diff --git a/components/custom/chat.tsx b/components/custom/chat.tsx index 3edd615..fa0565a 100644 --- a/components/custom/chat.tsx +++ b/components/custom/chat.tsx @@ -10,7 +10,7 @@ import { useWindowSize } from 'usehooks-ts'; import { ChatHeader } from '@/components/custom/chat-header'; import { PreviewMessage, ThinkingMessage } from '@/components/custom/message'; import { useScrollToBottom } from '@/components/custom/use-scroll-to-bottom'; -import { Vote } from '@/db/schema'; +import { Vote } from '@/lib/db/schema'; import { fetcher } from '@/lib/utils'; import { Block, UIBlock } from './block'; diff --git a/components/custom/editor.tsx b/components/custom/editor.tsx index 64822a4..6d657b8 100644 --- a/components/custom/editor.tsx +++ b/components/custom/editor.tsx @@ -6,7 +6,7 @@ import { EditorState } from 'prosemirror-state'; import { EditorView } from 'prosemirror-view'; import React, { memo, useEffect, useRef } from 'react'; -import { Suggestion } from '@/db/schema'; +import { Suggestion } from '@/lib/db/schema'; import { documentSchema, handleTransaction, diff --git a/components/custom/message-actions.tsx b/components/custom/message-actions.tsx index 902fa09..d88bae8 100644 --- a/components/custom/message-actions.tsx +++ b/components/custom/message-actions.tsx @@ -3,7 +3,7 @@ import { toast } from 'sonner'; import { useSWRConfig } from 'swr'; import { useCopyToClipboard } from 'usehooks-ts'; -import { Vote } from '@/db/schema'; +import { Vote } from '@/lib/db/schema'; import { getMessageIdFromAnnotations } from '@/lib/utils'; import { CopyIcon, ThumbDownIcon, ThumbUpIcon } from './icons'; diff --git a/components/custom/message.tsx b/components/custom/message.tsx index 702a7e1..137beb9 100644 --- a/components/custom/message.tsx +++ b/components/custom/message.tsx @@ -5,7 +5,7 @@ import cx from 'classnames'; import { motion } from 'framer-motion'; import { Dispatch, SetStateAction } from 'react'; -import { Vote } from '@/db/schema'; +import { Vote } from '@/lib/db/schema'; import { UIBlock } from './block'; import { DocumentToolCall, DocumentToolResult } from './document'; diff --git a/components/custom/sidebar-history.tsx b/components/custom/sidebar-history.tsx index cb6e01f..09ca8e2 100644 --- a/components/custom/sidebar-history.tsx +++ b/components/custom/sidebar-history.tsx @@ -34,7 +34,7 @@ import { SidebarMenuItem, useSidebar, } from '@/components/ui/sidebar'; -import { Chat } from '@/db/schema'; +import { Chat } from '@/lib/db/schema'; import { fetcher } from '@/lib/utils'; type GroupedChats = { diff --git a/components/custom/use-block-stream.tsx b/components/custom/use-block-stream.tsx index 8871fa1..bcc0454 100644 --- a/components/custom/use-block-stream.tsx +++ b/components/custom/use-block-stream.tsx @@ -2,7 +2,7 @@ import { JSONValue } from 'ai'; import { Dispatch, SetStateAction, useEffect, useState } from 'react'; import { useSWRConfig } from 'swr'; -import { Suggestion } from '@/db/schema'; +import { Suggestion } from '@/lib/db/schema'; import { UIBlock } from './block'; diff --git a/components/custom/version-footer.tsx b/components/custom/version-footer.tsx index bb30cb5..c257949 100644 --- a/components/custom/version-footer.tsx +++ b/components/custom/version-footer.tsx @@ -6,7 +6,7 @@ import { useState } from 'react'; import { useSWRConfig } from 'swr'; import { useWindowSize } from 'usehooks-ts'; -import { Document } from '@/db/schema'; +import { Document } from '@/lib/db/schema'; import { getDocumentTimestampByIndex } from '@/lib/utils'; import { UIBlock } from './block'; diff --git a/drizzle.config.ts b/drizzle.config.ts index f0537cd..ef25eb8 100644 --- a/drizzle.config.ts +++ b/drizzle.config.ts @@ -6,8 +6,8 @@ config({ }); export default defineConfig({ - schema: './db/schema.ts', - out: './lib/drizzle', + schema: './lib/db/schema.ts', + out: './lib/db/migrations', dialect: 'postgresql', dbCredentials: { url: process.env.POSTGRES_URL!, diff --git a/db/migrate.ts b/lib/db/migrate.ts similarity index 100% rename from db/migrate.ts rename to lib/db/migrate.ts diff --git a/lib/drizzle/0000_keen_devos.sql b/lib/db/migrations/0000_keen_devos.sql similarity index 100% rename from lib/drizzle/0000_keen_devos.sql rename to lib/db/migrations/0000_keen_devos.sql diff --git a/lib/drizzle/0001_sparkling_blue_marvel.sql b/lib/db/migrations/0001_sparkling_blue_marvel.sql similarity index 100% rename from lib/drizzle/0001_sparkling_blue_marvel.sql rename to lib/db/migrations/0001_sparkling_blue_marvel.sql diff --git a/lib/drizzle/0002_wandering_riptide.sql b/lib/db/migrations/0002_wandering_riptide.sql similarity index 100% rename from lib/drizzle/0002_wandering_riptide.sql rename to lib/db/migrations/0002_wandering_riptide.sql diff --git a/lib/drizzle/meta/0000_snapshot.json b/lib/db/migrations/meta/0000_snapshot.json similarity index 100% rename from lib/drizzle/meta/0000_snapshot.json rename to lib/db/migrations/meta/0000_snapshot.json diff --git a/lib/drizzle/meta/0001_snapshot.json b/lib/db/migrations/meta/0001_snapshot.json similarity index 100% rename from lib/drizzle/meta/0001_snapshot.json rename to lib/db/migrations/meta/0001_snapshot.json diff --git a/lib/drizzle/meta/0002_snapshot.json b/lib/db/migrations/meta/0002_snapshot.json similarity index 100% rename from lib/drizzle/meta/0002_snapshot.json rename to lib/db/migrations/meta/0002_snapshot.json diff --git a/lib/drizzle/meta/_journal.json b/lib/db/migrations/meta/_journal.json similarity index 100% rename from lib/drizzle/meta/_journal.json rename to lib/db/migrations/meta/_journal.json diff --git a/db/queries.ts b/lib/db/queries.ts similarity index 100% rename from db/queries.ts rename to lib/db/queries.ts diff --git a/db/schema.ts b/lib/db/schema.ts similarity index 100% rename from db/schema.ts rename to lib/db/schema.ts diff --git a/lib/editor/suggestions.tsx b/lib/editor/suggestions.tsx index 9a74936..e9bd850 100644 --- a/lib/editor/suggestions.tsx +++ b/lib/editor/suggestions.tsx @@ -4,7 +4,7 @@ import { Decoration, DecorationSet, EditorView } from 'prosemirror-view'; import { createRoot } from 'react-dom/client'; import { Suggestion as PreviewSuggestion } from '@/components/custom/suggestion'; -import { Suggestion } from '@/db/schema'; +import { Suggestion } from '@/lib/db/schema'; export interface UISuggestion extends Suggestion { selectionStart: number; diff --git a/lib/utils.ts b/lib/utils.ts index 828dd1b..0366981 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -8,7 +8,7 @@ import { import { clsx, type ClassValue } from 'clsx'; import { twMerge } from 'tailwind-merge'; -import { Message as DBMessage, Document } from '@/db/schema'; +import { Message as DBMessage, Document } from '@/lib/db/schema'; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); diff --git a/package.json b/package.json index a7f9c0f..b943a59 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "lint:fix": "next lint --fix", "format": "prettier --write .", "db:generate": "drizzle-kit generate", - "db:migrate": "npx tsx db/migrate.ts", + "db:migrate": "npx tsx lib/db/migrate.ts", "db:studio": "drizzle-kit studio" }, "dependencies": { diff --git a/tsconfig.json b/tsconfig.json index 42e476b..10c77bb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,6 @@ "isolatedModules": true, "jsx": "preserve", "incremental": true, - "baseUrl": ".", "plugins": [ { "name": "next" From 6d16f67280b5a9f21b5556c080690d5ba008e4a2 Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 10:14:25 -0500 Subject: [PATCH 05/11] Get rid of custom components folder --- app/(auth)/login/page.tsx | 4 ++-- app/(auth)/register/page.tsx | 4 ++-- app/(chat)/chat/[id]/page.tsx | 2 +- app/(chat)/layout.tsx | 2 +- app/(chat)/page.tsx | 2 +- app/layout.tsx | 2 +- components/{custom => }/app-sidebar.tsx | 6 +++--- components/{custom => }/auth-form.tsx | 4 ++-- components/{custom => }/block-stream-handler.tsx | 0 components/{custom => }/block.tsx | 4 ++-- components/{custom => }/chat-header.tsx | 6 +++--- components/{custom => }/chat.tsx | 6 +++--- components/{custom => }/diffview.tsx | 0 components/{custom => }/document-skeleton.tsx | 0 components/{custom => }/document.tsx | 0 components/{custom => }/editor.tsx | 0 components/{custom => }/icons.tsx | 0 components/{custom => }/markdown.tsx | 0 components/{custom => }/message-actions.tsx | 4 ++-- components/{custom => }/message.tsx | 0 components/{custom => }/model-selector.tsx | 0 components/{custom => }/multimodal-input.tsx | 4 ++-- components/{custom => }/overview.tsx | 0 components/{custom => }/preview-attachment.tsx | 0 components/{custom => }/sidebar-history.tsx | 2 +- components/{custom => }/sidebar-toggle.tsx | 2 +- components/{custom => }/sidebar-user-nav.tsx | 0 components/{custom => }/sign-out-form.tsx | 0 components/{custom => }/submit-button.tsx | 4 ++-- components/{custom => }/suggestion.tsx | 2 +- components/{custom => }/theme-provider.tsx | 0 components/{custom => }/toolbar.tsx | 2 +- components/{custom => }/use-block-stream.tsx | 0 components/{custom => }/use-scroll-to-bottom.ts | 0 components/{custom => }/version-footer.tsx | 2 +- components/{custom => }/weather.tsx | 0 lib/editor/functions.tsx | 2 +- lib/editor/suggestions.tsx | 2 +- 38 files changed, 34 insertions(+), 34 deletions(-) rename components/{custom => }/app-sidebar.tsx (91%) rename components/{custom => }/auth-form.tsx (94%) rename components/{custom => }/block-stream-handler.tsx (100%) rename components/{custom => }/block.tsx (99%) rename components/{custom => }/chat-header.tsx (92%) rename components/{custom => }/chat.tsx (94%) rename components/{custom => }/diffview.tsx (100%) rename components/{custom => }/document-skeleton.tsx (100%) rename components/{custom => }/document.tsx (100%) rename components/{custom => }/editor.tsx (100%) rename components/{custom => }/icons.tsx (100%) rename components/{custom => }/markdown.tsx (100%) rename components/{custom => }/message-actions.tsx (98%) rename components/{custom => }/message.tsx (100%) rename components/{custom => }/model-selector.tsx (100%) rename components/{custom => }/multimodal-input.tsx (99%) rename components/{custom => }/overview.tsx (100%) rename components/{custom => }/preview-attachment.tsx (100%) rename components/{custom => }/sidebar-history.tsx (99%) rename components/{custom => }/sidebar-toggle.tsx (94%) rename components/{custom => }/sidebar-user-nav.tsx (100%) rename components/{custom => }/sign-out-form.tsx (100%) rename components/{custom => }/submit-button.tsx (88%) rename components/{custom => }/suggestion.tsx (98%) rename components/{custom => }/theme-provider.tsx (100%) rename components/{custom => }/toolbar.tsx (99%) rename components/{custom => }/use-block-stream.tsx (100%) rename components/{custom => }/use-scroll-to-bottom.ts (100%) rename components/{custom => }/version-footer.tsx (98%) rename components/{custom => }/weather.tsx (100%) diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx index 19a39b3..a8e5d8c 100644 --- a/app/(auth)/login/page.tsx +++ b/app/(auth)/login/page.tsx @@ -5,8 +5,8 @@ import { useRouter } from 'next/navigation'; import { useActionState, useEffect, useState } from 'react'; import { toast } from 'sonner'; -import { AuthForm } from '@/components/custom/auth-form'; -import { SubmitButton } from '@/components/custom/submit-button'; +import { AuthForm } from '@/components/auth-form'; +import { SubmitButton } from '@/components/submit-button'; import { login, LoginActionState } from '../actions'; diff --git a/app/(auth)/register/page.tsx b/app/(auth)/register/page.tsx index 7c6f54c..c95f49c 100644 --- a/app/(auth)/register/page.tsx +++ b/app/(auth)/register/page.tsx @@ -5,8 +5,8 @@ import { useRouter } from 'next/navigation'; import { useActionState, useEffect, useState } from 'react'; import { toast } from 'sonner'; -import { AuthForm } from '@/components/custom/auth-form'; -import { SubmitButton } from '@/components/custom/submit-button'; +import { AuthForm } from '@/components/auth-form'; +import { SubmitButton } from '@/components/submit-button'; import { register, RegisterActionState } from '../actions'; diff --git a/app/(chat)/chat/[id]/page.tsx b/app/(chat)/chat/[id]/page.tsx index a99d718..060962b 100644 --- a/app/(chat)/chat/[id]/page.tsx +++ b/app/(chat)/chat/[id]/page.tsx @@ -4,7 +4,7 @@ import { notFound } from 'next/navigation'; import { DEFAULT_MODEL_NAME, models } from '@/ai/models'; import { auth } from '@/app/(auth)/auth'; -import { Chat as PreviewChat } from '@/components/custom/chat'; +import { Chat as PreviewChat } from '@/components/chat'; import { getChatById, getMessagesByChatId } from '@/lib/db/queries'; import { convertToUIMessages } from '@/lib/utils'; diff --git a/app/(chat)/layout.tsx b/app/(chat)/layout.tsx index 46ff8aa..981aa50 100644 --- a/app/(chat)/layout.tsx +++ b/app/(chat)/layout.tsx @@ -1,6 +1,6 @@ import { cookies } from 'next/headers'; -import { AppSidebar } from '@/components/custom/app-sidebar'; +import { AppSidebar } from '@/components/app-sidebar'; import { SidebarInset, SidebarProvider } from '@/components/ui/sidebar'; import { auth } from '../(auth)/auth'; diff --git a/app/(chat)/page.tsx b/app/(chat)/page.tsx index ca43101..cad4817 100644 --- a/app/(chat)/page.tsx +++ b/app/(chat)/page.tsx @@ -1,7 +1,7 @@ import { cookies } from 'next/headers'; import { DEFAULT_MODEL_NAME, models } from '@/ai/models'; -import { Chat } from '@/components/custom/chat'; +import { Chat } from '@/components/chat'; import { generateUUID } from '@/lib/utils'; export default async function Page() { diff --git a/app/layout.tsx b/app/layout.tsx index 81b5ea0..8a29480 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,7 +1,7 @@ import { Metadata } from 'next'; import { Toaster } from 'sonner'; -import { ThemeProvider } from '@/components/custom/theme-provider'; +import { ThemeProvider } from '@/components/theme-provider'; import './globals.css'; diff --git a/components/custom/app-sidebar.tsx b/components/app-sidebar.tsx similarity index 91% rename from components/custom/app-sidebar.tsx rename to components/app-sidebar.tsx index e6b184d..b753004 100644 --- a/components/custom/app-sidebar.tsx +++ b/components/app-sidebar.tsx @@ -4,9 +4,9 @@ import Link from 'next/link'; import { useRouter } from 'next/navigation'; import { type User } from 'next-auth'; -import { PlusIcon } from '@/components/custom/icons'; -import { SidebarHistory } from '@/components/custom/sidebar-history'; -import { SidebarUserNav } from '@/components/custom/sidebar-user-nav'; +import { PlusIcon } from '@/components/icons'; +import { SidebarHistory } from '@/components/sidebar-history'; +import { SidebarUserNav } from '@/components/sidebar-user-nav'; import { Button } from '@/components/ui/button'; import { Sidebar, diff --git a/components/custom/auth-form.tsx b/components/auth-form.tsx similarity index 94% rename from components/custom/auth-form.tsx rename to components/auth-form.tsx index a49c3ea..9584736 100644 --- a/components/custom/auth-form.tsx +++ b/components/auth-form.tsx @@ -1,7 +1,7 @@ import Form from 'next/form'; -import { Input } from '../ui/input'; -import { Label } from '../ui/label'; +import { Input } from './ui/input'; +import { Label } from './ui/label'; export function AuthForm({ action, diff --git a/components/custom/block-stream-handler.tsx b/components/block-stream-handler.tsx similarity index 100% rename from components/custom/block-stream-handler.tsx rename to components/block-stream-handler.tsx diff --git a/components/custom/block.tsx b/components/block.tsx similarity index 99% rename from components/custom/block.tsx rename to components/block.tsx index 7321121..3002b7c 100644 --- a/components/custom/block.tsx +++ b/components/block.tsx @@ -29,8 +29,8 @@ import { MultimodalInput } from './multimodal-input'; import { Toolbar } from './toolbar'; import { useScrollToBottom } from './use-scroll-to-bottom'; import { VersionFooter } from './version-footer'; -import { Button } from '../ui/button'; -import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip'; +import { Button } from './ui/button'; +import { Tooltip, TooltipContent, TooltipTrigger } from './ui/tooltip'; export interface UIBlock { title: string; documentId: string; diff --git a/components/custom/chat-header.tsx b/components/chat-header.tsx similarity index 92% rename from components/custom/chat-header.tsx rename to components/chat-header.tsx index 4448aac..c8e0070 100644 --- a/components/custom/chat-header.tsx +++ b/components/chat-header.tsx @@ -4,13 +4,13 @@ import Link from 'next/link'; import { useRouter } from 'next/navigation'; import { useWindowSize } from 'usehooks-ts'; -import { ModelSelector } from '@/components/custom/model-selector'; -import { SidebarToggle } from '@/components/custom/sidebar-toggle'; +import { ModelSelector } from '@/components/model-selector'; +import { SidebarToggle } from '@/components/sidebar-toggle'; import { Button } from '@/components/ui/button'; import { BetterTooltip } from '@/components/ui/tooltip'; import { PlusIcon, VercelIcon } from './icons'; -import { useSidebar } from '../ui/sidebar'; +import { useSidebar } from './ui/sidebar'; export function ChatHeader({ selectedModelId }: { selectedModelId: string }) { const router = useRouter(); diff --git a/components/custom/chat.tsx b/components/chat.tsx similarity index 94% rename from components/custom/chat.tsx rename to components/chat.tsx index fa0565a..c36a02a 100644 --- a/components/custom/chat.tsx +++ b/components/chat.tsx @@ -7,9 +7,9 @@ import { useState } from 'react'; import useSWR, { useSWRConfig } from 'swr'; import { useWindowSize } from 'usehooks-ts'; -import { ChatHeader } from '@/components/custom/chat-header'; -import { PreviewMessage, ThinkingMessage } from '@/components/custom/message'; -import { useScrollToBottom } from '@/components/custom/use-scroll-to-bottom'; +import { ChatHeader } from '@/components/chat-header'; +import { PreviewMessage, ThinkingMessage } from '@/components/message'; +import { useScrollToBottom } from '@/components/use-scroll-to-bottom'; import { Vote } from '@/lib/db/schema'; import { fetcher } from '@/lib/utils'; diff --git a/components/custom/diffview.tsx b/components/diffview.tsx similarity index 100% rename from components/custom/diffview.tsx rename to components/diffview.tsx diff --git a/components/custom/document-skeleton.tsx b/components/document-skeleton.tsx similarity index 100% rename from components/custom/document-skeleton.tsx rename to components/document-skeleton.tsx diff --git a/components/custom/document.tsx b/components/document.tsx similarity index 100% rename from components/custom/document.tsx rename to components/document.tsx diff --git a/components/custom/editor.tsx b/components/editor.tsx similarity index 100% rename from components/custom/editor.tsx rename to components/editor.tsx diff --git a/components/custom/icons.tsx b/components/icons.tsx similarity index 100% rename from components/custom/icons.tsx rename to components/icons.tsx diff --git a/components/custom/markdown.tsx b/components/markdown.tsx similarity index 100% rename from components/custom/markdown.tsx rename to components/markdown.tsx diff --git a/components/custom/message-actions.tsx b/components/message-actions.tsx similarity index 98% rename from components/custom/message-actions.tsx rename to components/message-actions.tsx index d88bae8..3d0e257 100644 --- a/components/custom/message-actions.tsx +++ b/components/message-actions.tsx @@ -7,13 +7,13 @@ import { Vote } from '@/lib/db/schema'; import { getMessageIdFromAnnotations } from '@/lib/utils'; import { CopyIcon, ThumbDownIcon, ThumbUpIcon } from './icons'; -import { Button } from '../ui/button'; +import { Button } from './ui/button'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, -} from '../ui/tooltip'; +} from './ui/tooltip'; export function MessageActions({ chatId, diff --git a/components/custom/message.tsx b/components/message.tsx similarity index 100% rename from components/custom/message.tsx rename to components/message.tsx diff --git a/components/custom/model-selector.tsx b/components/model-selector.tsx similarity index 100% rename from components/custom/model-selector.tsx rename to components/model-selector.tsx diff --git a/components/custom/multimodal-input.tsx b/components/multimodal-input.tsx similarity index 99% rename from components/custom/multimodal-input.tsx rename to components/multimodal-input.tsx index 036a8c0..06ab049 100644 --- a/components/custom/multimodal-input.tsx +++ b/components/multimodal-input.tsx @@ -19,8 +19,8 @@ import { sanitizeUIMessages } from '@/lib/utils'; import { ArrowUpIcon, PaperclipIcon, StopIcon } from './icons'; import { PreviewAttachment } from './preview-attachment'; -import { Button } from '../ui/button'; -import { Textarea } from '../ui/textarea'; +import { Button } from './ui/button'; +import { Textarea } from './ui/textarea'; const suggestedActions = [ { diff --git a/components/custom/overview.tsx b/components/overview.tsx similarity index 100% rename from components/custom/overview.tsx rename to components/overview.tsx diff --git a/components/custom/preview-attachment.tsx b/components/preview-attachment.tsx similarity index 100% rename from components/custom/preview-attachment.tsx rename to components/preview-attachment.tsx diff --git a/components/custom/sidebar-history.tsx b/components/sidebar-history.tsx similarity index 99% rename from components/custom/sidebar-history.tsx rename to components/sidebar-history.tsx index 09ca8e2..fe90330 100644 --- a/components/custom/sidebar-history.tsx +++ b/components/sidebar-history.tsx @@ -8,7 +8,7 @@ import { useEffect, useState } from 'react'; import { toast } from 'sonner'; import useSWR from 'swr'; -import { MoreHorizontalIcon, TrashIcon } from '@/components/custom/icons'; +import { MoreHorizontalIcon, TrashIcon } from '@/components/icons'; import { AlertDialog, AlertDialogAction, diff --git a/components/custom/sidebar-toggle.tsx b/components/sidebar-toggle.tsx similarity index 94% rename from components/custom/sidebar-toggle.tsx rename to components/sidebar-toggle.tsx index acb29fd..332d3f7 100644 --- a/components/custom/sidebar-toggle.tsx +++ b/components/sidebar-toggle.tsx @@ -5,7 +5,7 @@ import { BetterTooltip } from '@/components/ui/tooltip'; import { cn } from '@/lib/utils'; import { SidebarLeftIcon } from './icons'; -import { Button } from '../ui/button'; +import { Button } from './ui/button'; export function SidebarToggle({ className, diff --git a/components/custom/sidebar-user-nav.tsx b/components/sidebar-user-nav.tsx similarity index 100% rename from components/custom/sidebar-user-nav.tsx rename to components/sidebar-user-nav.tsx diff --git a/components/custom/sign-out-form.tsx b/components/sign-out-form.tsx similarity index 100% rename from components/custom/sign-out-form.tsx rename to components/sign-out-form.tsx diff --git a/components/custom/submit-button.tsx b/components/submit-button.tsx similarity index 88% rename from components/custom/submit-button.tsx rename to components/submit-button.tsx index 34e4f17..526c32e 100644 --- a/components/custom/submit-button.tsx +++ b/components/submit-button.tsx @@ -2,9 +2,9 @@ import { useFormStatus } from 'react-dom'; -import { LoaderIcon } from '@/components/custom/icons'; +import { LoaderIcon } from '@/components/icons'; -import { Button } from '../ui/button'; +import { Button } from './ui/button'; export function SubmitButton({ children, diff --git a/components/custom/suggestion.tsx b/components/suggestion.tsx similarity index 98% rename from components/custom/suggestion.tsx rename to components/suggestion.tsx index 02d2258..b0a9dfe 100644 --- a/components/custom/suggestion.tsx +++ b/components/suggestion.tsx @@ -7,7 +7,7 @@ import { useWindowSize } from 'usehooks-ts'; import { UISuggestion } from '@/lib/editor/suggestions'; import { CrossIcon, MessageIcon } from './icons'; -import { Button } from '../ui/button'; +import { Button } from './ui/button'; export const Suggestion = ({ suggestion, diff --git a/components/custom/theme-provider.tsx b/components/theme-provider.tsx similarity index 100% rename from components/custom/theme-provider.tsx rename to components/theme-provider.tsx diff --git a/components/custom/toolbar.tsx b/components/toolbar.tsx similarity index 99% rename from components/custom/toolbar.tsx rename to components/toolbar.tsx index ec052e1..559a289 100644 --- a/components/custom/toolbar.tsx +++ b/components/toolbar.tsx @@ -26,7 +26,7 @@ import { StopIcon, SummarizeIcon, } from './icons'; -import { Button } from '../ui/button'; +import { Button } from './ui/button'; type ToolProps = { type: 'final-polish' | 'request-suggestions' | 'adjust-reading-level'; diff --git a/components/custom/use-block-stream.tsx b/components/use-block-stream.tsx similarity index 100% rename from components/custom/use-block-stream.tsx rename to components/use-block-stream.tsx diff --git a/components/custom/use-scroll-to-bottom.ts b/components/use-scroll-to-bottom.ts similarity index 100% rename from components/custom/use-scroll-to-bottom.ts rename to components/use-scroll-to-bottom.ts diff --git a/components/custom/version-footer.tsx b/components/version-footer.tsx similarity index 98% rename from components/custom/version-footer.tsx rename to components/version-footer.tsx index c257949..f92d642 100644 --- a/components/custom/version-footer.tsx +++ b/components/version-footer.tsx @@ -11,7 +11,7 @@ import { getDocumentTimestampByIndex } from '@/lib/utils'; import { UIBlock } from './block'; import { LoaderIcon } from './icons'; -import { Button } from '../ui/button'; +import { Button } from './ui/button'; interface VersionFooterProps { block: UIBlock; diff --git a/components/custom/weather.tsx b/components/weather.tsx similarity index 100% rename from components/custom/weather.tsx rename to components/weather.tsx diff --git a/lib/editor/functions.tsx b/lib/editor/functions.tsx index eb58ac5..6d0d394 100644 --- a/lib/editor/functions.tsx +++ b/lib/editor/functions.tsx @@ -5,7 +5,7 @@ import { DOMParser, Node } from 'prosemirror-model'; import { Decoration, DecorationSet, EditorView } from 'prosemirror-view'; import { renderToString } from 'react-dom/server'; -import { Markdown } from '@/components/custom/markdown'; +import { Markdown } from '@/components/markdown'; import { documentSchema } from './config'; import { createSuggestionWidget, UISuggestion } from './suggestions'; diff --git a/lib/editor/suggestions.tsx b/lib/editor/suggestions.tsx index e9bd850..84d69e6 100644 --- a/lib/editor/suggestions.tsx +++ b/lib/editor/suggestions.tsx @@ -3,7 +3,7 @@ import { PluginKey, Plugin } from 'prosemirror-state'; import { Decoration, DecorationSet, EditorView } from 'prosemirror-view'; import { createRoot } from 'react-dom/client'; -import { Suggestion as PreviewSuggestion } from '@/components/custom/suggestion'; +import { Suggestion as PreviewSuggestion } from '@/components/suggestion'; import { Suggestion } from '@/lib/db/schema'; export interface UISuggestion extends Suggestion { From e2a1f9a398989542a20a73e1ef63d8a5fde9714d Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 10:15:49 -0500 Subject: [PATCH 06/11] Switch to gpt-4o-mini --- app/(chat)/actions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/(chat)/actions.ts b/app/(chat)/actions.ts index 1887e4e..9a1c8fa 100644 --- a/app/(chat)/actions.ts +++ b/app/(chat)/actions.ts @@ -16,7 +16,7 @@ export async function generateTitleFromUserMessage({ message: CoreUserMessage; }) { const { text: title } = await generateText({ - model: customModel('gpt-3.5-turbo'), + model: customModel('gpt-4o-mini'), system: `\n - you will generate a short title based on the first message a user begins a conversation with - ensure it is not more than 80 characters long From ea6f62c9d69320cf07f5ae6ff063ca4cb0b40be2 Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 10:18:31 -0500 Subject: [PATCH 07/11] Fix linter errors --- components/block.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/block.tsx b/components/block.tsx index 3002b7c..d0de976 100644 --- a/components/block.tsx +++ b/components/block.tsx @@ -27,10 +27,10 @@ import { CopyIcon, CrossIcon, DeltaIcon, RedoIcon, UndoIcon } from './icons'; import { PreviewMessage } from './message'; import { MultimodalInput } from './multimodal-input'; import { Toolbar } from './toolbar'; -import { useScrollToBottom } from './use-scroll-to-bottom'; -import { VersionFooter } from './version-footer'; import { Button } from './ui/button'; import { Tooltip, TooltipContent, TooltipTrigger } from './ui/tooltip'; +import { useScrollToBottom } from './use-scroll-to-bottom'; +import { VersionFooter } from './version-footer'; export interface UIBlock { title: string; documentId: string; From 91aaddda5f4792b8ad01133a6eb87192932ac1dd Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 10:37:01 -0500 Subject: [PATCH 08/11] Switch to biome for fomatting --- .prettierignore | 2 - app/(auth)/actions.ts | 4 +- app/(auth)/auth.config.ts | 10 ++-- app/(auth)/register/page.tsx | 2 +- biome.json | 42 +++++++++++++++ package.json | 4 +- pnpm-lock.yaml | 101 +++++++++++++++++++++++++++++++---- prettier.config.cjs | 9 ---- 8 files changed, 144 insertions(+), 30 deletions(-) delete mode 100644 .prettierignore create mode 100644 biome.json delete mode 100644 prettier.config.cjs diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 4be8cf9..0000000 --- a/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -pnpm-lock.yaml -lib/drizzle \ No newline at end of file diff --git a/app/(auth)/actions.ts b/app/(auth)/actions.ts index 058e8af..ae2f903 100644 --- a/app/(auth)/actions.ts +++ b/app/(auth)/actions.ts @@ -6,6 +6,8 @@ import { createUser, getUser } from '@/lib/db/queries'; import { signIn } from './auth'; + + const authFormSchema = z.object({ email: z.string().email(), password: z.string().min(6), @@ -61,7 +63,7 @@ export const register = async ( password: formData.get('password'), }); - let [user] = await getUser(validatedData.email); + const [user] = await getUser(validatedData.email); if (user) { return { status: 'user_exists' } as RegisterActionState; diff --git a/app/(auth)/auth.config.ts b/app/(auth)/auth.config.ts index 1a910a3..cf1ecdd 100644 --- a/app/(auth)/auth.config.ts +++ b/app/(auth)/auth.config.ts @@ -1,4 +1,4 @@ -import { NextAuthConfig } from 'next-auth'; +import type { NextAuthConfig } from 'next-auth'; export const authConfig = { pages: { @@ -11,10 +11,10 @@ export const authConfig = { ], callbacks: { authorized({ auth, request: { nextUrl } }) { - let isLoggedIn = !!auth?.user; - let isOnChat = nextUrl.pathname.startsWith('/'); - let isOnRegister = nextUrl.pathname.startsWith('/register'); - let isOnLogin = nextUrl.pathname.startsWith('/login'); + const isLoggedIn = !!auth?.user; + const isOnChat = nextUrl.pathname.startsWith('/'); + const isOnRegister = nextUrl.pathname.startsWith('/register'); + const isOnLogin = nextUrl.pathname.startsWith('/login'); if (isLoggedIn && (isOnLogin || isOnRegister)) { return Response.redirect(new URL('/', nextUrl as unknown as URL)); diff --git a/app/(auth)/register/page.tsx b/app/(auth)/register/page.tsx index c95f49c..df82583 100644 --- a/app/(auth)/register/page.tsx +++ b/app/(auth)/register/page.tsx @@ -8,7 +8,7 @@ import { toast } from 'sonner'; import { AuthForm } from '@/components/auth-form'; import { SubmitButton } from '@/components/submit-button'; -import { register, RegisterActionState } from '../actions'; +import { register, type RegisterActionState } from '../actions'; export default function Page() { const router = useRouter(); diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..73edd88 --- /dev/null +++ b/biome.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false }, + "files": { + "ignoreUnknown": false, + "ignore": [ + "**/pnpm-lock.yaml", + "lib/db/migrations", + "node_modules", + ".next", + "public", + ".vercel" + ] + }, + "formatter": { + "enabled": true, + "useEditorconfig": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineEnding": "lf", + "lineWidth": 80, + "attributePosition": "auto", + "bracketSpacing": true, + "ignore": ["**/pnpm-lock.yaml", "lib/db/drizzle"] + }, + "organizeImports": { "enabled": false }, + "linter": { "enabled": false }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "es5", + "semicolons": "always", + "arrowParentheses": "always", + "bracketSameLine": false, + "quoteStyle": "single", + "attributePosition": "auto", + "bracketSpacing": true + } + } +} diff --git a/package.json b/package.json index b943a59..26b2a7f 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "start": "next start", "lint": "next lint", "lint:fix": "next lint --fix", - "format": "prettier --write .", + "format": "biome format --write", "db:generate": "drizzle-kit generate", "db:migrate": "npx tsx lib/db/migrate.ts", "db:studio": "drizzle-kit studio" @@ -66,6 +66,7 @@ "zod": "^3.23.8" }, "devDependencies": { + "@biomejs/biome": "1.9.4", "@tailwindcss/typography": "^0.5.15", "@types/d3-scale": "^4.0.8", "@types/node": "^22.8.6", @@ -80,7 +81,6 @@ "eslint-plugin-import": "^2.31.0", "eslint-plugin-tailwindcss": "^3.17.5", "postcss": "^8", - "prettier": "^3.3.3", "tailwindcss": "^3.4.1", "tsx": "^4.19.1", "typescript": "^5" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4854c39..4da0565 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,6 +159,9 @@ importers: specifier: ^3.23.8 version: 3.23.8 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@tailwindcss/typography': specifier: ^0.5.15 version: 0.5.15(tailwindcss@3.4.14) @@ -201,9 +204,6 @@ importers: postcss: specifier: ^8 version: 8.4.47 - prettier: - specifier: ^3.3.3 - version: 3.3.3 tailwindcss: specifier: ^3.4.1 version: 3.4.14 @@ -274,6 +274,59 @@ packages: nodemailer: optional: true + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} @@ -3013,11 +3066,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} - hasBin: true - pretty-format@3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} @@ -3645,6 +3693,41 @@ snapshots: preact: 10.11.3 preact-render-to-string: 5.2.3(preact@10.11.3) + '@biomejs/biome@1.9.4': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 + + '@biomejs/cli-darwin-arm64@1.9.4': + optional: true + + '@biomejs/cli-darwin-x64@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64@1.9.4': + optional: true + + '@biomejs/cli-linux-x64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-x64@1.9.4': + optional: true + + '@biomejs/cli-win32-arm64@1.9.4': + optional: true + + '@biomejs/cli-win32-x64@1.9.4': + optional: true + '@drizzle-team/brocli@0.10.2': {} '@emnapi/runtime@1.3.1': @@ -6510,8 +6593,6 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.3.3: {} - pretty-format@3.8.0: {} prop-types@15.8.1: diff --git a/prettier.config.cjs b/prettier.config.cjs deleted file mode 100644 index db1f545..0000000 --- a/prettier.config.cjs +++ /dev/null @@ -1,9 +0,0 @@ -/** @type {import('prettier').Config} */ -module.exports = { - endOfLine: 'lf', - semi: true, - useTabs: false, - singleQuote: true, - tabWidth: 2, - trailingComma: 'es5', -}; From 0ad4cb240f68d3243ed0a8f928fc7110f5b1b13c Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 10:37:18 -0500 Subject: [PATCH 09/11] Run biome --- app/(auth)/actions.ts | 2 -- app/globals.css | 10 +++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/(auth)/actions.ts b/app/(auth)/actions.ts index ae2f903..4197bd4 100644 --- a/app/(auth)/actions.ts +++ b/app/(auth)/actions.ts @@ -6,8 +6,6 @@ import { createUser, getUser } from '@/lib/db/queries'; import { signIn } from './auth'; - - const authFormSchema = z.object({ email: z.string().email(), password: z.string().min(6), diff --git a/app/globals.css b/app/globals.css index 0b57f94..589ffe8 100644 --- a/app/globals.css +++ b/app/globals.css @@ -104,17 +104,17 @@ } @font-face { - font-family: 'geist'; + font-family: "geist"; font-style: normal; font-weight: 100 900; - src: url(/fonts/geist.woff2) format('woff2'); + src: url(/fonts/geist.woff2) format("woff2"); } @font-face { - font-family: 'geist-mono'; + font-family: "geist-mono"; font-style: normal; font-weight: 100 900; - src: url(/fonts/geist-mono.woff2) format('woff2'); + src: url(/fonts/geist-mono.woff2) format("woff2"); } } @@ -123,7 +123,7 @@ pointer-events: none !important; } - *[class^='text-'] { + *[class^="text-"] { color: transparent; @apply rounded-md bg-foreground/20 select-none animate-pulse; } From 1efc54816a39b9d7cf930a6e1cb04a89cfcb3a9f Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 11:09:17 -0500 Subject: [PATCH 10/11] Remove import order --- .eslintrc.json | 23 ++--------------------- package.json | 5 ++--- pnpm-lock.yaml | 47 ++++------------------------------------------- 3 files changed, 8 insertions(+), 67 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 5f4cbd8..eef7b07 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -6,29 +6,10 @@ "prettier", "plugin:tailwindcss/recommended" ], - "plugins": ["import", "tailwindcss"], + "plugins": ["tailwindcss"], "rules": { "tailwindcss/no-custom-classname": "off", - "tailwindcss/classnames-order": "off", - "import/order": [ - "error", - { - "groups": [ - "builtin", - "external", - "internal", - ["parent", "sibling"], - "index", - "object", - "type" - ], - "newlines-between": "always", - "alphabetize": { - "order": "asc", - "caseInsensitive": true - } - } - ] + "tailwindcss/classnames-order": "off" }, "settings": { "import/resolver": { diff --git a/package.json b/package.json index 26b2a7f..42c1bec 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "dev": "next dev --turbo", "build": "next build", "start": "next start", - "lint": "next lint", - "lint:fix": "next lint --fix", + "lint": "next lint && biome lint", + "lint:fix": "next lint --fix && biome lint --write", "format": "biome format --write", "db:generate": "drizzle-kit generate", "db:migrate": "npx tsx lib/db/migrate.ts", @@ -78,7 +78,6 @@ "eslint-config-next": "14.2.5", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.6.3", - "eslint-plugin-import": "^2.31.0", "eslint-plugin-tailwindcss": "^3.17.5", "postcss": "^8", "tailwindcss": "^3.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4da0565..3ff414b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -195,9 +195,6 @@ importers: eslint-import-resolver-typescript: specifier: ^3.6.3 version: 3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: - specifier: ^2.31.0 - version: 2.31.0(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-plugin-tailwindcss: specifier: ^3.17.5 version: 3.17.5(tailwindcss@3.4.14) @@ -5282,13 +5279,13 @@ snapshots: debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.12.0(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -5316,45 +5313,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(eslint-import-resolver-typescript@3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): - dependencies: - debug: 3.2.7 - optionalDependencies: - eslint: 8.57.1 - eslint-import-resolver-typescript: 3.6.3(eslint-plugin-import@2.31.0)(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.15.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - string.prototype.trimend: 1.0.8 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -5376,6 +5335,8 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack From 2c26277ee61baf2ebb4dbe8aaf70f9186827ec52 Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 11:09:44 -0500 Subject: [PATCH 11/11] Remove biome lint for separate PR --- biome.json | 22 +++++++++++++++++++--- package.json | 4 ++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/biome.json b/biome.json index 73edd88..79636bc 100644 --- a/biome.json +++ b/biome.json @@ -1,11 +1,12 @@ { "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false }, + "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": true }, "files": { "ignoreUnknown": false, "ignore": [ "**/pnpm-lock.yaml", "lib/db/migrations", + "lib/editor/react-renderer.tsx", "node_modules", ".next", "public", @@ -24,8 +25,23 @@ "bracketSpacing": true, "ignore": ["**/pnpm-lock.yaml", "lib/db/drizzle"] }, - "organizeImports": { "enabled": false }, - "linter": { "enabled": false }, + "organizeImports": { "enabled": true }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "a11y": { + "noSvgWithoutTitle": "off", + "useKeyWithClickEvents": "off" + }, + "style": { + "noNonNullAssertion": "off" + }, + "correctness": { + "useExhaustiveDependencies": "off" + } + } + }, "javascript": { "formatter": { "jsxQuoteStyle": "double", diff --git a/package.json b/package.json index 42c1bec..b464d0f 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "dev": "next dev --turbo", "build": "next build", "start": "next start", - "lint": "next lint && biome lint", - "lint:fix": "next lint --fix && biome lint --write", + "lint": "next lint", + "lint:fix": "next lint --fix", "format": "biome format --write", "db:generate": "drizzle-kit generate", "db:migrate": "npx tsx lib/db/migrate.ts",