{ "name": "@streamplace/web", "private": true, "version": "0.12.0", "type": "module", "description": "Streamplace web app (Vite + TanStack Router). True-DOM, no React Native.", "scripts": { "dev": "vite --port 5173", "predev": "pnpm gen:emoji", "build": "tsc --noEmit && vite build", "preview": "vite preview --port 5173", "check": "bash -c 'set -euo pipefail;export OUT=$(mktemp -d); npx tsc -p . --outDir $OUT; rm -rf $OUT'", "gen:emoji": "node scripts/gen-emoji-data.mjs", "prebuild": "pnpm gen:emoji", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", "test": "vitest run", "test:watch": "vitest", "e2e": "npx playwright test", "e2e:ui": "npx playwright test --ui" }, "dependencies": { "@atproto/api": "^0.19.3", "@atproto/crypto": "^0.4.5", "@atproto/oauth-client-browser": "^0.4.1", "@base-ui/react": "^1.5.0", "@dnd-kit/helpers": "^0.4.0", "@dnd-kit/react": "^0.4.0", "@fontsource/atkinson-hyperlegible-next": "^5.2.7", "@sentry/react": "^10.57.0", "@streamplace/core": "workspace:*", "@streamplace/i18n": "workspace:*", "@tailwindcss/typography": "^0.5.19", "@tanstack/react-query": "^5.90.21", "@tanstack/react-router": "^1.170.0", "@tiptap/core": "^3.26.1", "@tiptap/extension-mention": "^3.26.0", "@tiptap/extension-placeholder": "^3.26.0", "@tiptap/pm": "^3.26.1", "@tiptap/react": "^3.26.0", "@tiptap/starter-kit": "^3.26.0", "@tiptap/suggestion": "^3.26.0", "class-variance-authority": "^0.6.1", "color": "^5.0.3", "emojibase": "^17.0.0", "frimousse": "^0.3.0", "hls.js": "~1.6.16", "i18next": "^25.4.2", "i18next-fluent": "^2.0.0", "lucide-react": "^1.17.0", "react": "^19.2.0", "react-dom": "^19.2.0", "react-i18next": "^15.7.3", "recharts": "^3.8.1", "sonare": "^0.0.1", "sonner": "^2.0.7", "streamplace": "workspace:*", "tus-js-client": "^4.3.1", "tw-animate-css": "^1.4.0", "viem": "^2.47.2", "zod": "^3.23.0", "zustand": "^5.0.5" }, "devDependencies": { "@chromatic-com/storybook": "^5.2.1", "@playwright/test": "^1.61.1", "@sentry/vite-plugin": "^5.3.0", "@storybook/addon-a11y": "^10.4.6", "@storybook/addon-docs": "^10.4.6", "@storybook/addon-mcp": "^0.6.0", "@storybook/addon-vitest": "^10.4.6", "@storybook/react-vite": "^10.4.6", "@tailwindcss/vite": "^4.3.0", "@tanstack/router-plugin": "^1.168.0", "@types/react": "^19.2.0", "@types/react-dom": "^19.2.0", "@vitejs/plugin-react": "^4.3.0", "@vitest/browser-playwright": "^4.1.9", "@vitest/coverage-v8": "^4.1.9", "emojibase-data": "^17.0.0", "jsdom": "^29.1.1", "playwright": "^1.61.1", "prettier": "3.8.4", "prettier-plugin-tailwindcss": "^0.8.0", "storybook": "^10.4.6", "tailwindcss": "^4.3.0", "typescript": "^5.8.3", "vite": "^6.0.0", "vitest": "^4.1.9" } }