mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 21:31:46 +00:00
8ec62c7518
client and server had lint scripts but no eslint config (only shared was linted in CI). Add flat configs mirroring shared's stack (js + typescript-eslint recommended + eslint-config-prettier) plus the client's react-hooks/react-refresh plugins. Pre-existing patterns in this never-linted code (explicit any, require() in the CommonJS server, empty catches, exhaustive-deps) are set to 'warn' rather than 'error' so the gate passes at 0 errors without a repo-wide reformat — these can be ratcheted to errors over time. Wire blocking typecheck + lint + lint:pages steps into the client and server CI jobs (now that both typechecks are clean) and promote the server typecheck from informational to blocking.
85 lines
2.6 KiB
JSON
85 lines
2.6 KiB
JSON
{
|
|
"name": "@trek/client",
|
|
"version": "3.0.22",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"prebuild": "node scripts/generate-icons.mjs",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:unit": "vitest run tests/unit",
|
|
"test:integration": "vitest run tests/integration src/**/*.test.{ts,tsx}",
|
|
"test:watch": "vitest",
|
|
"test:coverage": "vitest run --coverage",
|
|
"lint": "eslint .",
|
|
"lint:check": "eslint .",
|
|
"lint:pages": "node scripts/check-page-pattern.mjs",
|
|
"e2e": "playwright test",
|
|
"e2e:report": "playwright show-report",
|
|
"format": "prettier --write \"src/**/*.tsx\" \"src/**/*.css\"",
|
|
"format:check": "prettier --check \"src/**/*.tsx\" \"src/**/*.css\""
|
|
},
|
|
"dependencies": {
|
|
"@react-pdf/renderer": "^4.5.1",
|
|
"@trek/shared": "*",
|
|
"axios": "^1.6.7",
|
|
"dexie": "^4.4.2",
|
|
"heic-to": "^1.4.2",
|
|
"leaflet": "^1.9.4",
|
|
"lucide-react": "^0.344.0",
|
|
"mapbox-gl": "^3.22.0",
|
|
"marked": "^18.0.0",
|
|
"react": "^19.2.6",
|
|
"react-dom": "^19.2.6",
|
|
"react-dropzone": "^14.4.1",
|
|
"react-leaflet": "^5.0.0",
|
|
"react-leaflet-cluster": "^4.1.3",
|
|
"react-markdown": "^10.1.0",
|
|
"react-router-dom": "^6.22.2",
|
|
"react-window": "^2.2.7",
|
|
"rehype-sanitize": "^6.0.0",
|
|
"remark-breaks": "^4.0.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"topojson-client": "^3.1.0",
|
|
"zod": "^4.3.6",
|
|
"zustand": "^4.5.2"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^10.0.1",
|
|
"@playwright/test": "^1.60.0",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
|
"@types/leaflet": "^1.9.8",
|
|
"@types/react": "^19.2.15",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/react-window": "^1.8.8",
|
|
"@vitejs/plugin-react": "^4.2.1",
|
|
"@vitest/coverage-v8": "^3.2.4",
|
|
"autoprefixer": "^10.4.18",
|
|
"eslint": "^10.2.1",
|
|
"eslint-config-flat-gitignore": "^2.3.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
"fake-indexeddb": "^6.2.5",
|
|
"jsdom": "^29.0.1",
|
|
"msw": "^2.13.0",
|
|
"postcss": "^8.4.35",
|
|
"prettier": "^3.8.3",
|
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
"prettier-plugin-tailwindcss": "^0.8.0",
|
|
"sharp": "^0.33.0",
|
|
"tailwindcss": "^3.4.1",
|
|
"typescript": "^6.0.2",
|
|
"typescript-eslint": "^8.58.2",
|
|
"vite": "^5.1.4",
|
|
"vite-plugin-pwa": "^0.21.0",
|
|
"vitest": "^3.2.4"
|
|
}
|
|
}
|