Construit sur le travail de mainteneurs formidables
Agnes n’analyse pas votre code tout seul. Chaque rapport et chaque score repose sur les résultats d’outils open source, écrits et maintenus par des personnes qui donnent de leur temps pour améliorer l’écosystème frontend. Merci à chaque développeur, mainteneur et contributeur qui se trouve derrière. Sans vous, Agnes n’existerait pas.
Si ces projets vous sont utiles aussi, pensez à leur donner une étoile, à signaler des problèmes, à contribuer ou à soutenir financièrement les mainteneurs.
Les outils qui lisent votre code
Ils s’exécutent dans un conteneur verrouillé, sans réseau. Chacun alimente une partie du score.
Oxlint
MIT- Code smells
Un linter très rapide du projet Oxc. Agnes l’utilise pour signaler les motifs de code suspects ou sources d’erreurs, les cycles d’imports et les raccourcis TypeScript risqués comme any, en JavaScript, en TypeScript et dans les blocs script des fichiers Vue, Svelte et Astro.
Biome
MIT OR Apache-2.0- Code smells
Une chaîne d’outils rapide pour le web. Agnes exécute son linter en trois passes : les problèmes de style en CSS et en HTML, le code trop complexe, et les composants Vue, Svelte et Astro, dont il vérifie les templates, le code inutilisé et la complexité des scripts. Il vérifie aussi l’accessibilité dans Astro.
FTA
MIT- Code smells
Le Fast TypeScript Analyzer, écrit en Rust. Il évalue la maintenabilité de chaque fichier selon sa complexité et sa taille.
Knip
ISC- Code smells
Trouve les fichiers, exports et dépendances inutilisés, pour que le code mort ne s’accumule pas sans qu’on le remarque.
jscpd
MIT- Duplication
Un détecteur de copier-coller. Il trouve les blocs de code dupliqués dans votre projet et indique quelle part en est répétée.
Stylelint
MIT- Code smells
Un linter CSS moderne. Agnes exécute ses règles recommandées pour repérer les erreurs CSS comme les sélecteurs et propriétés en double ou les propriétés inconnues, dans les fichiers CSS, SCSS, Sass et Less et dans les blocs style des composants Vue, Svelte et Astro.
html-validate
MIT- Code smells
Un validateur HTML hors ligne avec des vérifications d’accessibilité. Il signale le balisage cassé, les textes alternatifs ou attributs de langue manquants, et d’autres problèmes similaires.
axe-core
MPL-2.0- Accessibilité
Un moteur de règles d’accessibilité de Deque. Lorsque les vérifications d’accessibilité sont activées, Agnes l’exécute sur vos pages HTML statiques pour trouver les libellés manquants, les textes alternatifs manquants, l’ARIA invalide et d’autres problèmes similaires. Il ne peut pas juger le contraste des couleurs sans navigateur, ce point est donc laissé de côté.
jsdom
MIT- Accessibilité
Une implémentation JavaScript du DOM du navigateur. Elle permet à axe-core de lire votre HTML dans un simple conteneur, sans navigateur et sans exécuter les scripts de votre page.
ESLint
MIT- Accessibilité
Le linter JavaScript extensible. Pour les vérifications d’accessibilité, Agnes l’exécute sur vos composants avec le plugin d’accessibilité de Vue et les règles d’accessibilité des templates d’Angular.
Angular ESLint
MIT- Code smells
- Accessibilité
Les règles de lint propres à Angular, exécutées par ESLint. Agnes utilise ses règles recommandées pour signaler les templates et composants probablement incorrects, comme des pipes async niés ou un two-way binding mal écrit, et le code qui n’est pas encore passé au style Angular actuel, dans les templates externes et inline et dans le TypeScript. Avec les vérifications d’accessibilité activées, il exécute aussi les règles d’accessibilité des templates d’Angular.
eslint-plugin-vue
MIT- Code smells
- Sécurité
Le linter officiel de Vue. Agnes exécute une sélection de ses règles, celles qu’oxlint et Biome ne couvrent pas déjà : les props qu’un composant modifie, les refs utilisées sans .value, les variables de template inutilisées, les directives invalides et les props par défaut invalides. Il signale aussi v-html, qui affiche du HTML brut, comme un constat de sécurité à examiner.
eslint-plugin-svelte
MIT- Code smells
- Sécurité
Le linter officiel de Svelte. Agnes exécute une sélection de ses règles que le compilateur Svelte ne couvre pas déjà : les blocs each sans clé, la mauvaise utilisation des stores, les directives en double et les objets affichés comme texte. Il signale aussi {@html} et les liens target="_blank" comme des constats de sécurité à examiner.
Svelte
MIT- Code smells
- Accessibilité
Le compilateur Svelte. Il signale les problèmes d’accessibilité dans les composants, ainsi que les erreurs de réactivité et les styles inutilisés ; Agnes lit ces avertissements sans générer ni exécuter de code.
Secretlint
MIT- Sécurité
Recherche les secrets commités, comme des clés d’API, des jetons et des clés privées. Agnes indique où un secret a été trouvé, jamais le secret lui-même.
Les données publiques que nous consultons
En plus des outils ci-dessus, deux services publics nous renseignent sur vos dépendances. Seuls les noms et versions des paquets leur sont envoyés, jamais votre code.
OSV
- Dépendances
La base de données open source des vulnérabilités. Agnes y vérifie chaque paquet de votre lockfile et signale les avis connus, ainsi que l’existence d’un correctif.
npm registry
- Dépendances
Le registre de paquets nous indique quand une dépendance que vous utilisez est dépréciée, obsolète ou n’a pas été mise à jour depuis longtemps.
Comment le score est calculé
Chaque catégorie devient un score de 0 à 100. Le score global est une moyenne pondérée des quatre.
- 35%Code smells
- 35%Dépendances
- 15%Sécurité
- 15%Duplication
Si une catégorie ne peut pas être analysée, par exemple parce qu’il n’y a pas de lockfile, elle est écartée et les poids des autres sont augmentés en conséquence.
L’accessibilité et la couverture de tests mesurée sont facultatives pour chaque projet. Lorsqu’elles sont activées, elles entrent dans le calcul à environ 10 % et 15 %, et les autres catégories sont réduites en conséquence.