open-index/open-npm huggingface dataset:
npm package: @hegoatek/config-schemas
Description: Configuration schemas for HegoaTek Studio templates
Latest version: 1.2.1

# @hegoatek/config-schemas

Shared configuration schemas and type definitions for HegoaTek Studio ecosystem.

This package serves as the single source of truth for configuration options, template definitions, and project structure schemas used by the CLI and templates.

## Purpose

- **Centralized Definitions**: Ensures consistency across the CLI generator and the actual templates.
- **Type Safety**: Provides TypeScript interfaces for configuration objects.
- **Validation**: Defines valid options for providers (Auth, Storage, Mail, etc.).

## Installation

```bash
npm install @hegoatek/config-schemas
```

## Usage

This package is primarily used by `@hegoatek/cli` to validate user inputs and generate project configurations.

```typescript
import { 
  TemplateType, 
  AuthProvider, 
  StorageProvider,
  ProjectConfig 
} from '@hegoatek/config-schemas';

const config: ProjectConfig = {
  name: 'my-project',
  template: 'saas-single-tenant',
  auth: 'supabase',
  storage: 'cloudflare-r2'
};
```

## Definitions

### Templates

- `saas-single-tenant`: Angular + NestJS (Single Customer)
- `saas-multitenant`: Angular + NestJS (Multi-tenant with RLS)
- `site-vitrine-nextjs`: Next.js Marketing Site

### Providers

**Authentication:**
- `custom`: Local JWT + bcrypt
- `supabase`: Supabase Auth
- `auth0`: Auth0 (OIDC)

**Storage:**
- `local`: Local filesystem (uploads/)
- `cloudflare-r2`: S3-compatible object storage
- `aws-s3`: AWS S3

**Mail:**
- `resend`: Resend API
- `smtp`: Standard SMTP

## Architecture

This package has **zero dependencies** to ensure it remains lightweight and can be imported anywhere in the monorepo without causing circular dependencies or bloating builds.

It sits at the base of the dependency graph:

```
@hegoatek/config-schemas
         ▲
         │
@hegoatek/cli
```

## License

MIT