build(monorepo): catalog, typecheck/lint задачи, унификация версий

- pnpm catalog: один typescript 6.0.3 и vitest 4.1.10 на весь монорепо
- задача turbo typecheck; tsc вынесен из build web (блокировал vite build)
- eslint-конфиги для api/db/shared (бэкенд не линтился)
- turbo test больше не зависит от ^build (тесты идут по исходникам)
- react-day-picker перенесён из web в ui (потребитель calendar.tsx)
- из web удалены неиспользуемые motion/@dnd-kit×4/react-virtual/date-fns
This commit is contained in:
Denozordec
2026-09-23 14:51:38 +07:00
parent e135150c2d
commit 3cef8c33c2
14 changed files with 355 additions and 571 deletions
+21
View File
@@ -0,0 +1,21 @@
import js from '@eslint/js'
import globals from 'globals'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'
export default defineConfig([
globalIgnores(['dist', 'data']),
{
files: ['**/*.ts'],
extends: [js.configs.recommended, tseslint.configs.recommended],
languageOptions: {
globals: globals.node,
},
rules: {
'@typescript-eslint/no-unused-vars': [
'error',
{ ignoreRestSiblings: true, argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
],
},
},
])
+9 -3
View File
@@ -6,6 +6,8 @@
"scripts": {
"dev": "tsx watch src/server.ts",
"build": "tsup src/server.ts --format esm --dts",
"lint": "eslint .",
"typecheck": "tsc --noEmit",
"start": "node dist/server.js",
"test": "vitest run --passWithNoTests"
},
@@ -24,13 +26,17 @@
"fastify": "^5.4.0",
"fastify-plugin": "^5.0.1",
"jose": "^6.2.8",
"zod": "^4.4.3"
"zod": "catalog:"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@types/node": "^22.15.32",
"eslint": "^10.7.0",
"globals": "^17.7.0",
"tsup": "^8.5.0",
"tsx": "^4.20.3",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"typescript": "catalog:",
"typescript-eslint": "^8.64.0",
"vitest": "catalog:"
}
}
+1
View File
@@ -8,6 +8,7 @@
"esModuleInterop": true,
"outDir": "dist",
"rootDir": "src",
"ignoreDeprecations": "6.0",
"types": ["node"]
},
"include": ["src"]
+9 -14
View File
@@ -5,39 +5,33 @@
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsr generate && tsc -b && vite build",
"build": "tsr generate && vite build",
"typecheck": "tsr generate && tsc -b",
"test": "vitest run --passWithNoTests",
"lint": "eslint .",
"preview": "vite preview"
"preview": "vite preview",
"analyze": "vite build --mode analyze"
},
"dependencies": {
"@authportal/shared": "workspace:*",
"@authportal/ui": "workspace:*",
"@base-ui/react": "^1.5.0",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/modifiers": "^9.0.0",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@hookform/resolvers": "^5.4.0",
"@simplewebauthn/browser": "^13.3.0",
"@tailwindcss/vite": "^4.3.1",
"@tanstack/react-query": "^5.101.0",
"@tanstack/react-router": "^1.170.15",
"@tanstack/react-table": "^8.21.3",
"@tanstack/react-virtual": "^3.14.6",
"@tanstack/router-vite-plugin": "^1.167.18",
"class-variance-authority": "^0.7.1",
"date-fns": "^4.4.0",
"lucide-react": "^1.18.0",
"motion": "^12.42.2",
"lucide-react": "catalog:",
"next-themes": "^0.4.6",
"react": "^19.2.6",
"react-day-picker": "^10.0.1",
"react-dom": "^19.2.6",
"react-hook-form": "^7.79.0",
"sonner": "^2.0.7",
"tailwindcss": "^4.3.1",
"zod": "^4.4.3"
"zod": "catalog:"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
@@ -50,10 +44,11 @@
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.2",
"globals": "^17.6.0",
"rollup-plugin-visualizer": "^7.1.1",
"tw-animate-css": "^1.0.0",
"typescript": "~6.0.2",
"typescript": "catalog:",
"typescript-eslint": "^8.59.2",
"vite": "^8.0.12",
"vitest": "^4.1.8"
"vitest": "catalog:"
}
}
+21
View File
@@ -0,0 +1,21 @@
import js from '@eslint/js'
import globals from 'globals'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.ts'],
extends: [js.configs.recommended, tseslint.configs.recommended],
languageOptions: {
globals: globals.node,
},
rules: {
'@typescript-eslint/no-unused-vars': [
'error',
{ ignoreRestSiblings: true, argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
],
},
},
])
+12 -2
View File
@@ -3,7 +3,11 @@
"version": "0.0.0",
"private": true,
"type": "module",
"files": ["dist", "migrations", "package.json"],
"files": [
"dist",
"migrations",
"package.json"
],
"exports": {
".": {
"types": "./dist/index.d.ts",
@@ -13,6 +17,8 @@
},
"scripts": {
"build": "tsup src/index.ts --format esm --dts",
"lint": "eslint .",
"typecheck": "tsc --noEmit",
"dev": "tsup src/index.ts --format esm --dts --watch",
"db:generate": "drizzle-kit generate",
"db:push": "drizzle-kit push"
@@ -23,9 +29,13 @@
"drizzle-orm": "^0.44.2"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@types/better-sqlite3": "^7.6.13",
"drizzle-kit": "^0.31.1",
"eslint": "^10.7.0",
"globals": "^17.7.0",
"tsup": "^8.5.0",
"typescript": "^5.8.3"
"typescript": "catalog:",
"typescript-eslint": "^8.64.0"
}
}
+2 -1
View File
@@ -7,7 +7,8 @@
"skipLibCheck": true,
"declaration": true,
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"ignoreDeprecations": "6.0"
},
"include": ["src"]
}
+21
View File
@@ -0,0 +1,21 @@
import js from '@eslint/js'
import globals from 'globals'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.ts'],
extends: [js.configs.recommended, tseslint.configs.recommended],
languageOptions: {
globals: globals.node,
},
rules: {
'@typescript-eslint/no-unused-vars': [
'error',
{ ignoreRestSiblings: true, argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
],
},
},
])
+14 -5
View File
@@ -3,7 +3,10 @@
"version": "0.0.0",
"private": true,
"type": "module",
"files": ["dist", "package.json"],
"files": [
"dist",
"package.json"
],
"exports": {
".": {
"types": "./dist/index.d.ts",
@@ -14,14 +17,20 @@
"scripts": {
"build": "tsup src/index.ts --format esm --dts",
"dev": "tsup src/index.ts --format esm --dts --watch",
"test": "vitest run --passWithNoTests"
"test": "vitest run --passWithNoTests",
"lint": "eslint .",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"zod": "^4.4.3"
"zod": "catalog:"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"eslint": "^10.7.0",
"globals": "^17.7.0",
"tsup": "^8.5.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"typescript": "catalog:",
"typescript-eslint": "^8.64.0",
"vitest": "catalog:"
}
}
+2 -1
View File
@@ -7,7 +7,8 @@
"skipLibCheck": true,
"declaration": true,
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"ignoreDeprecations": "6.0"
},
"include": ["src"]
}
+3 -2
View File
@@ -17,7 +17,8 @@
"@base-ui/react": "^1.6.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"lucide-react": "^1.25.0",
"lucide-react": "catalog:",
"react-day-picker": "^10.0.1",
"tailwind-merge": "^3.6.0",
"tw-animate-css": "^1.4.0"
},
@@ -25,6 +26,6 @@
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"tailwindcss": "^4.3.1",
"typescript": "~6.0.2"
"typescript": "catalog:"
}
}
+229 -541
View File
File diff suppressed because it is too large Load Diff
+7
View File
@@ -3,3 +3,10 @@ packages:
- "packages/*"
injectWorkspacePackages: true
# Единые версии общих зависимостей на весь монорепо.
catalog:
typescript: "~6.0.2"
vitest: "^4.1.8"
zod: "^4.4.3"
lucide-react: "^1.25.0"
+4 -2
View File
@@ -9,9 +9,11 @@
"cache": false,
"persistent": true
},
"test": {
"dependsOn": ["^build"]
"typecheck": {
"dependsOn": ["^build"],
"outputs": ["**/*.tsbuildinfo", "node_modules/.tmp/**"]
},
"test": {},
"lint": {}
}
}