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 🙏

© 2024 – Pkg Stats / Ryan Hefner

mailly

v6.3.0

Published

A lightweight, efficient email OTP (One-Time Password) verification service for JavaScript applications.

Downloads

545

Readme

Mailly 📧

A lightweight, efficient email OTP (One-Time Password) verification service for JavaScript applications.

Version License

Overview ✨

Mailly provides a simple and reliable API for handling email-based OTP verification in your applications. It handles the core functionality of sending, verifying, and resending OTPs, allowing you to implement your own UI and business logic around it.

Core Features 🚀

  • 📤 Send OTP emails
  • ✅ Verify OTP codes
  • 🔄 Resend OTP functionality
  • ⚡ Promise-based API
  • 🛠 Framework agnostic
  • 🪶 Lightweight (~XX KB)

Installation

npm install mailly
# or
yarn add mailly
# or
pnpm add mailly

API Usage 💻

Send OTP

const { sendOtp } = require('mailly');

// Using async/await
try {
    const response = await sendOtp('[email protected]');
    console.log('OTP sent successfully');
} catch (error) {
    console.error('Failed to send OTP:', error);
}

// Using promises
sendOtp('[email protected]')
    .then(() => console.log('OTP sent successfully'))
    .catch(error => console.error('Failed to send OTP:', error));

Verify OTP

const { verifyOtp } = require('mailly');

try {
    const response = await verifyOtp('[email protected]', '123456');
    console.log('OTP verified successfully');
} catch (error) {
    console.error('Verification failed:', error);
}

Resend OTP

const { resendOtp } = require('mailly');

try {
    const response = await resendOtp('[email protected]');
    console.log('OTP resent successfully');
} catch (error) {
    console.error('Failed to resend OTP:', error);
}

Integration Examples 🔧

React Integration

import { sendOtp, verifyOtp } from 'mailly';

function LoginComponent() {
    const handleVerification = async (email, otp) => {
        try {
            await verifyOtp(email, otp);
            // Handle successful verification
        } catch (error) {
            // Handle verification error
        }
    };
    
    // Implement your UI and use the functions as needed
}

Express.js API Integration

const express = require('express');
const { sendOtp, verifyOtp } = require('mailly');

const app = express();
app.use(express.json());

app.post('/api/send-otp', async (req, res) => {
    try {
        await sendOtp(req.body.email);
        res.json({ success: true });
    } catch (error) {
        res.status(400).json({ error: error.message });
    }
});

app.post('/api/verify-otp', async (req, res) => {
    try {
        await verifyOtp(req.body.email, req.body.otp);
        res.json({ success: true });
    } catch (error) {
        res.status(400).json({ error: error.message });
    }
});

API Reference 📚

sendOtp(email)

Sends an OTP to the specified email address.

  • Parameters:
    • email (string): The recipient's email address
  • Returns: Promise
  • Throws: Error if the request fails

verifyOtp(email, otp)

Verifies the OTP for the given email address.

  • Parameters:
    • email (string): The email address
    • otp (string): The OTP to verify
  • Returns: Promise
  • Throws: Error if verification fails

resendOtp(email)

Resends the OTP to the specified email address.

  • Parameters:
    • email (string): The recipient's email address
  • Returns: Promise
  • Throws: Error if the request fails

Error Handling 🚨

try {
    await sendOtp('[email protected]');
} catch (error) {
    if (error.response) {
        // Server responded with an error
        console.error('Server error:', error.response.data);
    } else if (error.request) {
        // Request was made but no response received
        console.error('Network error');
    } else {
        // Something else went wrong
        console.error('Error:', error.message);
    }
}

Development 🛠️

# Install dependencies
npm install

# Build the package
npm run build

License 📄

ISC License

Contributing 🤝

Contributions are welcome! Please feel free to submit a Pull Request.

Support 💪

If you encounter any issues or have questions, please file an issue on the GitHub repository.