npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@starterlib/schematics

v0.16.4

Published

Generateurs du chemin dore des SPA du socle frontal starter : ng g @starterlib/schematics:page, liste, formulaire, tuile. Jamais en dependance de production.

Readme

@starterlib/schematics

Les generateurs du chemin dore des SPA du socle frontal (lot 285) : une page, une liste, un formulaire, une tuile, ecrits comme le socle les exige, et que starter-web verify accepte sans retouche. Jamais en dependance de production.

pnpm add -D --save-exact @starterlib/schematics@<version du socle>

ng g @starterlib/schematics:page parametres
ng g @starterlib/schematics:liste operations
ng g @starterlib/schematics:formulaire nouveau-beneficiaire
ng g @starterlib/schematics:tuile solde

La collection est un paquet : ng g la nomme par son nom complet. L'ecriture courte du plan SPA (ng g @starterlib:page) supposerait un paquet nomme @starterlib, ce qu'un scope npm ne permet pas.

| Generateur | Ce qu'il ecrit | | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | page | src/app/pages/<nom>.{ts,html,scss,spec.ts} : st-page-header en PREMIER enfant (lot 294), aide contextuelle (lot 280) ; la route (title = <perimetre>.pages.<nom>), avant toute route a parametre | | liste | la page, ses cinq etats par st-state (chargement, erreur, vide, hors ligne, succes), une st-list ; src/app/donnees/<nom>.ts, la source a brancher sur le client engendre du service | | formulaire | la page en Signal Forms (form[stForm], st-error-summary, st-form-actions), formulaireModifie() ; la route sous canDeactivate: [formulaireNonEnregistre] | | tuile | src/app/tuiles/<nom>.{ts,html,spec.ts} : la carte titree (st-card, lien etendu) qui mene a sa page ; aucune route |

Chacun ajoute ses cles aux DEUX catalogues du perimetre (public/i18n/<perimetre>.fr.json et .en.json, memes cles : l'etape i18n), reecrit le type des cles (src/app/i18n/cles.ts) par la fonction meme de starter-web i18n:types (@starterlib/cli, pair du paquet), et met ce qu'il ecrit a la forme de Prettier par le Prettier et la configuration de la SPA. Il n'ecrase rien : un fichier, une cle ou une route deja presents l'arretent.

Options : --perimetre (par defaut, le premier du manifeste, starterWeb.i18n.perimetres pour une application autonome, socle pour l'hote), --prefixe (par defaut, prefix d'angular.json).

Les textes proposes (titre tire du nom, aide et precision generiques) sont a REECRIRE : ils existent pour que la page se construise et se verifie des sa generation, pas pour partir tels quels. La source d'une liste et l'envoi d'un formulaire sont a brancher sur le client engendre du service (pnpm contrat:generer, ADR web 0008) : le lint refuse tout appel HTTP ecrit a la main.

Dans un remote, l'essai de la tuile fournit le routeur EN TANT QUE coquille, et le dit au lint par une ligne motivee (eslint-disable-next-line no-restricted-imports), comme les essais du remote catalog ; dans un hote, rien.

Aucune dependance a l'execution : une regle est une fonction de l'arbre que le CLI d'Angular fournit. Les essais (packages/schematics/test/) lancent les quatre generateurs par le moteur du CLI (SchematicTestRunner, @angular-devkit/schematics de la matrice du socle) sur une SPA temoin.

Preuve d'integration (2026-10-01) : les quatre generateurs lances sur une COPIE du remote catalog (liste, page, formulaire, tuile, vingt fichiers ecrits), puis starter-web verify de la SPA (0.10.13) : ses quinze etapes passent (format, lint, i18n, essais, contrat, construction, budget, securite...). Seule retouche, celle qu'un developpeur doit a toute route nouvelle : l'essai de la SPA qui fige la liste de ses routes. C'est cette preuve qui a trouve la ligne de lint de la tuile.