Gebaut auf der Arbeit großartiger Maintainer
Agnes analysiert deinen Code nicht allein. Jeder Bericht und jeder Score entsteht aus der Ausgabe von Open-Source-Tools, geschrieben und gepflegt von Menschen, die ihre Zeit geben, um das Frontend-Ökosystem besser zu machen. Danke an alle Entwicklerinnen, Entwickler, Maintainer und Mitwirkenden dahinter. Ohne euch gäbe es Agnes nicht.
Wenn dir diese Projekte auch nützen, gib ihnen einen Stern, melde Probleme, trage etwas bei oder unterstütze die Maintainer finanziell.
Tools, die deinen Code lesen
Sie laufen in einem abgeschotteten Container ohne Netzwerk. Jedes speist einen Teil des Scores.
Oxlint
MIT- Code Smells
Ein sehr schneller Linter aus dem Oxc-Projekt. Agnes markiert damit verdächtige und fehleranfällige Codemuster, Importzyklen und riskante TypeScript-Abkürzungen wie any, in JavaScript, TypeScript und den Script-Blöcken von Vue-, Svelte- und Astro-Dateien.
Biome
MIT OR Apache-2.0- Code Smells
Eine schnelle Toolchain für das Web. Agnes führt ihren Linter in drei Durchgängen aus: Stilprobleme in CSS und HTML, zu komplexer Code, und Vue-, Svelte- und Astro-Komponenten, bei denen Templates, ungenutzter Code und die Komplexität ihrer Scripts geprüft werden. Außerdem prüft er die Barrierefreiheit in Astro.
FTA
MIT- Code Smells
Der Fast TypeScript Analyzer, geschrieben in Rust. Er bewertet, wie wartbar jede Datei ist, anhand ihrer Komplexität und Größe.
Knip
ISC- Code Smells
Findet ungenutzte Dateien, Exporte und Abhängigkeiten, damit sich toter Code nicht unbemerkt ansammelt.
jscpd
MIT- Duplikate
Ein Copy-and-paste-Detektor. Er findet duplizierte Codeblöcke in deinem Projekt und meldet, wie viel davon wiederholt wird.
Stylelint
MIT- Code Smells
Ein moderner CSS-Linter. Agnes führt seine empfohlenen Regeln aus, um CSS-Fehler wie doppelte Selektoren und Eigenschaften oder unbekannte Eigenschaften zu finden, in CSS-, SCSS-, Sass- und Less-Dateien und in den Style-Blöcken von Vue-, Svelte- und Astro-Komponenten.
html-validate
MIT- Code Smells
Ein Offline-HTML-Validator mit Prüfungen zur Barrierefreiheit. Er meldet fehlerhaftes Markup, fehlende Alt-Texte oder Sprachattribute und ähnliche Probleme.
axe-core
MPL-2.0- Barrierefreiheit
Eine Regel-Engine für Barrierefreiheit von Deque. Wenn die Prüfungen zur Barrierefreiheit aktiviert sind, führt Agnes sie über deine statischen HTML-Seiten aus, um fehlende Labels, fehlende Alt-Texte, ungültiges ARIA und ähnliche Probleme zu finden. Farbkontraste kann sie ohne Browser nicht beurteilen, deshalb fehlen sie.
jsdom
MIT- Barrierefreiheit
Eine JavaScript-Implementierung des Browser-DOM. Damit kann axe-core dein HTML in einem einfachen Container lesen, ohne Browser und ohne die Scripts deiner Seite auszuführen.
ESLint
MIT- Barrierefreiheit
Der erweiterbare JavaScript-Linter. Für die Prüfungen zur Barrierefreiheit führt Agnes ihn mit dem Vue-Plugin für Barrierefreiheit und den Template-Regeln für Barrierefreiheit von Angular über deine Komponenten aus.
Angular ESLint
MIT- Code Smells
- Barrierefreiheit
Angulars eigene Lint-Regeln, ausgeführt von ESLint. Agnes nutzt die empfohlenen Regeln, um Templates und Komponenten zu markieren, die wahrscheinlich falsch sind, etwa negierte async-Pipes oder ein falsch geschriebenes Two-Way-Binding, und Code, der noch nicht auf den aktuellen Angular-Stil umgestellt ist, in externen und Inline-Templates und im TypeScript. Mit aktivierten Prüfungen zur Barrierefreiheit führt es auch Angulars Template-Regeln für Barrierefreiheit aus.
eslint-plugin-vue
MIT- Code Smells
- Sicherheit
Der offizielle Vue-Linter. Agnes führt eine Auswahl seiner Regeln aus, die oxlint und Biome noch nicht abdecken: Props, die eine Komponente verändert, Refs ohne .value, ungenutzte Template-Variablen, ungültige Direktiven und ungültige Standard-Props. Außerdem markiert er v-html, das rohes HTML rendert, als Sicherheitsbefund zur Prüfung.
eslint-plugin-svelte
MIT- Code Smells
- Sicherheit
Der offizielle Svelte-Linter. Agnes führt eine Auswahl seiner Regeln aus, die der Svelte-Compiler noch nicht abdeckt: each-Blöcke ohne Key, falsche Verwendung von Stores, doppelte Direktiven und Objekte, die als Text ausgegeben werden. Außerdem markiert er {@html} und Links mit target="_blank" als Sicherheitsbefunde zur Prüfung.
Svelte
MIT- Code Smells
- Barrierefreiheit
Der Svelte-Compiler. Er warnt vor Problemen bei der Barrierefreiheit in Komponenten, vor Fehlern bei der Reaktivität und vor ungenutzten Styles; Agnes liest diese Warnungen, ohne Code zu erzeugen oder auszuführen.
Secretlint
MIT- Sicherheit
Sucht nach eingecheckten Geheimnissen wie API-Schlüsseln, Tokens und privaten Schlüsseln. Agnes meldet, wo eines gefunden wurde, nie das Geheimnis selbst.
Öffentliche Daten, die wir abfragen
Neben den Tools oben informieren uns zwei öffentliche Dienste über deine Abhängigkeiten. An sie werden nur Paketnamen und Versionen gesendet, nie dein Code.
OSV
- Abhängigkeiten
Die Open-Source-Datenbank für Sicherheitslücken. Agnes prüft jedes Paket in deiner Lockfile dagegen und meldet bekannte Advisories und ob es einen Patch gibt.
npm registry
- Abhängigkeiten
Die Paket-Registry sagt uns, wenn eine verwendete Abhängigkeit als veraltet markiert ist, nicht mehr aktuell ist oder lange nicht aktualisiert wurde.
So entsteht der Score
Jede Kategorie wird zu einem Score von 0 bis 100. Der Gesamtscore ist eine gewichtete Mischung der vier.
- 35%Code Smells
- 35%Abhängigkeiten
- 15%Sicherheit
- 15%Duplikate
Wenn eine Kategorie nicht analysiert werden kann, zum Beispiel weil es keine Lockfile gibt, wird sie weggelassen und die Gewichte der anderen werden entsprechend erhöht.
Barrierefreiheit und gemessene Testabdeckung sind pro Projekt optional. Wenn sie aktiviert sind, fließen sie mit etwa 10 % und 15 % in die Mischung ein, und die anderen werden entsprechend kleiner.