Gebouwd op het werk van geweldige maintainers
Agnes analyseert je code niet zomaar zelf. Elk rapport en elke score is opgebouwd uit de uitvoer van open-source tools, geschreven en onderhouden door mensen die hun tijd geven om het frontend-ecosysteem beter te maken. Dank aan alle ontwikkelaars, maintainers en bijdragers erachter. Zonder jullie bestond Agnes niet.
Vind je deze projecten ook nuttig? Geef ze een ster, meld issues, draag bij of sponsor de maintainers.
Tools die je code lezen
Deze draaien in een afgesloten container zonder netwerk. Elk van de tools voedt één onderdeel van de score.
Oxlint
MIT- Code smells
Een razendsnelle linter uit het Oxc-project. Agnes gebruikt hem om verdachte en foutgevoelige codepatronen, importcycli en het omzeilen van typecontrole (any, @ts-ignore) te signaleren, in JavaScript, TypeScript en de scriptblokken van Vue-, Svelte- en Astro-bestanden.
Biome
MIT OR Apache-2.0- Code smells
Een snelle toolchain voor het web. Agnes draait de linter in drie rondes: stijlproblemen in CSS en HTML, te complexe code, en Vue-, Svelte- en Astro-componenten, waarbij templates, ongebruikte code en de complexiteit van hun scripts worden gecontroleerd. Ook de toegankelijkheid van Astro wordt ermee gecontroleerd.
FTA
MIT- Code smells
De Fast TypeScript Analyzer, geschreven in Rust. Beoordeelt hoe onderhoudbaar elk bestand is, op basis van complexiteit en omvang.
Knip
ISC- Code smells
Vindt ongebruikte bestanden, exports en dependencies, zodat dode code niet ongemerkt ophoopt.
jscpd
MIT- Duplicatie
Een copy/paste-detector. Vindt blokken gedupliceerde code in je project en rapporteert hoeveel daarvan herhaald wordt.
Stylelint
MIT- Code smells
Een moderne CSS-linter. Agnes draait de aanbevolen regels om CSS-fouten te vinden, zoals dubbele selectors en eigenschappen of onbekende eigenschappen, in CSS-, SCSS-, Sass- en Less-bestanden en in de stijlblokken van Vue-, Svelte- en Astro-componenten.
html-validate
MIT- Code smells
Een offline HTML-validator met toegankelijkheidscontroles. Signaleert kapotte markup, ontbrekende alt-teksten of taalattributen en vergelijkbare problemen.
axe-core
MPL-2.0- Toegankelijkheid
Een toegankelijkheidsregelset van Deque. Staan de toegankelijkheidscontroles aan, dan draait Agnes het over je statische HTML-pagina's om ontbrekende labels, ontbrekende alt-teksten, ongeldige ARIA en vergelijkbare problemen te vinden. Kleurcontrast beoordelen kan niet zonder browser, dus dat blijft buiten beschouwing.
jsdom
MIT- Toegankelijkheid
Een JavaScript-implementatie van de browser-DOM. Hiermee leest axe-core je HTML in een gewone container, zonder browser en zonder de scripts van je pagina uit te voeren.
ESLint
MIT- Toegankelijkheid
De uitbreidbare JavaScript-linter. Voor de toegankelijkheidscontroles draait Agnes hem met de Vue-toegankelijkheidsplugin en de toegankelijkheidsregels voor Angular-templates op je componenten.
Angular ESLint
MIT- Code smells
- Toegankelijkheid
De eigen lintregels van Angular, uitgevoerd door ESLint. Agnes gebruikt de aanbevolen regels om templates en componenten te vinden die waarschijnlijk fout zijn, zoals een genegeerde async pipe of een verkeerd gespelde two-way binding, en code die nog niet naar de huidige Angular-stijl is overgezet, in externe en inline templates en in de TypeScript. Met de toegankelijkheidscontroles aan draait ook Angulars template-toegankelijkheidsregels.
eslint-plugin-vue
MIT- Code smells
- Security
De officiële Vue-linter. Agnes draait een selectie van de regels die oxlint en Biome nog niet dekken: props die een component wijzigt, refs zonder .value, ongebruikte template-variabelen, ongeldige directives en ongeldige standaardwaarden voor props. Ook v-html, dat ruwe HTML rendert, wordt gemeld als securitybevinding om na te kijken.
eslint-plugin-svelte
MIT- Code smells
- Security
De officiële Svelte-linter. Agnes draait een selectie van de regels die de Svelte-compiler nog niet dekt: each-blokken zonder key, verkeerd gebruik van stores, dubbele directives en objecten die als tekst worden getoond. Ook {@html} en target="_blank"-links worden gemeld als securitybevindingen om na te kijken.
Svelte
MIT- Code smells
- Toegankelijkheid
De Svelte-compiler. Hij waarschuwt voor toegankelijkheidsproblemen in componenten en voor reactiviteitsfouten en ongebruikte stijlen; Agnes leest die waarschuwingen zonder code te genereren of uit te voeren.
Secretlint
MIT- Security
Zoekt naar gecommitte geheimen zoals API-sleutels, tokens en private keys. Agnes meldt waar er een is gevonden, nooit het geheim zelf.
Openbare data die we opvragen
Naast bovenstaande tools vertellen twee openbare diensten ons over je dependencies. Alleen pakketnamen en versies worden daarheen gestuurd, nooit je code.
OSV
- Dependencies
De open-source kwetsbaarhedendatabase. Agnes controleert elk pakket in je lockfile ertegen en meldt bekende advisories, en of er een patch bestaat.
npm registry
- Dependencies
Het pakketregister vertelt ons wanneer een dependency die je gebruikt deprecated of verouderd is, of lang niet is bijgewerkt.
Hoe de score tot stand komt
Elke categorie wordt een score van 0 tot 100. De totaalscore is een gewogen mix van de vier.
- 35%Code smells
- 35%Dependencies
- 15%Security
- 15%Duplicatie
Kan een categorie niet worden geanalyseerd, bijvoorbeeld omdat er geen lockfile is, dan valt die weg en worden de gewichten van de rest naar evenredigheid opgehoogd.
Toegankelijkheid en gemeten testdekking zijn per project optioneel. Staan ze aan, dan doen ze mee in de mix, met ongeveer 10% en 15%, en worden de andere gewichten daarop aangepast.