// Wortlaut-Orakel (P2): lädt das alte public/app.js in eine VM, rendert die vier Wortlaut-Seiten (Bestellen, Wechsel, E-Mail-Speicher, // Gutschrift) mit Attrappen und liefert deren HTML. Die neuen Seiten müssen denselben sichtbaren Text haben (C14, Fassung 5). // Nur lesend: app.js bleibt unverändert. P10 friert dieses Hilfsmittel vor dem Löschen von app.js ein (N40, N51). import vm from 'node:vm' import { readFileSync } from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' import { setImmediate as takt } from 'node:timers/promises' const APP_JS = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', '..', 'public', 'app.js') const ENTITAETEN = { '&': '&', '<': '<', '>': '>', '"': '"', ''': "'", ' ': ' ' } /** Sichtbarer Text eines HTML-Strings oder Elements: ohne Tags, Kommentare,