# Guide de publication sur npm

## 📦 Publier @payafter/currency sur npm public

### Étape 1 : Créer un compte npm (si pas déjà fait)

1. Aller sur https://www.npmjs.com/signup
2. Créer un compte
3. Vérifier votre email

### Étape 2 : Se connecter à npm

```bash
npm login
```

Entrer :
- Username
- Password
- Email
- One-time password (si 2FA activé)

### Étape 3 : Vérifier la configuration

```bash
cd /Users/aziz-thedarkcode/pay-after/payafter/currency

# Vérifier que tout est prêt
npm run build
npm test

# Vérifier le contenu du package
npm pack --dry-run
```

### Étape 4 : Publier le package

```bash
npm publish
```

✅ **C'est tout !** Le package sera disponible sur https://www.npmjs.com/package/@payafter/currency

---

## 📥 Utiliser le package dans les apps

### Backend (pay-after-wrapper-api)

```bash
cd /Users/aziz-thedarkcode/pay-after/pay-after-wrapper-api

# Installer depuis npm
npm install @payafter/currency dinero.js
```

### Frontend (pay-after-app)

```bash
cd /Users/aziz-thedarkcode/pay-after/pay-after-app

# Installer depuis npm
npm install @payafter/currency dinero.js
```

### Marketing (pay-after-marketing)

```bash
cd /Users/aziz-thedarkcode/pay-after/pay-after-marketing

# Installer depuis npm
npm install @payafter/currency dinero.js
```

---

## 🔄 Mettre à jour le package

### 1. Faire vos modifications

```bash
cd /Users/aziz-thedarkcode/pay-after/payafter/currency

# Modifier le code dans src/
# Ajouter des tests
```

### 2. Incrémenter la version

```bash
# Patch (1.0.0 → 1.0.1) - Bug fixes
npm version patch

# Minor (1.0.0 → 1.1.0) - Nouvelles features
npm version minor

# Major (1.0.0 → 2.0.0) - Breaking changes
npm version major
```

### 3. Publier la nouvelle version

```bash
npm publish
```

### 4. Mettre à jour dans les apps

```bash
# Dans chaque app
npm update @payafter/currency
```

---

## 🎯 Workflow complet

```bash
# 1. Développement
cd payafter/currency
# ... faire des modifications ...

# 2. Tests
npm run build
npm test

# 3. Version
npm version patch  # ou minor, ou major

# 4. Publication
npm publish

# 5. Mise à jour dans les apps
cd ../pay-after-wrapper-api
npm update @payafter/currency

cd ../pay-after-app
npm update @payafter/currency

cd ../pay-after-marketing
npm update @payafter/currency
```

---

## ✅ Avantages de npm public

- ✅ **Simple** - Pas de configuration de registry privé
- ✅ **Gratuit** - Packages publics gratuits
- ✅ **CDN global** - Téléchargement rapide partout
- ✅ **npm install** - Installation standard
- ✅ **Versioning** - Gestion automatique des versions

---

## 🔒 Note sur la sécurité

Le package est public, donc :
- ✅ Le code sera visible par tous
- ✅ Pas de secrets/clés dans le code
- ✅ Uniquement de la logique métier générique

Si vous avez besoin de garder le code privé plus tard, vous pourrez :
1. Dépublier : `npm unpublish @payafter/currency --force`
2. Passer à un registry privé (GitHub Packages, npm private, etc.)

---

## 🚀 Prêt à publier ?

Exécutez ces commandes :

```bash
cd /Users/aziz-thedarkcode/pay-after/payafter/currency

# 1. Login npm
npm login

# 2. Build et test
npm run build
npm test

# 3. Publier
npm publish
```

Ensuite dans chaque app :

```bash
npm install @payafter/currency
```

**C'est tout ! 🎉**
