Pages /legal et /confidentialite réécrites d'après le système réel, purge des classes archivées depuis 90 jours (prouvée par Pest), archivage côté prof. Polices, xterm.js et CodeMirror ne sont plus chargés depuis Google ni jsDelivr. Pages d'aperçu signalées, sans vrais établissements ni faux chiffres. Journaux Laravel gardés 14 jours. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
25 lines
1.3 KiB
JavaScript
25 lines
1.3 KiB
JavaScript
// Copie dans public/vendor/ les bibliothèques que les pages vitrine chargent
|
|
// par <script> classique (étape 14) : mêmes fichiers que sur jsDelivr, mais
|
|
// servis par le portail — aucune adresse IP de visiteur envoyée à un CDN.
|
|
import { cpSync, mkdirSync, rmSync } from 'node:fs';
|
|
import { dirname } from 'node:path';
|
|
|
|
const fichiers = {
|
|
'xterm/xterm.js': '@xterm/xterm/lib/xterm.js',
|
|
'xterm/xterm.css': '@xterm/xterm/css/xterm.css',
|
|
'xterm/addon-fit.js': '@xterm/addon-fit/lib/addon-fit.js',
|
|
'codemirror/codemirror.js': 'codemirror/lib/codemirror.js',
|
|
'codemirror/codemirror.css': 'codemirror/lib/codemirror.css',
|
|
'codemirror/closebrackets.js': 'codemirror/addon/edit/closebrackets.js',
|
|
'codemirror/matchbrackets.js': 'codemirror/addon/edit/matchbrackets.js',
|
|
};
|
|
for (const mode of ['css', 'htmlmixed', 'javascript', 'python', 'shell', 'sql', 'xml']) {
|
|
fichiers[`codemirror/mode/${mode}.js`] = `codemirror/mode/${mode}/${mode}.js`;
|
|
}
|
|
|
|
rmSync('public/vendor', { recursive: true, force: true });
|
|
for (const [cible, source] of Object.entries(fichiers)) {
|
|
mkdirSync(dirname(`public/vendor/${cible}`), { recursive: true });
|
|
cpSync(`node_modules/${source}`, `public/vendor/${cible}`);
|
|
}
|
|
console.log(`public/vendor : ${Object.keys(fichiers).length} fichiers copiés`);
|