moex-vibe/apps/frontend/package.json
Sergey Krylov 1b6fd39be3
Some checks failed
CI / ci (pull_request) Failing after 2m55s
CI / ci (push) Failing after 2m53s
feat: add frontend infrastructure libraries (ky, Zustand, MUI, dayjs, clsx, tanstack-table, rhf, zod)
- 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
2026-06-21 08:26:27 +03:00

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"
}
}