# @mintel/next-utils

A collection of reusable utilities and helpers for Mintel Next.js projects, focusing on internationalization, environment safety, and security.

## ✨ Features

### 🌍 Internationalization (i18n)
Standardized helpers for `next-intl`:
- `createMintelMiddleware`: A logging-enabled middleware wrapper.
- `createMintelI18nRequestConfig`: Centralized request configuration for server-side translations.

### 🔐 Environment Validation
Zod-based validation to ensure your app never boots with missing secrets:
- `validateMintelEnv`: Validates standard Mintel variables (Mail, Sentry, Umami).

### 🛡 Rate Limiting
- `rateLimit`: A simple in-memory rate limiter for protecting server actions and form submissions.

## 🚀 Usage

### i18n Middleware (`src/middleware.ts`)
```typescript
import { createMintelMiddleware } from "@mintel/next-utils";

export default createMintelMiddleware({
  locales: ["en", "de"],
  defaultLocale: "en",
  logRequests: true,
});
```

### Env Validation (`scripts/validate-env.ts`)
```typescript
import { validateMintelEnv } from "@mintel/next-utils";

validateMintelEnv();
```

### Rate Limiting
```typescript
import { rateLimit } from "@mintel/next-utils";

export async function myAction(data: any) {
  await rateLimit(data.email);
  // ... logic
}
```
