{ "name": "@sourcebot/web", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev --turbopack", "build": "cross-env SKIP_ENV_VALIDATION=1 next build", "start": "next start", "lint": "cross-env SKIP_ENV_VALIDATION=1 eslint .", "test": "cross-env SKIP_ENV_VALIDATION=1 vitest", "dev:emails": "email dev --dir ./src/emails", "stripe:listen": "stripe listen --forward-to http://localhost:3000/api/stripe" }, "dependencies": { "@ai-sdk/amazon-bedrock": "^3.0.22", "@ai-sdk/anthropic": "^2.0.17", "@ai-sdk/azure": "^2.0.32", "@ai-sdk/deepseek": "^1.0.18", "@ai-sdk/google": "^2.0.14", "@ai-sdk/google-vertex": "^3.0.27", "@ai-sdk/mistral": "^2.0.14", "@ai-sdk/openai": "^2.0.32", "@ai-sdk/openai-compatible": "^1.0.18", "@ai-sdk/react": "^2.0.45", "@ai-sdk/xai": "^2.0.20", "@auth/prisma-adapter": "^2.11.1", "@aws-sdk/credential-providers": "^3.890.0", "@codemirror/commands": "^6.6.0", "@codemirror/lang-cpp": "^6.0.2", "@codemirror/lang-css": "^6.3.0", "@codemirror/lang-go": "^6.0.1", "@codemirror/lang-html": "^6.4.9", "@codemirror/lang-java": "^6.0.1", "@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-json": "^6.0.1", "@codemirror/lang-less": "^6.0.2", "@codemirror/lang-liquid": "^6.2.2", "@codemirror/lang-markdown": "^6.2.5", "@codemirror/lang-php": "^6.0.1", "@codemirror/lang-python": "^6.1.6", "@codemirror/lang-rust": "^6.0.1", "@codemirror/lang-sass": "^6.0.2", "@codemirror/lang-sql": "^6.7.1", "@codemirror/lang-vue": "^0.1.3", "@codemirror/lang-wast": "^6.0.2", "@codemirror/lang-xml": "^6.1.0", "@codemirror/lang-yaml": "^6.1.2", "@codemirror/language": "^6.0.0", "@codemirror/language-data": "^6.5.1", "@codemirror/legacy-modes": "^6.4.2", "@codemirror/search": "^6.5.6", "@codemirror/state": "^6.4.1", "@codemirror/view": "^6.33.0", "@floating-ui/react": "^0.27.2", "@hookform/resolvers": "^3.9.0", "@iconify/react": "^5.1.0", "@iizukak/codemirror-lang-wgsl": "^0.3.0", "@openrouter/ai-sdk-provider": "^1.1.0", "@opentelemetry/api-logs": "^0.203.0", "@opentelemetry/instrumentation": "^0.203.0", "@opentelemetry/sdk-logs": "^0.203.0", "@radix-ui/react-accordion": "^1.2.11", "@radix-ui/react-alert-dialog": "^1.1.5", "@radix-ui/react-avatar": "^1.1.2", "@radix-ui/react-checkbox": "^1.3.2", "@radix-ui/react-collapsible": "^1.1.11", "@radix-ui/react-dialog": "^1.1.4", "@radix-ui/react-dropdown-menu": "^2.1.1", "@radix-ui/react-hover-card": "^1.1.6", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-navigation-menu": "^1.2.0", "@radix-ui/react-popover": "^1.1.6", "@radix-ui/react-scroll-area": "^1.1.0", "@radix-ui/react-select": "^2.1.6", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.1", "@radix-ui/react-switch": "^1.2.4", "@radix-ui/react-tabs": "^1.1.2", "@radix-ui/react-toast": "^1.2.2", "@radix-ui/react-toggle": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.4", "@react-email/components": "^0.0.33", "@react-email/render": "^1.0.5", "@replit/codemirror-lang-csharp": "^6.2.0", "@replit/codemirror-lang-nix": "^6.0.1", "@replit/codemirror-lang-solidity": "^6.0.2", "@replit/codemirror-lang-svelte": "^6.0.0", "@replit/codemirror-vim": "^6.2.1", "@sentry/nextjs": "^9", "@shopify/lang-jsonc": "^1.0.0", "@sourcebot/codemirror-lang-tcl": "^1.0.12", "@sourcebot/db": "workspace:*", "@sourcebot/schemas": "workspace:*", "@sourcebot/shared": "workspace:*", "@ssddanbrown/codemirror-lang-twig": "^1.0.0", "@stripe/react-stripe-js": "^3.1.1", "@stripe/stripe-js": "^5.6.0", "@tailwindcss/typography": "^0.5.16", "@tanstack/react-query": "^5.53.3", "@tanstack/react-table": "^8.20.5", "@tanstack/react-virtual": "^3.10.8", "@uidotdev/usehooks": "^2.4.1", "@uiw/codemirror-themes": "^4.23.6", "@uiw/react-codemirror": "^4.23.0", "@vercel/otel": "^1.13.0", "@viz-js/lang-dot": "^1.0.4", "@xiechao/codemirror-lang-handlebars": "^1.0.4", "ai": "^5.0.45", "ajv": "^8.17.1", "bcryptjs": "^3.0.2", "class-variance-authority": "^0.7.0", "client-only": "^0.0.1", "clsx": "^2.1.1", "cm6-graphql": "^0.2.0", "cmdk": "1.0.0", "codemirror": "^5.65.3", "codemirror-json-schema": "^0.8.0", "codemirror-lang-brainfuck": "^0.1.0", "codemirror-lang-elixir": "^4.0.0", "codemirror-lang-hcl": "^0.0.0-beta.2", "codemirror-lang-j": "^0.1.1", "codemirror-lang-jq": "^1.0.0", "codemirror-lang-makefile": "^0.1.1", "codemirror-lang-mermaid": "^0.5.0", "codemirror-lang-perl": "^0.1.5-beta.6", "codemirror-lang-prolog": "^0.1.0", "codemirror-lang-r": "^0.1.1", "codemirror-lang-sparql": "^2.0.0", "codemirror-lang-spreadsheet": "^1.3.0", "codemirror-lang-zig": "^0.1.0", "date-fns": "^4.1.0", "embla-carousel-auto-scroll": "^8.3.0", "embla-carousel-react": "^8.3.0", "escape-string-regexp": "^5.0.0", "fuse.js": "^7.0.0", "google-auth-library": "^10.1.0", "graphql": "^16.9.0", "http-status-codes": "^2.3.0", "input-otp": "^1.4.2", "langfuse": "^3.38.4", "langfuse-vercel": "^3.38.4", "lucide-react": "^0.517.0", "micromatch": "^4.0.8", "next": "15.5.0", "next-auth": "^5.0.0-beta.30", "next-navigation-guard": "^0.2.0", "next-themes": "^0.3.0", "nodemailer": "^6.10.0", "octokit": "^4.1.3", "openai": "^4.98.0", "parse-diff": "^0.11.1", "posthog-js": "^1.161.5", "pretty-bytes": "^6.1.1", "psl": "^1.15.0", "react": "19.1.1", "react-device-detect": "^2.2.3", "react-dom": "19.1.1", "react-hook-form": "^7.53.0", "react-hotkeys-hook": "^4.5.1", "react-icons": "^5.3.0", "react-markdown": "^10.1.0", "react-resizable-panels": "^2.1.1", "recharts": "^2.15.3", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "remark-gfm": "^4.0.1", "scroll-into-view-if-needed": "^3.1.0", "server-only": "^0.0.1", "sharp": "^0.33.5", "simple-git": "^3.27.0", "slate": "^0.117.0", "slate-dom": "^0.116.0", "slate-history": "^0.113.1", "slate-react": "^0.117.1", "strip-json-comments": "^5.0.1", "stripe": "^17.6.0", "tailwind-merge": "^2.5.2", "tailwindcss-animate": "^1.0.7", "usehooks-ts": "^3.1.0", "vscode-icons-js": "^11.6.1", "zod": "^3.25.74", "zod-to-json-schema": "^3.24.5" }, "devDependencies": { "@eslint/eslintrc": "^3", "@tanstack/eslint-plugin-query": "^5.74.7", "@testing-library/dom": "^10.4.1", "@testing-library/react": "^16.3.0", "@types/micromatch": "^4.0.9", "@types/node": "^20", "@types/nodemailer": "^6.4.17", "@types/psl": "^1.1.3", "@types/react": "19.1.10", "@types/react-dom": "19.1.7", "@typescript-eslint/eslint-plugin": "^8.40.0", "@typescript-eslint/parser": "^8.40.0", "cross-env": "^7.0.3", "eslint": "^8", "eslint-config-next": "15.5.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", "jsdom": "^25.0.1", "npm-run-all": "^4.1.5", "postcss": "^8", "react-email": "3.0.3", "tailwindcss": "^3.4.1", "tsx": "^4.19.2", "typescript": "^5", "vite-tsconfig-paths": "^5.1.3", "vitest": "^2.1.5", "vitest-mock-extended": "^3.1.0" }, "resolutions": { "@types/react": "19.1.10", "@types/react-dom": "19.1.7" } }