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 🙏

© 2025 – Pkg Stats / Ryan Hefner

re-push

v1.0.5

Published

RE-Push CLI - Simple and easy to use CLI to push notifications to RE-Push app using the re-push-api package.

Downloads

13

Readme

RE-Push

Die Push-Nachrichten Zentrale

Du betreibst deine eigenen Infrastrukturen, Anwendungen, Apps, Server oder sonstige Dienstleitungen und möchtest bei bestimmten Ereignissen eine Push-Nachricht auf dein Handy erhalten? In der Regel wird hierzu eine eigene App benötigt, um an diese die Push-Nachricht zu versenden. RE-Push ist eine App die es dir ermöglicht sehr einfach und unkompliziert genau diese Push-Nachrichten zu erhalten. Es können mehrere Services angelegt werden. An einzelne Services kann dann eine Push-Nachricht verschickt werden. Du kannst andere Personen dazu einladen deinen Service ebensfalls beizutreten. Somit können auch gleich ganze Gruppen über Neuigkeiten informiert werden. Die Push Nachrichten können hierbei ganz einfach über eine REST-API oder über diverse bereitgestellte Bibliotheken versendet werden. Es sollte somit sehr einfach sein, Push Nachrichten in eine vorhandene Server- oder Client-Anwendung zu integrieren.

Homepage: https://re-push.io/app

Features

  • Zentraler Push-Empfang in der RE-Push App
  • Es können mehrere Push-Services erstellt werden
  • Öffentliche-Services möglich
  • Andere Nutzer können Services beitreten
  • REST-Api Support
  • Vordefinierte Bibliotheken zum Einbinden der RE-Push-API

Puch-Nachrichten Versand via REST-API

Die Push-Nachrichten können über eine REST-API versendet werden. Die REST-API ist öffentlich zugänglich. Zur einfachen Anbindung werden folgende Bibliotheken bereitgestellt

Bibliotheken

Einschränkungen

Um den Service für alle bereitzustellen, ist es notwendig, ein paar wenige Einschränkungen vorzunehmen. Im Einzelfall können die Einschränkungen durch Kontaktaufnahme pro Account angepasst werden.

| Konto-Art | Anzahl eigene Services | Anzahl abonnierte Services | Anzahl Zugriffstoken | | :----------------------------------- | ---------------------- | -------------------------- | -------------------- | | Anonym | 1 | 1 | 1 | | Registriert | 2 | 5 | unbegrenzt | | Verifiziert via E-Mail (In Arbeit) | 5 | 10 | unbegrenzt |

Schnelleinstieg mittels NPX (Node JS wird in der Regel benötigt)

  1. Lade die App im Google PlayStore oder im Apple AppStore herunter
  2. Erstelle dir einen RE-Push account:
npx re-push register
  1. Erstelle einen neuen Service:
npx re-push service add
  1. Öffne die RE-Push App und logge dich mit den gewählten Zugangsdaten ein.
  2. Aktiviere Push-Bnachtigungen für in den Einstellungen deines eben erzeugten Service
  3. Sende deine erste Push-Nachricht:
npx re-push send

Push-Benachrichtigungen ohne Nutzereingabe

Es ist auch möglich die oben ausgeführten Befehle ohne Benutzereingaben durchzuführen. Das kann helfen, um am Ende eines Prozesses vordefinierte Nachrichten zu versenden. Hierzu benötigtst du zunächst einmal die Service-ID an die du eine Push-Nachricht versenden möchtest: npx push service id. Wähle den Service aus, an den du Push-Nachrichten versenden möchtest und notiere dir die angezeigte Service-ID. Jetzt ist es möglich ganz einfach eine Push-Nachricht via Kommandozeile zu versenden:

npx re-push send --service="[SERVICE-ID]" --title="[TITEL]" --message="[NACHRICHT]"

Solltest du auf dem Rechner noch nicht eingeloggt sein, kannst du auch deine Zugangsdaten mitgeben:

npx re-push send --username="[NUTZERNAME]" --password="[PASSWORT]" --service="[SERVICE-ID]" --title="[TITEL]" --message="[NACHRICHT]"

Empfehlung: Nutzung mittels API-Token

Es empfiehlt sicht zum Versenden der Push-Nachrichten einen eigenen Zugriffstoken zu erzeugen. So musst du deine Zugangsdaten mit den vollen Berechtigungen nicht überall eintragen und du kannst für jeden Nutzungsfall andere Zugriffstokens nutzen. Die Tokens lassen sich schnell und einfach wieder sperren, so dass mit diesem Token keine Nachrichten mehr versendet werden können. Zugriffstokens sind, unter Umständen, nicht in der Lage neue Services anzulegen oder Einstellungen am Account via REST-API zu verändern. Das ist davon abhängig, welche Berechtigungen dem Zugriffstoken zugewiesen worden sind. Ein Zugriffstoken kann in der App oder via REST-API angelegt werden:

npx re-push token add --title="[TITEL]"

Beim Anlegen des Zugrisstoken, wird dir einmalig ein Passwort angezeigt, dass diesem Token zugewiesen wurde. Dieses Passwort wird generiert und kann nicht verändert werden. Das Passwort kann unter keinen Umständen erneut angezeigt werden und sollte daher sorgfältig abgelegt werden. Eine Ausnahme bildet das Erzeugen des Tokens mittels App. Die RE-Push App merkt sich das erzeugte Passwort und kann es später erneut in die Zwischenablage legen. Geht das Passwort verloren und der Token wurde nicht mittels App erzeugt, sollte der Zugriffstoken gelöscht und ein neuer Token erstellt werden.

Möchtest du dich beispielsweise in einer CI/CD Pipeline mit einem Token anmelden, um eine Nachricht an alle Interessenten zu versenden nutze folgenden Befehl:

npx re-push login token --username="[TOKEN-ID]" --password="[PASSWORT]"
npx re-push send --service="[SERVICE-ID]" --title="[TITEL]" --message="[NACHRICHT]"

Code Beispiele und Bibliotheken (Push Message)

Simple HTTP Call

POST /v1/send HTTP/1.1
Host: api.re-push.io
Content-Type: application/json
Content-Length: [CONTENT-LENGTH]

{
    "title": "[TITEL]",
    "message": "[MESSAGE]",
    "serviceIdent": "[SERVICE-ID]",
    "token" : "[TOKEN-ID]",
    "password" : "[PASSWORT]"
  }

cURL

curl --location --request POST 'https://api.re-push.io/v1/send' \
--header 'Content-Type: application/json' \
--data-raw '{
    "title": "[TITEL]",
    "message": "[MESSAGE]",
    "serviceIdent": "[SERVICE-ID]",
    "token" : "[TOKEN-ID]",
    "password" : "[PASSWORT]"
  }'

WGET

wget -q \
  --method POST \
  --timeout=0 \
  --header 'Content-Type: application/json' \
  --body-data '{
    "title": "[TITEL]",
    "message": "[MESSAGE]",
    "serviceIdent": "[SERVICE-ID]",
    "token" : "[TOKEN-ID]",
    "password" : "[PASSWORT]"

NPX

Übersicht über die verfügbaren Befehle

| Befehl | Mögliche Parameter | | :--------------------------------- | ----------------------------------------------------------------------- | | login | --username, --password | | login user | --username, --password | | login token | --username, --password | | logout | keine | | register | --username, --Password | | service add | --title, --description | | service id | keine | | send | --service, --title, --message, --username, --password | | token add | --title |

NodeJS

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.re-push.io/v1/send',
  'headers': {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
     "title": "[TITEL]",
     "message": "[MESSAGE]",
     "serviceIdent": "[SERVICE-ID]",
     "token": "[TOKEN-ID]",
     "password": "[PASSWORT]"
  })
};

request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

Javascript

Beschreibung folgt

Fetch

var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "title": "[TITEL]",
  "message": "[MESSAGE]",
  "serviceIdent": "[SERVICE-ID]",
  "token": "[TOKEN-ID]",
  "password": "[PASSWORT]"
});

fetch("https://api.re-push.io/v1/send", {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
})
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

XHR Request

var raw = JSON.stringify({
  "title": "[TITEL]",
  "message": "[MESSAGE]",
  "serviceIdent": "[SERVICE-ID]",
  "token": "[TOKEN-ID]",
  "password": "[PASSWORT]"
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
  if(this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.re-push.io/v1/send");
xhr.setRequestHeader("Content-Type", "application/json");

xhr.send(raw);

React, React-Native

Beschreibung folgt

Vanilla JS

Beschreibung folgt

C-Sharp

Zur Unterstützung steht folgendes nuget Paket bereit: RE-Push Das Paket muss nicht zwingend genutzt werden.

Pure C#

Folgender C-Sharp Code kann genutzt werden, um Push-Benachrichtigungen ohne fremde Bibliotheken zu versenden:

  public static string BaseUri { get; set; } = "https://api.re-push.io/v1";
  
  public static async Task Send(string title, string message, Guid serviceIdent, Guid token, string password)
      => await Post($"{BaseUri}/send", JsonSerializer.Serialize(new { title, message, serviceIdent, token, password }));

  private static async Task<string> Post(string basePath, string messageContent, string accessToken = null)
  {
      var client = new HttpClient();
      if (accessToken != null) client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

      var result = await client.PostAsync(basePath, new StringContent(messageContent, Encoding.UTF8, "application/json"));
      return await result.Content.ReadAsStringAsync();
  }

Asp.NET

Folgenden Abschnitt in die appsettings.json aufnehmen:

{
   ...,
   "RePush" : {
    "Enabled" : true,
    "Token" : "[TOKEN-ID]",
    "Password" : "[PASSWORT]",
    "Service" : "[SERVICE-ID]"
  },  
}

Konfigurations-Klasse innerhalb der Startup.cs registrieren:

public void ConfigureServices(IServiceCollection services) {
   ...
   services.Configure<RePushSettings>(Configuration.GetSection("RePush"));
   ...
}

Abholen der Konfigurations-Klasse via "Dependendy Injection":


// constructor
public CLASS(IOptions<RePushSettings> pushSettings) {
   _pushSettings = pushSettings.Value;
}

Absenden einer Push-Benachrichtigung an alle Abonnementen:

if (_pushSettings != null && _pushSettings.Enabled)
{
    await RePush.Send("Mitteilung", "Ein wichtiges Ereignis auf auf dem Server hat statt gefunden.", _pushSettings);
}

Powershell

Invoke-WebRequest -Uri https://api.re-push.io/v1/send -Method POST -Body @{
 "title"="[TITEL]";
 "message"="[MESSAGE]";
 "serviceIdent"="[SERVICE-ID]";
 "token"="[TOKEN-ID]";
 "password"="[PASSWORT]";
}

Fragen und Antworten

Die App ist auf deutsch. Werden andere Sprachen unterstützt?

Derzeit ist die App nur auf deutsch verfügbar. Es ist geplant auch andere Sprachen zu unterstützen.

Ich habe mich zunächst für eine anonymes Konto entschieden. Wie kann ich es in ein registriertes Konto umwandeln?

Die RE-Push App kann ohne Registrierung mit einem Klick genutzt werden. Das vereinfacht das Testen und ermöglicht es sehr schnell zu prüfen, ob die App das richtige für das aktuelle Vorhaben ist. Ein anonymes Konto kann später schnell und einfach über den Menüpunkt "Einstellungen" in ein Konto mit Registrierung geändert werden (In Arbeit).