diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx index 6f23f81..0de3026 100644 --- a/frontend/app/layout.tsx +++ b/frontend/app/layout.tsx @@ -2,6 +2,7 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; import { AuthProvider } from "./providers"; +import { SpeedInsights } from "@vercel/speed-insights/next"; const geistSans = Geist({ variable: "--font-geist-sans", @@ -26,6 +27,7 @@ export default function RootLayout({ children }: { children: React.ReactNode }) {children} + ); diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 0989cf3..6f0ec19 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -17,6 +17,7 @@ "@supabase/ssr": "^0.8.0", "@supabase/supabase-js": "^2.95.2", "@vercel/analytics": "1.3.1", + "@vercel/speed-insights": "^1.3.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.454.0", @@ -2930,6 +2931,40 @@ } } }, + "node_modules/@vercel/speed-insights": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.3.1.tgz", + "integrity": "sha512-PbEr7FrMkUrGYvlcLHGkXdCkxnylCWePx7lPxxq36DNdfo9mcUjLOmqOyPDHAOgnfqgGGdmE3XI9L/4+5fr+vQ==", + "license": "Apache-2.0", + "peerDependencies": { + "@sveltejs/kit": "^1 || ^2", + "next": ">= 13", + "react": "^18 || ^19 || ^19.0.0-rc", + "svelte": ">= 4", + "vue": "^3", + "vue-router": "^4" + }, + "peerDependenciesMeta": { + "@sveltejs/kit": { + "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + }, + "vue-router": { + "optional": true + } + } + }, "node_modules/@webgpu/types": { "version": "0.1.69", "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.69.tgz", diff --git a/frontend/package.json b/frontend/package.json index 8c82699..d2f132a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,49 +1,50 @@ { - "name": "frontend", - "version": "0.1.0", - "private": true, - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "eslint" - }, - "dependencies": { - "@supabase/ssr": "^0.8.0", - "@supabase/supabase-js": "^2.95.2", - "next-themes": "^0.4.6", - "next": "16.1.6", - "react": "19.2.3", - "react-dom": "19.2.3", - "clsx": "^2.1.1", - "lucide-react": "^0.454.0", - "tailwind-merge": "^3.3.1", - "@radix-ui/react-tooltip": "1.1.6", - "@react-three/postprocessing": "^3.0.4", - "meshline": "^3.3.1", - "motion": "^12.23.12", - "three": "^0.167.1", - "class-variance-authority": "^0.7.1", - "@vercel/analytics": "1.3.1", - "@react-three/rapier": "^2.2.0", - "react-use-measure": "^2.1.7", - "@react-three/fiber": "^9.5.0", - "@radix-ui/react-slot": "1.1.1", - "@react-three/drei": "^10.7.7", - "postprocessing": "^6.38.2" - }, - "devDependencies": { - "@tailwindcss/postcss": "^4", - "@types/node": "^20", - "@types/react": "^19", - "@types/react-dom": "^19", - "autoprefixer": "^10.4.24", - "eslint": "^9", - "eslint-config-next": "16.1.6", - "postcss": "^8.5.6", - "tailwindcss": "^4.1.18", - "typescript": "^5", - "tw-animate-css": "1.3.3", - "@types/three": "^0.182.0" - } + "name": "frontend", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "eslint" + }, + "dependencies": { + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-tooltip": "1.1.6", + "@react-three/drei": "^10.7.7", + "@react-three/fiber": "^9.5.0", + "@react-three/postprocessing": "^3.0.4", + "@react-three/rapier": "^2.2.0", + "@supabase/ssr": "^0.8.0", + "@supabase/supabase-js": "^2.95.2", + "@vercel/analytics": "1.3.1", + "@vercel/speed-insights": "^1.3.1", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.454.0", + "meshline": "^3.3.1", + "motion": "^12.23.12", + "next": "16.1.6", + "next-themes": "^0.4.6", + "postprocessing": "^6.38.2", + "react": "19.2.3", + "react-dom": "19.2.3", + "react-use-measure": "^2.1.7", + "tailwind-merge": "^3.3.1", + "three": "^0.167.1" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "@types/three": "^0.182.0", + "autoprefixer": "^10.4.24", + "eslint": "^9", + "eslint-config-next": "16.1.6", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.18", + "tw-animate-css": "1.3.3", + "typescript": "^5" + } }