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

@fraza/module-forms

v0.4.1

Published

Module de formulaires pour Fraza : constructeur au glisser-déposer, soumissions, courriels de notification et bloc à embarquer.

Readme

Le module ajoute des formulaires à l'admin de Fraza. Composez-les au glisser-déposer, affichez-les sur le site et recevez les soumissions dans l'admin, avec une notification par courriel.

npm i @fraza/module-forms

Documentation · Installation · Affichage

[!WARNING] Fraza est en version 0.x. Une nouvelle version mineure peut contenir un changement cassant.

Points forts

  • Un constructeur sans code. Texte, courriel, choix, consentement, fichier, champ caché : chaque champ se pose au glisser-déposer, sur une ligne entière, une demie ou un tiers.
  • Contre les robots, sans captcha. Un champ piège et un délai minimal signé arrêtent les robots, sans service externe.
  • Chaque valeur vérifiée deux fois. Dans le navigateur, puis sur le serveur, selon le type de son champ.
  • La confidentialité par défaut. Durée de conservation par formulaire, adresse IP réduite à son réseau, fichiers retirés du stockage avec leur soumission.

Prérequis

  • Un projet créé par npx @fraza/start, avec @fraza/core installé.
  • NEXT_PUBLIC_URL renseignée. Le core vérifie l'origine de toute requête qui modifie des données : sans cette variable, toute soumission est rejetée en 403. @fraza/start la remplit dans .env.local.
  • Aucun compte : le paquet est publié sur npmjs.

Installation

npm i @fraza/module-forms

Ajoutez la variable d'activation à .env.local, et aux variables de la plateforme en production :

FRAZA_MODULE_FORMS=true

Régénérez ensuite les manifestes, puis créez les tables :

npx fraza-modules sync
npx fraza-db init

fraza-modules sync se lance aussi au postinstall. fraza-db init crée fraza_forms_form, fraza_forms_submission et fraza_forms_storage_deletion, la file des fichiers à retirer du stockage. Sur un projet où le module est déjà installé, npx fraza-db migrate applique ses migrations.

Trois fonctions demandent une configuration du core. Sans elle, le reste du module fonctionne :

| Fonction | Demande | |---|---| | Courriels de notification et de confirmation | La configuration courriel du projet, Resend ou SMTP, et la table fraza_email_outbox, créée par npx fraza-db migrate. | | Champs de type fichier | Les variables FRAZA_STORAGE_*. | | Délai minimal anti-robots | FRAZA_ENCRYPTION_KEY, que @fraza/start remplit. Sans elle, le délai n'est pas vérifié. |

La tâche planifiée forms-retention tourne chaque heure : elle supprime les soumissions arrivées au bout de leur durée de conservation et retire leurs fichiers du stockage. Comme toute tâche du core, elle demande un serveur qui reste allumé, pas une plateforme serverless.

Le détail est dans Installation.

Documentation

| Page | Contenu | |---|---| | Installation | Installer le module, créer les tables, vérifier les dépendances. | | Configuration | Variables d'environnement, permissions, entrées d'admin. | | Champs | Catalogue des types de champs et validation appliquée. | | Administration | Constructeur, liste des formulaires et boîte de réception. | | Soumissions | Traitement d'une soumission, anti-robots, fichiers, courriels, rétention. | | Affichage | Les trois façons de rendre un formulaire sur le site. | | Modèle de données | Tables fraza_forms_form, fraza_forms_submission et fraza_forms_storage_deletion. | | API | Routes HTTP et fonctions serveur importables. |

La documentation est aussi livrée avec le core, lisible hors ligne depuis un projet : node_modules/@fraza/core/dist/docs/06-modules/forms/.

Licence

MIT. Copyright (c) 2026 Fraza. Voir LICENSE. Les dépendances tierces sont listées dans THIRD-PARTY-NOTICES.md.

Ce paquet fait partie de Fraza Libre.