import { cpSync, mkdirSync } from 'node:fs' import { createRequire } from 'node:module' import { dirname, join } from 'node:path' import { defineConfig, type Plugin } from 'vite' import react from '@vitejs/plugin-react' import tailwindcss from '@tailwindcss/vite' import { VitePWA } from 'vite-plugin-pwa' /** * Die 14 Standardschriften von PDF.js nach public/ kopieren. * * Aeltere PDFs betten Helvetica, Times und Courier nicht ein, sondern setzen * sie voraus. Ohne diese Dateien malt PDF.js mit einer Ersatzschrift – lesbar, * aber Zeilen brechen an anderer Stelle als im Original. * * Kopiert statt eingecheckt: 800 KB fremde Binaerdateien gehoeren nicht in den * Quelltext, und die Fassung soll der Abhaengigkeit folgen. public/pdfjs steht * deshalb in .gitignore. */ function pdfjsStandardFonts(): Plugin { return { name: 'aether-pdfjs-standard-fonts', // Nicht 'buildStart': Im Entwicklungsbetrieb liest der Server public/ // beim Start ein, das Kopieren muss vorher passiert sein. config() { const require = createRequire(import.meta.url) const from = join(dirname(require.resolve('pdfjs-dist/package.json')), 'standard_fonts') const to = join(import.meta.dirname, 'public', 'pdfjs', 'standard_fonts') mkdirSync(to, { recursive: true }) cpSync(from, to, { recursive: true }) }, } } /** * Den