import { config } from '../config.js' import { legalPaths } from './analyseLegal.js' /** * Einzige Quelle der verlinkten Unterlagen im Abo-Modell (Katalog, Einschalt-Nachweis, Analyse). Blattmodul: importiert * nur config und analyseLegal.js. Liest bei jedem Aufruf (Tests aendern config zur Laufzeit). Task 15 (Fassung 6) stellt * nur diese Quelle um; die Aufrufer bleiben unveraendert. */ const fassung = (unterlage) => (unterlage ? { version: unterlage.version, url: unterlage.url ?? '' } : null) /** * Leistungsbeschreibung und AVV einer Funktion: { leistungsbeschreibung: { version, url } | null, avv: { version, url } | null }. * Funktionen aus dem Register: deren Eintraege; 'analyse': die versionierten Seiten aus legalPaths(config.analyse.avvVersion). * Ein unbekannter Schluessel ist ein Programmfehler (TypeError). */ export function unterlagenFuer(key) { if (key === 'analyse') { const version = config.analyse.avvVersion const pfade = legalPaths(version) return { leistungsbeschreibung: { version, url: pfade.lb }, avv: { version, url: pfade.avv } } } if (typeof key !== 'string' || !Object.hasOwn(config.features, key)) throw new TypeError(`Unbekannte Funktion: ${String(key)}`) const eintrag = config.features[key] return { leistungsbeschreibung: fassung(eintrag.leistungsbeschreibung), avv: fassung(eintrag.avv) } } /** Unterlagen der Analyse fuer Nachweis und Mail: { avvVersion, legal: { lb, avv } } (Adressen der versionierten Seiten). */ export function analyseUnterlagen() { const { leistungsbeschreibung, avv } = unterlagenFuer('analyse') return { avvVersion: avv.version, legal: { lb: leistungsbeschreibung.url, avv: avv.url } } }