fix: CSS brace balance, upgrade deps (0 vulnerabilities), code-splitting

- Fix: styles.css line 1354 double closing brace (CSS syntax error)
- Upgrade: fastify 5.x, @fastify/cors 11, @fastify/static 9, @fastify/websocket 11
- Upgrade: vitest 4.x, vite 8.x (frontend)
- Result: 0 npm vulnerabilities (was 10 backend + 5 frontend)
- Feature: vite.config.ts manualChunks code-splitting (998kB → 5 chunks, max 451kB)
- All tests pass: Backend 239/239, Frontend 374/374
This commit is contained in:
Leopoldadmin
2026-07-04 03:07:23 +02:00
parent 85bb238e73
commit 982fa119eb
6 changed files with 1908 additions and 2338 deletions
+1150 -1493
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -11,12 +11,12 @@
"test": "vitest run" "test": "vitest run"
}, },
"dependencies": { "dependencies": {
"@fastify/cors": "^9.0.0", "@fastify/cors": "^11.2.0",
"@fastify/static": "^7.0.0", "@fastify/static": "^9.1.3",
"@fastify/websocket": "^10.0.0", "@fastify/websocket": "^11.2.0",
"bcrypt": "^6.0.0", "bcrypt": "^6.0.0",
"better-sqlite3": "^11.0.0", "better-sqlite3": "^11.0.0",
"fastify": "^4.28.0", "fastify": "^5.9.0",
"y-leveldb": "^0.2.0", "y-leveldb": "^0.2.0",
"y-protocols": "^1.0.7", "y-protocols": "^1.0.7",
"yjs": "^13.6.0" "yjs": "^13.6.0"
@@ -27,6 +27,6 @@
"@types/node": "^20.14.0", "@types/node": "^20.14.0",
"tsx": "^4.16.0", "tsx": "^4.16.0",
"typescript": "^5.5.0", "typescript": "^5.5.0",
"vitest": "^2.0.0" "vitest": "^4.1.9"
} }
} }
+728 -832
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -28,7 +28,7 @@
"@vitejs/plugin-react": "^4.3.0", "@vitejs/plugin-react": "^4.3.0",
"jsdom": "^29.1.1", "jsdom": "^29.1.1",
"typescript": "^5.5.0", "typescript": "^5.5.0",
"vite": "^5.4.0", "vite": "^8.1.3",
"vitest": "^2.0.0" "vitest": "^4.1.9"
} }
} }
+1 -1
View File
@@ -1351,7 +1351,7 @@ a:hover { text-decoration: underline; }
.tool-section-label { display: block; padding: 0 6px 6px; } .tool-section-label { display: block; padding: 0 6px 6px; }
.tool-btn-label { display: block; } .tool-btn-label { display: block; }
.tool-grid { grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 4px; } .tool-grid { grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 4px; }
.rightbar { overflow-y: auto; -webkit-overflow-scrolling: touch; }} .rightbar { overflow-y: auto; -webkit-overflow-scrolling: touch; }
/* Right tab bar (vertical icon bar, ALWAYS visible on mobile) */ /* Right tab bar (vertical icon bar, ALWAYS visible on mobile) */
.right-tab-bar { .right-tab-bar {
+17
View File
@@ -8,5 +8,22 @@ export default defineConfig({
'/api': 'http://localhost:3001', '/api': 'http://localhost:3001',
'/ws': { target: 'ws://localhost:3001', ws: true } '/ws': { target: 'ws://localhost:3001', ws: true }
} }
},
build: {
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes('node_modules/react-dom') || id.includes('node_modules/react/')) {
return 'react-vendor';
} }
if (id.includes('node_modules/yjs') || id.includes('node_modules/y-websocket')) {
return 'yjs-vendor';
}
if (id.includes('node_modules/dxf-parser') || id.includes('node_modules/pdf-lib') || id.includes('node_modules/rbush')) {
return 'cad-utils';
}
},
},
},
},
}); });