{
"name": "web",
"private": true,
"version": "1.5.1",
"type": "module",
"trustedDependencies": [
"@biomejs/biome"
],
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"test:e2e": "playwright test",
"test:all": "bun run test && bun run test:e2e",
"lint": "biome check .",
"lint:fix": "biome check --write .",
"typecheck": "tsc --noEmit",
"e2e": "playwright test",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"build:deploy": "vite build && rm -rf ~/.oxios/web/dist && cp -r dist/ ~/.oxios/web/dist/"
},
"dependencies": {
"@codemirror/autocomplete": "^6.20.3",
"@codemirror/commands": "^6.10.3",
"@codemirror/lang-javascript": "^6.2.5",
"@codemirror/lang-json": "^6.0.2",
"@codemirror/lang-markdown": "^6.5.0",
"@codemirror/lang-python": "^6.2.1",
"@codemirror/lang-rust": "^6.0.2",
"@codemirror/lang-yaml": "^6.1.3",
"@codemirror/language": "^6.12.3",
"@codemirror/language-data": "^6.5.2",
"@codemirror/legacy-modes": "^6.5.3",
"@codemirror/search": "^6.7.0",
"@codemirror/state": "^6.6.0",
"@codemirror/theme-one-dark": "^6.1.3",
"@codemirror/view": "^6.43.0",
"@hookform/resolvers": "^5.4.0",
"@radix-ui/react-slot": "^1.2.4",
"@tailwindcss/typography": "^0.5.19",
"@tanstack/react-query": "^5.100.11",
"@tanstack/react-router": "^1.170.15",
"@tanstack/router-devtools": "^1.167.0",
"@tanstack/router-plugin": "^1.168.18",
"@uiw/react-codemirror": "^4.25.10",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"d3-force": "^3.0.0",
"d3-selection": "^3.0.0",
"d3-zoom": "^3.0.0",
"highlight.js": "^11.11.1",
"i18next": "^26.2.0",
"i18next-browser-languagedetector": "^8.2.1",
"lucide-react": "^1.16.0",
"md5": "^2.3.0",
"mermaid": "^11.15.0",
"next-themes": "^0.4.6",
"radix-ui": "^1.5.0",
"react": "^19.2.6",
"react-dom": "^19.2.6",
"react-hook-form": "^7.77.0",
"react-i18next": "^17.0.8",
"react-markdown": "^10.1.0",
"reactflow": "^11.11.4",
"recharts": "^3.8.1",
"rehype-highlight": "^7.0.2",
"remark-gfm": "^4.0.1",
"sonner": "^2.0.7",
"tailwind-merge": "^3.6.0",
"tw-animate-css": "^1.4.0",
"zod": "^4.4.3",
"zustand": "^5.0.13"
},
"devDependencies": {
"@biomejs/biome": "^2.4.15",
"@chromatic-com/storybook": "^5.2.1",
"@playwright/test": "^1.60.0",
"@storybook/addon-a11y": "^10.4.2",
"@storybook/addon-docs": "^10.4.2",
"@storybook/addon-mcp": "^0.6.0",
"@storybook/addon-themes": "^10.4.2",
"@storybook/addon-vitest": "^10.4.2",
"@storybook/tanstack-react": "^10.4.2",
"@tailwindcss/vite": "^4.3.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"@types/d3-force": "^3.0.10",
"@types/d3-selection": "^3.0.11",
"@types/d3-zoom": "^3.0.8",
"@types/md5": "^2.3.6",
"@types/node": "^24.12.3",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"@vitest/browser-playwright": "4.1.8",
"@vitest/coverage-v8": "4.1.8",
"globals": "^17.6.0",
"jsdom": "^29.1.1",
"msw": "^2.14.6",
"playwright": "^1.60.0",
"storybook": "^10.4.2",
"tailwindcss": "^4.3.0",
"typescript": "^6.0.3",
"vite": "^8.0.12",
"vitest": "^4.1.6"
}
}