JSPM

  • Created
  • Published
  • Downloads 205
  • Score
    100M100P100Q72717F
  • License MIT

The Stacks notifications integration.

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@stacksjs/notifications) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    Stacks Notifications

    Stacks Notifications is a unified driver system for sending messages/notifications. It supports sending emails, SMS messages, and chat messages.

    ☘️ Features

    • 📦 Send Emails
    • 🎨 Email Styling
    • 📱 Send SMS messages
    • 💬 Send Chat messages

    TODO

    • Driver: FCM
    • Driver: Expo
    • Driver: SNS (Push)
    • Driver: Pushwoosh

    🤖 Usage

    pnpm i -D @stacksjs/notifications

    You may now use it in your project:

    import { notification } from '@stacksjs/notifications'
    
    notification.send(options)

    🏎️ Drivers

    There are different option types for Chat, Email, and SMS drivers. To use any driver, simply configure the notification options object.

    interface ChatOptions {
      webhookUrl: string
      content: string
    }
    
    interface EmailOptions {
      to: string | string[]
      subject: string
      html: string
      from?: string
      text?: string
      attachments?: IAttachmentOptions[]
      id?: string
    }
    
    interface SMSOptions {
      to: string
      content: string
      from?: string
      attachments?: IAttachmentOptions[]
      id?: string
    }

    Available drivers are listed below, with the proper variables needed to get started.

    Email

    Email drivers are configured with the following environment variables:

    Sendgrid

    SENDGRID_API_KEY=SG123
    SENDGRID_FROM=from@example.com
    SENDGRID_SENDER_NAME=Sender

    Mailgun

    MAILGUN_API_KEY=MG123
    MAILGUN_DOMAIN=example.com
    MAILGUN_USERNAME=username
    MAILGUN_FROM=from@example.com

    Mailjet

    MAILJET_API_KEY=MJ123
    MAILJET_API_SECRET=MJTESTSECRET
    MAILJET_FROM_EMAIL=from@example.com

    Netcore

    NETCORE_API_KEY=NC123
    NETCORE_FROM=from@example.com

    Nodemailer

    NODEMAILER_FROM_EMAIL=from@example.com
    NODEMAILER_HOST=example.com
    NODEMAILER_USERNAME=username
    NODEMAILER_PASSWORD=password
    NODEMAILER_PORT=25
    NODEMAILER_SECURE=true

    Postmark

    POSTMARK_API_KEY=PM123
    POSTMARK_FROM=from@example.com

    AWS SES

    SES_REGION=US
    SES_ACCESS_KEY_ID=testkey123
    SES_SECRET_ACCESS_KEY=testaccesskey123
    SES_FROM=from@example.com

    Mandrill

    MANDRILL_API_KEY=Ma123
    MANDRILL_EMAIL=from@example.com

    EmailJS

    EMAILJS_FROM_EMAIL=from@example.com
    EMAILJS_HOST=example.com
    EMAILJS_USERNAME=username
    EMAILJS_PASSWORD=password
    EMAILJS_PORT=25
    EMAILJS_SECURE=true

    SMS

    SMS drivers are configured with the following environment variables:

    Twilio

    TWILIO_ACCOUNT_SID=ACtest
    TWILIO_AUTH_TOKEN=testtoken
    TWILIO_FROM_NUMBER=+112345
    TWILIO_TO_NUMBER=+145678

    Nexmo

    VONAGE_API_KEY=VN123
    VONAGE_API_SECRET=testkey
    VONAGE_FROM_NUMBER=+112345

    Gupshup

    GUPSHUP_USER_ID=GU123
    GUPSHUP_PASSWORD=password

    Plivo

    PLIVO_ACCOUNT_ID=PA123
    PLIVO_AUTH_TOKEN=testtoken
    PLIVO_FROM_NUMBER=+112345

    SMS77

    SMS77_API_KEY=SA123
    SMS77_FROM=from@example.com

    SNS

    SMS77_API_KEY=SA123
    SMS77_FROM=from@example.com

    Telnyx

    TELNYX_API_KEY=TA123
    TELNYX_MESSAGE_PROFILE_ID=testprofileid
    TELNYX_FROM=from@example.com

    Termii

    TERMII_API_KEY=TermA123
    TERMII_SENDER=from@example.com

    Chat

    Chat drivers are configured with the following environment variables:

    Discord

    • None

    Slack

    SLACK_APPLICATION_ID=SAID123
    SLACK_CLIENT_ID=SCID123
    SLACK_SECRET_KEY=SSK123

    Learn more in the docs.

    🧪 Testing

    pnpm test

    📈 Changelog

    Please see our releases page for more information on what has changed recently.

    💪🏼 Contributing

    Please review the Contributing Guide for details.

    🏝 Community

    For help, discussion about best practices, or any other conversation that would benefit from being searchable:

    Discussions on GitHub

    For casual chit-chat with others using this package:

    Join the Stacks Discord Server

    🙏🏼 Credits

    Many thanks to the following core technologies & people who have contributed to this package:

    📄 License

    The MIT License (MIT). Please see LICENSE for more information.

    Made with ❤️