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

unifiedpush-node-sender

v0.16.1

Published

Sender api for the AeroGear Unified Push server

Downloads

88

Readme

unifiedpush-node-sender CircleCI Coverage Status

Node Sender API for the AeroGear Unified Push server

note: This version of the sender is compatible with the 1.1.x series of the UnifiedPush Server

| | Project Info | | --------------- | ------------- | | License: | Apache License, Version 2.0 | | Build: | npm | | Documentation: | https://aerogear.org/push/ | | Issue tracker: | https://issues.jboss.org/browse/AGPUSH | | Mailing lists: | aerogear-users (subscribe) | | | aerogear-dev (subscribe) |

Getting Started

Pre Reqs:

  • node.js
  • npm
  • git

Building

clone and install:

$ [email protected]:aerogear/aerogear-unifiedpush-nodejs-client.git

$ cd aerogear-unifiedpush-nodejs-client

$ npm install

Running Tests

$ npm test

Add to a Project

In your project do

npm install path/to/aerogear-unified-push-node-client

or

install from npm

npm install unifiedpush-node-sender

Examples

Require the unifiedpush-node-sender library

const agSender = require('unifiedpush-node-sender');

const settings = {
    url: 'http://localhost:8080/ag-push',
    applicationId: '12345',
    masterSecret: '123456'
};

Send a Message

First get a handle on the client object, then use the client.sender.send method to send a message

agSender(settings).then((client) => {
    client.sender.send(message, options).then((response) => {
        console.log('success', response);
    })
});

Send a Batch of messages

Similar to the send method but passing an array of {message, options} objects as parameter instead.

agSender(settings).then((client) => {
    client.sender.sendBatch(messages).then((response) => {
        console.log('success', response);
    })
});

API Documentation

Class: Sender

The Sender Class, It returns a Promise with the client object

Sender(settings)

  • settings Object
    • url String - The URL of the Unified Push Server.
    • applicationId String - The id of an Application from the Unified Push Server
    • masterSecret String - The master secret for that Application
    • headers Object - The hash of custom HTTP headers / header overrides

client.sender.send([message], [options])

  • message Object

    • alert String - message that will be displayed on the alert UI element
    • priority String - sets a processing priority on a push message. values can be 'normal' or 'high'
    • sound String - The name of a sound file
    • badge String - The number to display as the badge of the app icon
    • userData Object - any extra user data to be passed
  • message.apns Object

    • title String - A short string describing the purpose of the notification.
    • action String - The label of the action button
    • urlArgs Array - an array of values that are paired with the placeholders inside the urlFormatString value of your website.json file. Safari Only
    • titleLocKey String - The key to a title string in the Localizable.strings file for the current localization. iOS Only
    • titleLocArgs Array - Variable string values to appear in place of the format specifiers in title-loc-key. iOS Only
    • actionCategory String - the identifier of the action category for the interactive notification
    • contentAvailable Boolean - Provide this key with a value of 1 to indicate that new content is available. iOS Only
  • message.windows Object

    • type String - The type of message to send toast, raw, badge or tile.
    • duration String - Duration a Toast message is displayed 'long' or 'short'
    • badge String - Badge notifications type for badges that are not numbers (none, activity, alert, available, away, busy, newMessage, paused, playing, unavailable, error or attention), for numbers use the value in the main part of the message.
    • tileType String - Different type of tile messages with different sizes see the [tile template catalog]{@link https://msdn.microsoft.com/en-us/library/windows/apps/hh761491.aspx} e.g. 'TileSquareText02' or 'TileWideBlockAndText02'
    • images Array - Images either local or remote need match the nubmer of the tileType
    • textFields Array - Texts needs to be same as the number of the tileType
  • options Object

  • options.config Object

    • ttl Number - the time to live in seconds. This value is supported by APNs and GCM Only
  • options.criteria Object

    • alias Array - a list of email or name strings
    • deviceType Array - a list of device types as strings
    • categories Array - a list of categories as strings
    • variants Array - a list of variantID's as strings

Changes from 0.14.0 to 0.14.1

There was a bug in the send method. The UPS was sending back a 202, but we were looking for a 200, therefore all promises were rejecting. Oops

Changes from 0.13.0 to 0.14.0

Promise rejections now return proper Error objects - 3f1a2a1. Thanks (evanshortiss)[https://github.com/evanshortiss]

Changes from 0.12.0 to 0.13.0

0.13.0 is pretty much a complete re-write of the client. It now only returns Promises.

It also require at least node 4.x or greater.

The way in which the send method is invoked has changed also. Check out the example above to see the new way of using this library

For more information about the Unified Push Server's REST sender API, look here

Development

If you would like to help develop AeroGear you can join our developer's mailing list, join #aerogear on Freenode, or shout at us on Twitter @aerogears.

Also takes some time and skim the contributor guide

Generate Documentation

The code is documented in JSDoc and can be generated in docs folder by running:

npm run docs

Questions?

Join our user mailing list for any questions or help! We really hope you enjoy app development with AeroGear!

Found a bug?

If you found a bug please create a ticket for us on Jira with some steps to reproduce it.