Implemented rbac

This commit is contained in:
2026-10-11 11:16:08 +02:00
parent 45a6c0aca0
commit 1142cfd94e
24 changed files with 3033 additions and 432 deletions
+46 -6
View File
@@ -48,6 +48,7 @@ export default defineConfig(async ({ command }) => {
watch: process.env.DISABLE_HMR === 'true' ? null : {},
},
build: {
chunkSizeWarningLimit: 600,
rollupOptions: {
onwarn(warning, defaultHandler) {
// Suppress benign Rollup warnings where Zod's internal explanatory doc comments mention `@__PURE__`
@@ -62,24 +63,63 @@ export default defineConfig(async ({ command }) => {
output: {
manualChunks(id) {
if (id.includes('node_modules')) {
if (id.includes('react') || id.includes('scheduler')) {
return 'vendor-react';
// 1. Heavy export and PDF document generation
if (id.includes('xlsx')) {
return 'vendor-xlsx';
}
if (id.includes('@tanstack')) {
return 'vendor-query';
if (id.includes('html2canvas')) {
return 'vendor-html2canvas';
}
if (id.includes('oidc-client-ts')) {
return 'vendor-auth';
if (id.includes('fflate')) {
return 'vendor-fflate';
}
if (id.includes('dompurify')) {
return 'vendor-purify';
}
if (id.includes('fast-png')) {
return 'vendor-png';
}
if (id.includes('polyfills.es.js') || id.includes('jspdf/dist/polyfills')) {
return 'vendor-pdf-polyfills';
}
if (id.includes('jspdf-autotable')) {
return 'vendor-pdf-autotable';
}
if (id.includes('jspdf') || id.includes('canvg')) {
return 'vendor-pdf';
}
// 2. Iconography
if (id.includes('lucide-react')) {
return 'vendor-icons';
}
// 3. Query & state management
if (id.includes('@tanstack')) {
return 'vendor-query';
}
// 4. OIDC Authentication
if (id.includes('oidc-client-ts')) {
return 'vendor-auth';
}
// 5. Schema & form validation
if (id.includes('zod') || id.includes('react-hook-form') || id.includes('@hookform')) {
return 'vendor-forms';
}
// 6. HTTP networking
if (id.includes('axios')) {
return 'vendor-http';
}
// 7. Client routing
if (id.includes('react-router')) {
return 'vendor-router';
}
// 8. Core React framework runtime
if (
id.includes('/react/') ||
id.includes('/react-dom/') ||
id.includes('/scheduler/')
) {
return 'vendor-react';
}
}
},
},