2.7 KiB
Plattformneutrale Engine und Browseradapter
Stand: 2026-07-17
Zweck
Die ASSESSOR-Kernlogik soll heute in der lokalen React-/Tauri-Anwendung und später im Backend eines internen Servers ausführbar sein. Deshalb verarbeitet die Engine keine Browser-File-Objekte und greift nicht direkt auf DOM, localStorage oder Download-APIs zu.
Schichten
React-Dateiauswahl
-> Browser-File-Adapter
-> ImportSource (Metadaten + Uint8Array)
-> plattformneutrale Importengine
-> TextDecoderAdapter
-> MarkupDocumentAdapter
-> Formatparser
-> ImportDocument
-> Tabellenanalyse und Profilwahl
Plattformneutraler Kern
src/domain/import-source.tsdefiniert binäre Importquellen ohne Browserobjekte.src/importers/engine.tsist der zentrale Engine-Einstieg für Browser, Tests und ein zukünftiges Backend.src/importers/runtime-adapters.tsdefiniert Verträge für Textdekodierung und HTML-/XML-Strukturextraktion.- CSV, JSON und Excel arbeiten direkt auf Text beziehungsweise Bytes.
- HTML und XML erhalten bereits dekodierte, inerte Strukturen vom Markupadapter.
Browserkomposition
Unter src/platform/browser liegen die aktuellen Browserimplementierungen:
- Umwandlung von
FileinImportSource - UTF-8-Dekodierung mit Windows-1252-Fallback
- DOM-basierte, inerte HTML- und XML-Auswertung
localStorage-Persistenzadapter- Browser-Downloadadapter
Der bisherige Aufruf importFile(file, options) bleibt als dünne Browser-Kompatibilitätsschicht erhalten. Ein zukünftiges Backend ruft stattdessen importSource(source, options, adapters) mit serverseitigen Adaptern auf.
Weitere Plattformgrenzen
- Reviewpersistenz hängt nur vom
StorageAdapterab. - Exporte geben Textartefakte an einen
DownloadAdapterweiter. - Snapshots und Dashboardexporte verwenden einen injizierbaren
Clock. - IDs der Import- und Analyseobjekte bleiben deterministisch und benötigen keinen Zufallszahlengenerator.
Sicherheitsgrenze
Importierte HTML-Inhalte werden ausschließlich vom Browser-Markupadapter gelesen. Aktive Elemente werden vor der Tabellenextraktion entfernt und nie in die React-Oberfläche eingesetzt oder ausgeführt. Excel-Formeln und VBA bleiben deaktiviert. Die bestehenden Local-only-Prüfungen verhindern weiterhin Netzwerkfähigkeiten und prüfen zusätzlich, dass Kernmodule keine Browser-, React- oder Tauri-Abhängigkeiten einführen.
Verifikation
Die plattformneutralen Engine-Tests erstellen reine Bytequellen und injizieren Testadapter. Sie benötigen weder ein Browser-File-Objekt noch einen DOM-Zugriff durch die Engine. Die bisherigen Browserimporte bleiben über ihre Integrations- und Workflowtests abgedeckt.