Veille Angular, semaine 42
Sécurité
- GHSA-57xq-rjx2-v5xh (publiée le 1er octobre, CVSS 8.2, élevée, pas de CVE assigné) : sur
@angular/routeren SSR Node.js,RouterLinkmet en cache unUrlTreepour toute la requête. AvecqueryParamsHandlingàmergeoupreserve, chaque lien copie les paramètres de requête, donc une chaîne de requête très longue peut épuiser le heap et faire tomber le worker SSR. Versions vulnérables : de 22.0.0 à moins de 22.2.1 et de 21.2.0 à moins de 21.2.25. Corrigé en 22.2.1 et 21.2.25. Contournements : évitermergeetpreservesur les liens rendus côté serveur, ou rejeter les chaînes de requête longues au niveau du proxy.
Releases Angular core, CLI et Material
- Angular 22.3.0-next.1 (8 octobre, pré-release) : ajoute
scrollMarginaux options de viewport de@defer, des plages de sélection intelligente dans le language service, et des correctifs sur le compiler (::ng-deep,@letdans les diagnostics de projection de contenu), les Signal Forms et le router (sérialisation des URLs relatives au protocole, état après une redirection depuis le gestionnaire d'erreur). - Angular 22.2.2 (8 octobre, patch) : reprend ces correctifs sur la ligne stable et ajoute
strictUnclaimedEventNamesau schéma des options du compiler dans le language service. - Angular CLI 22.3.0-next.1 (7 octobre, pré-release) : le répertoire de cache de
@angular/buildest désormais séparé par projet et par builder, le dev server SSR conserve l'en-tête Host d'origine quand il fait proxy, et le builder de bibliothèque accepte unoutputPathsitué dans la racine du projet. - Angular Material et CDK 22.3.0-next.1 (7 octobre, pré-release) :
google-mapsjournalise une erreur au lieu de lever une exception, etmat-iconne copie plus les attributs d'événement.
Nx et outillage
- Nx 23.3.0 (7 octobre) : support de NgRx 22, de Vitest 5 et de Cypress 16, option
--explainqui indique pourquoi chaque tâche est affectée, Ultracache en remplacement de la propriété de targetsandbox(activable avecNX_CLOUD_USE_ULTRACACHE), et exécuteur@nx/oxlint:lintpar lots. Côtéangular-rspack, une application SSR peut être générée sur l'application engine de@angular/ssr. - Nx 24.0.0-beta.0 (9 octobre, beta) : retire l'alias déprécié
nx watch --includeDependentProjectsau profit de--includeDependencies, ne traite plusprojects: 'self'et'dependencies'comme valeurs spéciales dansdependsOn(nx repairréécrit ces entrées), retire@nx/gradle/plugin-v1et les générateurs et exécuteurs Remix.
Testing et migration
- Playwright 1.64.0 (7 octobre) : nouvelle option de projet
defaultpour exclure un projet des exécutions sauf sélection explicite, option--shufflepour mélanger l'ordre des tests,lockdanstest.describe.configure()pour sérialiser les tests qui partagent une ressource, etlocator.within()pour restreindre un locator à un autre. Chromium 156, Firefox 157 et WebKit 27.2.
Breaking change
- Playwright 1.64.0 : la propriété
screenprovient maintenant des descripteurs d'appareil (il faut la fixer àundefinedpour s'en passer), le JSX dans les tests suittsconfig.json, et les éléments situés dans des iframes cachées sont désormais considérés comme cachés. Les suites de tests de bout en bout qui reposent sur l'un de ces comportements sont à relancer après la montée de version.
Découvertes
- jig (dépôt mis à jour le 1er octobre, beta, sous le dist-tag
nextde @awdlab/jig) : bibliothèque de plus de 60 composants pour Angular 22 et plus, basée sur les signals, zoneless et standalone, sansControlValueAccessorni décorateurs@Input()et@Output(). Les composants n'embarquent aucun CSS : le style vient d'un paquet de thèmes séparé avec trois préréglages (nova,shade,material) et un moteur de tokens pour les thèmes sur mesure. Les imports se font par sous-chemins, par exemple@awdlab/jig/button. Pourquoi tester : le style étant découplé des composants, on peut changer de préréglage ou définir ses propres tokens sans toucher aux templates, ce qui convient aux projets qui ont déjà un design system maison. L'API est annoncée proche de la stabilité mais des inputs peuvent encore être renommés.