{ "name": "web", "version": "0.1.0", "private": true, "scripts": { "copy-aup": "cp \"src/app/(main)/(website)/(landing)/(mdx)/legal/acceptable-use-policy/page.mdx\" \"src/app/(main)/onboarding/validate-description/acceptable-use-policy.mdx\"", "prebuild": "pnpm copy-aup", "dev": "pnpm copy-aup && next dev --turbopack", "build": "next build --turbopack", "start": "next start", "format": "oxfmt ./src", "format:check": "oxfmt --check ./src", "lint:changed": "oxlint --type-aware $(git diff --name-only --relative --diff-filter=ACMR HEAD | grep -E '\\.(cjs|js|jsx|mjs|ts|tsx)$')", "test": "vitest run --project uncompiled --coverage && vitest run --project compiled", "test:e2e": "vitest run --config vitest.e2e.config.ts", "test:e2e:headed": "E2E_HEADED=1 vitest run --config vitest.e2e.config.ts", "typecheck": "tsc --noEmit" }, "engines": { "node": "=24" }, "dependencies": { "@ai-sdk/anthropic": "^4.0.0", "@ai-sdk/google": "^4.0.0", "@ai-sdk/mcp": "^2.0.0", "@ai-sdk/openai": "catalog:", "@ai-sdk/otel": "^1.0.0", "@ai-sdk/react": "^4.0.0", "@cloudflare/stream-react": "^1.9.3", "@date-fns/utc": "^2.1.1", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@mdx-js/loader": "^3.1.1", "@mdx-js/react": "^3.1.1", "@modelcontextprotocol/sdk": "^1.30.0", "@next/mdx": "^16.3.6", "@next/third-parties": "^16.3.6", "@opentelemetry/exporter-trace-otlp-http": "^0.222.0", "@opentelemetry/sdk-trace-base": "^2.0.0", "@polar-sh/checkout": "workspace:^", "@polar-sh/client": "workspace:*", "@polar-sh/currency": "workspace:^", "@polar-sh/i18n": "workspace:*", "@polar-sh/orbit": "workspace:*", "@polar-sh/ui": "workspace:*", "@posthog/ai": "^8.0.0", "@posthog/core": "^1.55.1", "@radix-ui/react-dialog": "catalog:", "@radix-ui/react-toast": "catalog:", "@sentry/nextjs": "^10.75.2", "@shikijs/rehype": "^3.23.0", "@stripe/react-stripe-js": "catalog:", "@stripe/stripe-js": "catalog:", "@stylexjs/stylex": "catalog:", "@tailwindcss/forms": "catalog:", "@tailwindcss/postcss": "catalog:", "@tailwindcss/typography": "^0.5.20", "@tanstack/react-query": "^5.103.2", "@tanstack/react-table": "catalog:", "ai": "catalog:", "big.js": "^7.0.1", "class-variance-authority": "catalog:", "date-fns": "catalog:", "dom-to-image": "^2.6.0", "event-source-plus": "catalog:", "eventemitter3": "catalog:", "gsap": "^3.15.0", "hash-wasm": "^4.12.0", "import-in-the-middle": "^2.0.6", "markdown-to-jsx": "catalog:", "motion": "catalog:", "nanoid": "^5.1.16", "next": "^16.3.6", "next-themes": "catalog:", "nuqs": "^2.10.1", "posthog-js": "^1.434.8", "posthog-node": "^5.52.5", "react": "19.3.0", "react-dom": "19.3.0", "react-dropzone": "^14.4.1", "react-hook-form": "catalog:", "react-qr-code": "^2.2.0", "recharts": "catalog:", "rehype-slug": "^6.0.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "require-in-the-middle": "^8.0.1", "shiki": "catalog:", "slugify": "^1.6.9", "tailwind-merge": "catalog:", "tailwindcss-radix": "^4.0.2", "tw-animate-css": "^1.4.0", "zod": "^4.6.5" }, "devDependencies": { "@polar-sh/typescript-config": "workspace:*", "@stylexjs/babel-plugin": "catalog:", "@stylexjs/postcss-plugin": "catalog:", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "catalog:", "@types/big.js": "^6.2.2", "@types/dom-to-image": "^2.6.7", "@types/mdx": "^2.0.14", "@types/node": "catalog:", "@types/react": "catalog:", "@types/react-dom": "catalog:", "@typescript/native": "catalog:", "@vitejs/plugin-react": "catalog:", "@vitest/coverage-v8": "catalog:", "babel-plugin-react-compiler": "1.0.0", "jsdom": "catalog:", "msw": "^2.15.0", "playwright": "1.63.0", "postcss": "^8.5.28", "tailwindcss": "catalog:", "typescript": "catalog:", "vite-tsconfig-paths": "^6.1.1", "vitest": "catalog:" } }