diff --git a/package-lock.json b/package-lock.json index 7f11f2c01..bcf634f89 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,15 +35,10 @@ "@radix-ui/react-toast": "^1.2.14", "@radix-ui/react-tooltip": "^1.2.7", "@sentry/react": "^10.65.0", - "@stripe/stripe-js": "^8.7.0", "@supabase/supabase-js": "^2.49.1", "@tanstack/react-query": "^5.83.0", - "@types/jspdf": "^1.3.3", - "@types/react-joyride": "^2.0.2", "@vercel/analytics": "^2.0.1", "@vercel/speed-insights": "^2.0.0", - "baseline-browser-mapping": "^2.9.19", - "caniuse-lite": "^1.0.30001766", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^3.6.0", @@ -52,7 +47,6 @@ "framer-motion": "^12.31.0", "html-to-image": "^1.11.13", "i18next": "^23.16.8", - "i18next-browser-languagedetector": "^8.0.4", "jspdf": "^4.1.0", "jspdf-autotable": "^5.0.7", "lucide-react": "^0.462.0", @@ -3358,15 +3352,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@stripe/stripe-js": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-8.11.0.tgz", - "integrity": "sha512-3fVF4z3efsgwgyj64nFK+6F4/vMw0mUXD2TBbOfftJtKVNx4JNv3CSfe1fY4DCtCk0JFp8/YPNcRkzgV0HJ8cg==", - "license": "MIT", - "engines": { - "node": ">=12.16" - } - }, "node_modules/@supabase/auth-js": { "version": "2.114.0", "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.114.0.tgz", @@ -4205,12 +4190,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/jspdf": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/jspdf/-/jspdf-1.3.3.tgz", - "integrity": "sha512-DqwyAKpVuv+7DniCp2Deq1xGvfdnKSNgl9Agun2w6dFvR5UKamiv4VfYUgcypd8S9ojUyARFIlZqBrYrBMQlew==", - "license": "MIT" - }, "node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", @@ -4274,15 +4253,6 @@ "@types/react": "^18.0.0" } }, - "node_modules/@types/react-joyride": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/react-joyride/-/react-joyride-2.0.2.tgz", - "integrity": "sha512-RbixI8KE4K4B4bVzigT765oiQMCbWqlb9vj5qz1pFvkOvynkiAGurGVVf+nGszGGa89WrQhUnAwd0t1tqxeoDw==", - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, "node_modules/@types/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -5142,6 +5112,7 @@ "version": "2.11.20", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.20.tgz", "integrity": "sha512-H0ulySigv6icDJ1F7SjtdCD6PrhTpdYCmP0CactWy1+ekh0AFd0o1Wn5T8b+hnTmdBx19u9yhL6wvCylXMY7zw==", + "dev": true, "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -5301,6 +5272,7 @@ "version": "1.0.30001810", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz", "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -7136,15 +7108,6 @@ "@babel/runtime": "^7.23.2" } }, - "node_modules/i18next-browser-languagedetector": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.2.1.tgz", - "integrity": "sha512-bZg8+4bdmaOiApD7N7BPT9W8MLZG+nPTOFlLiJiT8uzKXFjhxw4v2ierCXOwB5sFDMtuA5G4kgYZ0AznZxQ/cw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.2" - } - }, "node_modules/iceberg-js": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/iceberg-js/-/iceberg-js-0.8.1.tgz", diff --git a/package.json b/package.json index 99028dab4..99a0687e6 100644 --- a/package.json +++ b/package.json @@ -17,14 +17,12 @@ "typecheck": "tsc --noEmit -p tsconfig.app.json", "preview": "vite preview", "test": "vitest run", - "test:coverage": "vitest run --coverage", "test:watch": "vitest", "test:edge": "deno test --allow-read --allow-env=EXA_API_KEY,SUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY,SPARRING_INTEGRITY_SECRET,OPENAI_API_KEY --allow-net=127.0.0.1 supabase/functions/", "test:db": "supabase test db", "test:e2e": "playwright test --project=desktop-chromium --project=mobile-chromium", "test:e2e:webkit": "playwright test --project=webkit", "test:e2e:staging": "playwright test --project=staging", - "test:e2e:ui": "playwright test --ui", "verify": "npm run docs:check && npm run lint && npm run typecheck && npm test -- --coverage && npm run test:edge && npm run build && CI=1 PORT=18080 PLAYWRIGHT_BASE_URL=http://127.0.0.1:18080 npm run test:e2e" }, "dependencies": { @@ -55,15 +53,10 @@ "@radix-ui/react-toast": "^1.2.14", "@radix-ui/react-tooltip": "^1.2.7", "@sentry/react": "^10.65.0", - "@stripe/stripe-js": "^8.7.0", "@supabase/supabase-js": "^2.49.1", "@tanstack/react-query": "^5.83.0", - "@types/jspdf": "^1.3.3", - "@types/react-joyride": "^2.0.2", "@vercel/analytics": "^2.0.1", "@vercel/speed-insights": "^2.0.0", - "baseline-browser-mapping": "^2.9.19", - "caniuse-lite": "^1.0.30001766", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^3.6.0", @@ -72,7 +65,6 @@ "framer-motion": "^12.31.0", "html-to-image": "^1.11.13", "i18next": "^23.16.8", - "i18next-browser-languagedetector": "^8.0.4", "jspdf": "^4.1.0", "jspdf-autotable": "^5.0.7", "lucide-react": "^0.462.0", diff --git a/tailwind.config.ts b/tailwind.config.ts index ff7c9b111..35d3d738f 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -4,7 +4,7 @@ import typography from "@tailwindcss/typography"; export default { darkMode: ["class"], - content: ["./pages/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}", "./app/**/*.{ts,tsx}", "./src/**/*.{ts,tsx}"], + content: ["./src/**/*.{ts,tsx}"], prefix: "", theme: { container: { diff --git a/vite.config.ts b/vite.config.ts index a9faaa557..9e93d2705 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -14,6 +14,8 @@ export default defineConfig(({ mode }) => ({ }, plugins: [react()], optimizeDeps: { + // Narrows dev prebundling to the SPA entry. Without this, Vite crawls all + // 84 HTML files under the root, including the prerendered pages in public/. entries: ['index.html'], }, resolve: {