> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wrappy.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Standards d'engineering

> Conventions de code, tooling et workflow pour le monorepo Wrappy.

## Stack

| Outil              | Usage                                           |
| ------------------ | ----------------------------------------------- |
| **Bun**            | Runtime, package manager, scripts               |
| **TypeScript 5.9** | Strict mode, ES2022 target                      |
| **Biome 2.x**      | Formatter + linter (remplace ESLint + Prettier) |
| **Turbo**          | Orchestration des builds monorepo               |

## Conventions

* **Modules** : ES modules uniquement (`"type": "module"`)
* **Formatage** : tabs, double quotes — via Biome
* **Imports packages** : protocole `workspace:*`
* **API JSX** : `hono/jsx` comme jsxImportSource

## Commandes qualité

```bash theme={null}
bun run check        # Lint Biome (erreurs)
bun run format       # Format Biome (auto-fix)
bun run typecheck    # tsc --noEmit sur tout le workspace
```

## Structure d'un package

```
packages/mon-package/
  src/
    index.ts         # Point d'entrée
  package.json       # "type": "module", scripts build/dev
  tsconfig.json      # Étend @wrappy/configs/tsconfig
```

## API (Hono.js)

Architecture en couches :

```
apps/api/src/
  controllers/     → handlers de requêtes
  routes/          → définition des endpoints
  services/        → logique métier
  repositories/    → accès données (Drizzle)
  middlewares/     → CORS, timeout, logging, erreurs
  lib/             → utilitaires, client DB
```

## Base de données (Drizzle + Neon)

```bash theme={null}
bun run db:generate  # Générer les migrations
bun run db:push      # Appliquer les migrations
bun run db:studio    # Ouvrir Drizzle Studio
```

Les schémas sont dans `packages/db/src/schema/`.

## Créer un nouveau package

```bash theme={null}
bun run cp <nom>     # Scaffold depuis le template
```
