open-index/open-npm huggingface dataset:
npm package: @geryenkohawsen/sen-ui
Description: Open-source, Zen-inspired React + Tailwind CSS component library for calm, accessible UIs
Author: Geryenko Hawsen
Latest version: 0.1.8

This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
npm package: @gerync/utils2
Description: Express.js error handling middleware with customizable messages and duplicate key detection.
Author: Gerync
Latest version: 1.2.0

# @gerync/utils2

## 1.0.0

Express.js utilities: error handling, JWT, encryption, hashing.

## Install

```bash
npm install @gerync/utils2
```

## Quick Start

```typescript
import { ConfigureMessages, ErrorHandler, UserError } from '@gerync/utils2';

app.use(ConfigureMessages({ lang: 'en' }));
// ... routes
app.use(ErrorHandler);

// Throw custom errors
throw new UserError('Email required', 400);
```

## Error Messages

```typescript
ConfigureMessages({
    lang: 'en',                      // 'en' | 'hu'
    OnDupe: '$f already exists',     // $f = field name
    OnNotFound: 'Not found',
    OnBadRequest: 'Bad request',
    OnUnauthorized: 'Unauthorized',
    OnForbidden: 'Forbidden',
    OnServerError: 'Server error',
    // Fields to track for duplicate errors
    NoDupesAllowedOf: ['email', 'username']
})
```

When a duplicate key error occurs (e.g., `Key (email)=(x) already exists`), the handler extracts `email`, checks if it's in `NoDupesAllowedOf`, and returns `{ error: 'email already exists' }`.

## Security Utils

```typescript
import { encryptData, decryptData, hashPassword, verifyPassword } from '@gerync/utils2';

// Encryption (AES-256-GCM)
const encrypted = encryptData('secret', 'key');
const decrypted = decryptData(encrypted, 'key');

// Password hashing (scrypt)
const hash = await hashPassword('password');
const valid = await verifyPassword('password', hash);
```

## JWT

```typescript
import { signToken, verifyTokenMiddleware } from '@gerync/utils2';

const token = signToken({ userId: 1 }, { expiresIn: '1h' });
app.get('/protected', verifyTokenMiddleware, handler);
```

## Supported Databases

PostgreSQL, MySQL, SQL Server, SQLite, MongoDB — duplicate key errors auto-detected.