open-index/open-npm huggingface dataset:
npm package: @somnus_stasis/discord-alert-utils
Description: Reusable utility for sending Discord alerts with throttling, error normalization, and safe formatting.
Author: somnus_stasis
Latest version: 1.0.1

# @somnus_stasis/discord-alert-utils

Reusable utility for sending Discord alerts with throttling, error normalization, and safe formatting. Perfect for cron jobs, workers, or any Node.js service where you want to send structured error notifications to a Discord channel.

---

## 🚀 Installation

```bash
npm install @somnus_stasis/discord-alert-utils
```

or with yarn:

```bash
yarn add @somnus_stasis/discord-alert-utils
```

---

## 📦 Usage

```js
const { sendDiscordAlert } = require("@somnus_stasis/discord-alert-utils");

async function runJob() {
  try {
    // Your logic here...
    throw new Error("Request failed with status code 401");
  } catch (err) {
    await sendDiscordAlert({
      title: "🚨 My Job Error",
      functionDesc: "Temp Sync Job – Synchronize LMS data (ratings, participants, CPI, occupation, certificates)",
      errorDesc: "Failed to sync endpoint: /db/course-rating/sync",
      time: new Date().toLocaleString("id-ID"),
      errorDetail: err.message,
    });
  }
}

runJob();
```

---

## 🔧 Features
- **Discord Embed**: Sends alerts as structured Discord embed messages.
- **Throttle Duplicate Alerts**: Prevents spamming the same error repeatedly within a cooldown window.
- **Error Normalization**: Cleans up timestamps, UUIDs, and line numbers before hashing.
- **Safe Error Length**: Automatically truncates long error messages to fit Discord’s 2000-char limit.
- **Configurable Cooldown**: Adjust alert cooldown with environment variable.

---

## ⚙️ Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `DISCORD_WEBHOOK_URL` | Discord webhook URL (required) | - |
| `ALERT_COOLDOWN_MINUTES` | Cooldown window for duplicate alerts | 30 |

Example `.env`:

```env
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/xxxx/xxxx
ALERT_COOLDOWN_MINUTES=30
```

---

## 📌 API

### `sendDiscordAlert(options)`

| Option | Type | Required | Description |
|--------|------|----------|-------------|
| `title` | string | ✅ | Title of the alert embed |
| `functionDesc` | string | ✅ | Description of the job/function responsibility |
| `errorDesc` | string | ✅ | Short description of the error |
| `time` | string | ✅ | Timestamp of the error (formatted string) |
| `errorDetail` | string | ✅ | Full error detail (truncated if >2000 chars) |

---

## 📝 Example Output
![Example Discord Alert](https://dummyimage.com/600x200/ff4444/ffffff&text=Discord+Alert+Embed+Example)

---

## 📜 License
MIT © 2025 [somnus_stasis](https://www.npmjs.com/~somnus_stasis)
npm package: @somo/browserslist-config
Description: ## Installation
Author: Ed Knowles
Latest version: 0.0.4

# Somo browserlist-config

## Installation

```bash
yarn add @somo/browserlist-config --dev
```

## Usage

Add the following to `package.json`

```json
{
  "browserslist": [
    "extends @somo/browserslist-config"
  ]
}
```

### Project specific

In some cases, many repositories might require a project browserlist.

```json
{
  "browserslist": [
    "extends @somo/browserslist-config/project-xyz"
  ]
}
```
npm package: @somo/postcss-plugins
Description: ## Installation
Author: Ed Knowles
Latest version: 0.0.4

# Somo postcss plugins

## Installation

```bash
yarn add @somo/postcss-plugins --dev
```

## Usage

Can be used in webpack, storybook or gatsby etc, wherever postcss plugins array is required. 

```
{
  loader: 'postcss-loader',
  options: {
    ident: 'postcss',
    plugins: require('@somo/postcss-plugins')(customProperties)
  }
}
```

Custom properties can be injected

customProperties = {
  '--my-custom-var': 500,
  '--my-custom-thing': 'blue,
}
npm package: @somo/tslint-preset
Description: ## Installation
Author: Ed Knowles
Latest version: 0.0.4

# Somo TSLint Preset

## Installation

```bash
yarn add @somo/tslint-preset --dev
```

## Usage

Add the following to `tslint.json`

```json
{
  "extends": ["@somo/tslint-preset"]
}
```

Can be used with prettier, use the following prettier rule set to avoid conflicts.

```javascript
module.exports = {
  arrowParens: 'always',
  printWidth: 120,
  singleQuote:  true,
  trailingComma: 'all',
};
```
npm package: @somosf1/somosf1-ui
Description: >
Author: cristianv975
Latest version: 1.1.3

# @somosf1/somosf1-ui
>

[![NPM](https://img.shields.io/npm/v/somosf1-ui.svg)](https://www.npmjs.com/package/@somosf1/somosf1-ui) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save @somosf1/somosf1-ui
```

## Usage

```tsx
import * as React from 'react'

import { Button } from '@somosf1/somosf1-ui'

class Example extends React.Component {
  render () {
    return (
      <Button icon="arrow" text="Continuar" type="primary" />
    )
  }
}
```

## License

MIT © [cristianv975](https://github.com/cristianv975)