
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
node-pushnotifications
Advanced tools
A Node.js module for interfacing with Apple Push Notification, Google Cloud Messaging, Microsoft Push Notification and Amazon Device Messaging services.
npm install node-pushnotifications
#Features
iOS: Prepare cert.pem and key.pem as described in node-apn
Import and setup push module:
var settings = {
gcm: {
id: null, // PUT YOUR GCM SERVER API KEY,
msgcnt: 1,
dataDefaults: {
delayWhileIdle: false,
timeToLive: 4 * 7 * 24 * 3600, // 4 weeks
retries: 4,
},
// Custom GCM request options https://github.com/ToothlessGear/node-gcm#custom-gcm-request-options
options: {},
},
apn: {
gateway: 'gateway.sandbox.push.apple.com',
badge: 1,
defaultData: {
expiry: 4 * 7 * 24 * 3600, // 4 weeks
sound: 'ping.aiff'
},
// See all available options at https://github.com/argon/node-apn/blob/master/doc/connection.markdown
options: {},
// I.e., change .cert location file:
// options: {
// cert: "/certs/ios/mycert.cert" // {Buffer|String} The filename of the connection certificate to load from disk, or a Buffer/String containing the certificate data. (Defaults to: cert.pem)
// }
},
adm: {
client_id: null, // PUT YOUR ADM CLIENT ID,
client_secret: null, // PUT YOUR ADM CLIENT SECRET,
expiresAfter: 4 * 7 * 24 * 3600, // 4 weeks
// Custom ADM request options, same as https://github.com/ToothlessGear/node-gcm#custom-gcm-request-options
options: {},
},
};
var PushNotifications = new require('node-pushnotifications');
var push = new PushNotifications(settings);
GCM and ADM options: see node-gcm
APN options: see node-apn
Define destination device ID. You can send to multiple devices, independently of platform, creating an array with different destination device IDs.
// Single destination
var deviceIds = 'INSERT_YOUR_DEVICE_ID';
// Multiple destinations
var deviceIds = [];
deviceIds.push('INSERT_YOUR_DEVICE_ID');
deviceIds.push('INSERT_OTHER_DEVICE_ID');
Next, create a JSON object witch MUST contain, at least, a title and message and send it to server.
var data = {
title: 'New push notification',
message: 'Powered by AppFeel',
otherfields: 'optionally add more data'
};
push.send(deviceIds, data, function (result) {
console.log(result);
});
Result will contain 'true' or 'an error description'.
##Resources
FAQs
A cross-platform push service for node.js
The npm package node-pushnotifications receives a total of 9,748 weekly downloads. As such, node-pushnotifications popularity was classified as popular.
We found that node-pushnotifications demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.