Project

General

Profile

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

Back