{ "name": "@sourcebot/web", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "cross-env SKIP_ENV_VALIDATION=1 next lint", "test": "vitest", "dev:emails": "email dev --dir ./src/emails", "stripe:listen": "stripe listen --forward-to http://localhost:3000/api/stripe" }, "dependencies": { "@auth/prisma-adapter": "^2.7.4", "@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", "@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-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/crypto": "workspace:*", "@sourcebot/db": "workspace:*", "@sourcebot/error": "workspace:*", "@sourcebot/logger": "workspace:*", "@sourcebot/schemas": "workspace:*", "@ssddanbrown/codemirror-lang-twig": "^1.0.0", "@stripe/react-stripe-js": "^3.1.1", "@stripe/stripe-js": "^5.6.0", "@t3-oss/env-nextjs": "^0.12.0", "@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", "@viz-js/lang-dot": "^1.0.4", "@xiechao/codemirror-lang-handlebars": "^1.0.4", "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", "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": "^9.15.1", "graphql": "^16.9.0", "http-status-codes": "^2.3.0", "input-otp": "^1.4.2", "lucide-react": "^0.435.0", "micromatch": "^4.0.8", "next": "14.2.26", "next-auth": "^5.0.0-beta.25", "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": "^18", "react-device-detect": "^2.2.3", "react-dom": "^18", "react-hook-form": "^7.53.0", "react-hotkeys-hook": "^4.5.1", "react-icons": "^5.3.0", "react-resizable-panels": "^2.1.1", "scroll-into-view-if-needed": "^3.1.0", "server-only": "^0.0.1", "sharp": "^0.33.5", "simple-git": "^3.27.0", "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.24.3", "zod-to-json-schema": "^3.24.5" }, "devDependencies": { "@tanstack/eslint-plugin-query": "^5.74.7", "@types/micromatch": "^4.0.9", "@types/node": "^20", "@types/nodemailer": "^6.4.17", "@types/psl": "^1.1.3", "@types/react": "^18", "@types/react-dom": "^18", "@typescript-eslint/eslint-plugin": "^8.3.0", "@typescript-eslint/parser": "^8.3.0", "cross-env": "^7.0.3", "eslint": "^8", "eslint-config-next": "14.2.6", "eslint-plugin-react": "^7.35.0", "eslint-plugin-react-hooks": "^4.6.2", "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" } }