- install ky, zustand, @mui/material, @fontsource/roboto, dayjs, clsx - install @tanstack/react-table, react-hook-form, zod, @hookform/resolvers - create kyClient.ts with auth interceptors - create Zustand store for session (useSessionStore.ts) - add MUI theming (theme.ts, ThemeProvider in AppProviders) - add dayjs utils with ru locale (formatDate, formatRelative) - add clsx cn() utility - add base Table component using @tanstack/react-table - create ADR-015 documenting architectural decisions - create SDD artifacts: spec.md, plan.md, tasks.md - build, lint, and 111 tests passing
65 lines
1.9 KiB
JSON
65 lines
1.9 KiB
JSON
{
|
|
"name": "@moex-vibe/frontend",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"preview": "vite preview",
|
|
"codegen": "openapi-typescript http://localhost:3000/api/docs-json -o src/api/types.ts",
|
|
"lint": "eslint \"src/**/*.{ts,tsx}\"",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest"
|
|
},
|
|
"dependencies": {
|
|
"@emotion/react": "^11.14.0",
|
|
"@emotion/styled": "^11.14.1",
|
|
"@fontsource/roboto": "^5.2.10",
|
|
"@hookform/resolvers": "^3.10.0",
|
|
"@mui/icons-material": "^6.5.0",
|
|
"@mui/material": "^6.5.0",
|
|
"@tanstack/react-query": "^5.20.0",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"clsx": "^2.1.1",
|
|
"dayjs": "^1.11.21",
|
|
"ky": "^1.14.3",
|
|
"lightweight-charts": "^4.1.0",
|
|
"openapi-fetch": "^0.9.0",
|
|
"react": "^18.3.0",
|
|
"react-dom": "^18.3.0",
|
|
"react-hook-form": "^7.80.0",
|
|
"react-is": "^18.3.1",
|
|
"react-router-dom": "^6.20.0",
|
|
"zod": "^4.4.3",
|
|
"zustand": "^5.0.14"
|
|
},
|
|
"devDependencies": {
|
|
"@conarti/eslint-plugin-feature-sliced": "^1.0.5",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/node": "^25.9.3",
|
|
"@types/react": "^18.3.0",
|
|
"@types/react-dom": "^18.3.0",
|
|
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
"@typescript-eslint/parser": "^7.0.0",
|
|
"@vitejs/plugin-react": "^4.2.0",
|
|
"eslint": "^8.0.0",
|
|
"eslint-import-resolver-alias": "^1.1.2",
|
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
"eslint-plugin-import": "^2.32.0",
|
|
"eslint-plugin-react": "^7.34.0",
|
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
"jsdom": "^29.1.1",
|
|
"msw": "^2.14.6",
|
|
"openapi-typescript": "^7.0.0",
|
|
"typescript": "^5.3.0",
|
|
"vite": "^5.4.0",
|
|
"vitest": "^4.1.8"
|
|
},
|
|
"overrides": {
|
|
"react-is": "^18.3.1"
|
|
}
|
|
}
|