Feature #203
Updated by Redmine Admin about 1 month ago
## Spec — Mise à jour jspdf (frontend) pour corriger les CVE HIGH ### Portée RÉELLE (réduite après analyse code) Le rendu PDF des contrats a migré côté serveur (Chromium/Playwright + Paged.js, #377). `src/lib/pdfUtils.js` n'utilise plus jsPDF (ancien chemin html2canvas/jsPDF supprimé ; n'expose plus que `downloadPdfDataUri`). Le SEUL usage frontend restant de jspdf est : - `src/components/events/BudgetExcelExport.jsx` (`import { jsPDF } from 'jspdf'`, `new jsPDF()` ~l.240) — export PDF d'un budget. Côté serveur, `server/package.json` est déjà sur jspdf@4.2.1 (non vulnérable). Le défaut résiduel est donc UNIQUEMENT `package.json` racine (frontend) bloqué sur jspdf@^2.5.2. ### Correctif proposé (frontend uniquement) 1. Bumper `jspdf` ^2.5.2 -> ^4.x dans le `package.json` racine (aligné sur le serveur, 4.2.1). 2. Adapter/vérifier `BudgetExcelExport.jsx` à l'API jsPDF v4 (le constructeur `new jsPDF()` et `autoTable`/`text`/`save` peuvent avoir changé entre v2 et v4 — vérifier `jspdf-autotable` si utilisé, et la compat ESM). 3. Vérifier visuellement un export PDF de budget (mise en page, tableaux, totaux). 4. Si `jspdf-autotable` est présent, aligner sa version sur jspdf v4. ### Critères d'acceptation - jspdf racine en ^4.x (>= 4.2.1) ; `npm install` OK ; build Vite OK. - Export PDF du budget fonctionne sans régression (tableaux, totaux, mise en page). - lint + typecheck verts. - (Les ~10 tickets SecOps CVE jspdf@2.5.2 #97-106 sont couverts par ce bump et pourront être clôturés ensuite.) ### Portée : un seul lot frontend (package.json racine + BudgetExcelExport.jsx + vérif). Route : frontend (Vite/React src/). conversation:37