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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@allior/wmake-donatty

v0.1.3

Published

Donatty integration for donations and alerts.

Downloads

41

Readme

@allior/wmake-donatty

Библиотека для интеграции с сервисом Donatty. Поддерживает работу с API и получение событий в реальном времени через SSE (Server-Sent Events).

Установка

bun add @allior/wmake-donatty
# или
npm install @allior/wmake-donatty

Возможности

  • 🔑 Авторизация: Получение токенов через widgetToken.
  • 📡 SSE (Real-time): Подписка на события виджетов (донаты, цели, общие суммы) и ленту стримера.
  • 📜 События: Получение списка прошедших событий и донатов.
  • 👤 Профиль: Получение данных текущего пользователя.
  • 🏗 TypeScript: Полная типизация всех ответов и параметров.

Быстрый старт

Получение токена авторизации

Для работы с большинством методов требуется accessToken (JWT). Его можно получить, зная widgetToken (токен виджета из URL настроек Donatty).

import { getAuthTokens } from "@allior/wmake-donatty";

const { accessToken } = await getAuthTokens("your_widget_token");

Подписка на события (SSE)

Библиотека позволяет подключаться к стриму событий Donatty.

import { DonattySSEClient, getAuthTokens } from "@allior/wmake-donatty";

async function connectToAlerts() {
    const WIDGET_TOKEN = "xxx";
    const WIDGET_REF = "yyy"; // ID виджета (ref из URL)

    const { accessToken } = await getAuthTokens(WIDGET_TOKEN);
    
    // Создаем клиент для виджета оповещений (Alerts)
    const client = DonattySSEClient.forDonationsWidget(WIDGET_REF, accessToken);

    client.on("DATA", (msg) => {
        console.log("Новое событие:", msg.data);
    });

    client.connect();
}

Получение списка донатов

import { DonattyEventsClient } from "@allior/wmake-donatty";

const client = new DonattyEventsClient(accessToken);
const donations = await client.getDonations(10); // Последние 10 донатов

console.log(donations.response.items);

React: хуки для SSE

Библиотека предоставляет набор хуков для удобной работы с SSE в React-приложениях.

Автоматическое подключение (лента стримера)

import { useDonattyStreamerSSE } from "@allior/wmake-donatty/react";

function App() {
  const { isConnected } = useDonattyStreamerSSE("YOUR_JWT_TOKEN", {
    handlers: {
      "STREAM_EVENT": (data) => console.log("Новое событие:", data.event),
    }
  });

  return <div>Статус: {isConnected ? "Подключено" : "Отключено"}</div>;
}

Работа с виджетами

import { useDonattyDonationsWidget } from "@allior/wmake-donatty/react";

function Alerts() {
  const { isConnected } = useDonattyDonationsWidget("WIDGET_REF_ID", "JWT_TOKEN", {
    handlers: {
      "DATA": (msg) => console.log("Оповещение:", msg.data),
    }
  });

  return <div>Оповещения: {isConnected ? "Работают" : "Загрузка..."}</div>;
}

Доступные хуки:

  • useDonattySSE — базовый хук.
  • useDonattyStreamerSSE(jwt, options) — лента событий стримера.
  • useDonattyGoalWidget(refId, jwt, options) — виджет целей.
  • useDonattyTotalWidget(refId, jwt, options) — виджет общей суммы.
  • useDonattyDonationsWidget(refId, jwt, options) — виджет оповещений.

API Reference

DonattySSEClient

Класс для работы с Server-Sent Events.

  • static forStreamer(jwt) — лента событий для дашборда стримера.
  • static forWidget(refId, jwt) — общий метод для виджетов.
  • static forGoalWidget(refId, jwt) — виджет "Цель".
  • static forTotalWidget(refId, jwt) — виджет "Общая сумма".
  • static forDonationsWidget(refId, jwt) — виджет "Оповещения".
  • connect() — установить соединение.
  • disconnect() — закрыть соединение.
  • on(event, handler) — подписаться на событие.
  • off(event, handler) — отписаться.

DonattyEventsClient

Класс для получения исторических данных.

  • get(params) — получить список событий с фильтрами.
  • getDonations(maxResults) — получить только донаты.

Вспомогательные функции

  • getAuthTokens(widgetToken) — обмен токена виджета на JWT.
  • getMe(accessToken) — получение профиля пользователя.

Примеры

Больше примеров можно найти в директории examples/:

  • react-hooks-usage.tsx — использование хуков в React.
  • handle-events.ts — отладка всех SSE событий.
  • handle-goal-widget.ts — работа с виджетом целей.
  • fetch-events.ts — работа с историей событий.

Лицензия

CC BY-SA 4.0