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

@teqfw/email

v2.0.0

Published

Email functionality for Tequila Framework (TeqFW) applications.

Readme

@teqfw/email

npms.io jsdelivr

Human-governed. Agent-built. Agent-ready.

@teqfw/email lets application packages send text and HTML email through configured SMTP infrastructure without nodemailer. It is part of the Tequila Framework (TeqFW): created and evolved by coding agents under the architectural direction and final responsibility of Alex Gusev, and shipped with a version-matched Agent Skill so other agents can understand, integrate, and use it correctly.

Why use it

Email submission should be reusable across application features, while the application keeps control of credentials, recipients, and startup.

  • Send prepared text/HTML messages or use localized templates.
  • Use validated TLS or STARTTLS with password authentication.
  • Get explicit submission results, including a simulation mode for development.
  • Share one email capability across packages through dependency injection.

Quick start

After the host registers the package namespaces and loads email configuration through @teqfw/cfg, a component receives the send action:

export default class Notify {
    constructor({email}) {
        this.send = function (to) {
            return email.act({to, subject: 'Welcome', text: 'Hello!'});
        };
    }
}
export const __deps__ = Object.freeze({
    default: Object.freeze({email: 'TeqFw_Email_Back_Act_Send$'}),
});

Settings use TEQFW_EMAIL__*; see .env.example. Success reports SMTP acceptance, or explicit simulation, rather than final recipient delivery. The Agent Skill covers setup and outcome handling.

Public API

Runtime access is through the TeqFw_Email_ DI namespace:

  • TeqFw_Email_Back_Act_Send$ — submit a prepared message.
  • TeqFw_Email_Back_Service_Load$ — prepare localized template content.
  • TeqFw_Email_Back_Service_Send$ — prepare and submit a template.

The package supplies JSDoc and ambient types; its root export is type-only. Do not import runtime modules through @teqfw/email/src/**.

Agent-ready package

The package aligns runtime code, type information, and a version-matched skill in skills/teqfw-email. Detailed configuration, message contracts, template lookup, integration examples, and verification guidance live in that skill. Host instructions and application architecture remain authoritative.

Best fit

Use it in modular Node.js TeqFW applications that need shared SMTP submission and optional localized templates. For attachment-heavy workflows, OAuth, bulk campaigns, or delivery tracking, choose tooling that provides those capabilities.

Add to a project

npm install @teqfw/email

Requires Node.js 20 or later and TeqFW cfg/log/di 2.x. The host registers namespaces and loads configuration before using email services. Existing APP__EMAIL_* settings require explicit host mapping.

Boundaries

The package submits messages; it does not own application startup, recipient policy, a queue, or delivery tracking. TLS certificate validation is mandatory. There are no automatic retries; an unknown outcome after sending message data may already have been accepted. Attachments, CC/BCC, and OAuth are outside the current contract. Version 2.x changes configuration and composition from 0.x; see CHANGELOG.md.

Agent-Driven Development

TeqFW is built through the same development model that it is designed to enable: one human defines the intent, architecture, constraints, and acceptance criteria; coding agents implement and maintain the products; other agents use those products in different combinations to create applications.

@teqfw/email is part of TeqFW. The package includes a version-matched Agent Skill in skills/teqfw-email. The README provides a human-facing product overview; the skill provides agents with the package concepts, contracts, integration rules, examples, and boundaries.

Mount the skill into a host project:

mkdir -p .agents/skills
ln -s ../../node_modules/@teqfw/email/skills/teqfw-email \
  .agents/skills/teqfw-email

Each TeqFW package is both a practical software component and a working demonstration of human-governed, agent-driven development. This work follows the Agent-Driven Software Management (ADSM) approach: human intent, architectural authority, acceptance, and responsibility remain authoritative; agents act as implementation and reasoning partners.