# **@yanamiku/npm-user**  
📦 **Ambil informasi profil pengguna NPM termasuk email, avatar, Gravatar, dan daftar paketnya.**  

![npm](https://img.shields.io/npm/v/@yanamiku/npm-user) ![license](https://img.shields.io/npm/l/@yanamiku/npm-user) ![downloads](https://img.shields.io/npm/dt/@yanamiku/npm-user)  

## **📌 Instalasi**  
Pasang package menggunakan npm atau yarn:  
```sh
npm install @yanamiku/npm-user
```
atau  
```sh
yarn add @yanamiku/npm-user
```

---

## **🚀 Penggunaan**  
Gunakan fungsi `npmUser(username)` untuk mendapatkan informasi pengguna NPM berdasarkan username.  

### **Contoh Penggunaan:**
```js
import npmUser from '@yanamiku/npm-user';

npmUser('yanamiku')
    .then(data => console.log(data))
    .catch(err => console.error('Error:', err.message));
```

### **Hasil Output (Contoh)**
```json
{
  "name": "Yanamiku",
  "avatar": "https://www.npmjs.com/npm-avatar/example.png",
  "email": "user@example.com",
  "gravatar": "https://www.gravatar.com/avatar/5d41402abc4b2a76b9719d911017c592?s=512&d=identicon",
  "github": "yanamiku",
  "twitter": "yanamiku_dev",
  "packages": [
    {
      "name": "some-package",
      "weeklyDownloads": 1234
    },
    {
      "name": "another-package",
      "weeklyDownloads": 5678
    }
  ]
}
```

---

## **📚 API**  
Fungsi `npmUser(username)` mengembalikan **Promise** yang berisi informasi pengguna NPM dalam bentuk objek dengan properti berikut:  

| Properti       | Tipe Data | Deskripsi |
|---------------|----------|-----------|
| `name`        | `string`  | Nama pengguna di NPM (jika tersedia) |
| `avatar`      | `string`  | URL avatar dari NPM (jika tersedia) |
| `email`       | `string`  | Email pengguna (bisa `undefined` jika tidak tersedia) |
| `gravatar`    | `string`  | URL Gravatar berdasarkan email pengguna |
| `github`      | `string`  | Username GitHub pengguna (jika tersedia) |
| `twitter`     | `string`  | Username Twitter pengguna (jika tersedia) |
| `packages`    | `array`   | Daftar paket yang dimiliki pengguna, termasuk jumlah unduhan mingguan |

---

## **🛠 Fitur**
✅ Mengambil informasi pengguna dari halaman profil NPM  
✅ Mendapatkan email pengguna (jika tersedia)  
✅ Mendapatkan avatar dan Gravatar pengguna  
✅ Mendapatkan daftar paket yang dimiliki beserta jumlah unduhan mingguan  

---

## **⚡ Contoh Implementasi**
### **1️⃣ Menampilkan Data Pengguna**
```js
import npmUser from '@yanamiku/npm-user';

async function showUserProfile(username) {
    try {
        const userData = await npmUser(username);
        console.log(`👤 Nama: ${userData.name}`);
        console.log(`📧 Email: ${userData.email || 'Tidak tersedia'}`);
        console.log(`📸 Avatar: ${userData.avatar}`);
        console.log(`🔗 GitHub: ${userData.github || 'Tidak tersedia'}`);
        console.log(`🐦 Twitter: ${userData.twitter || 'Tidak tersedia'}`);
        console.log(`📦 Paket yang dimiliki:`);

        userData.packages.forEach(pkg => {
            console.log(`  - ${pkg.name} (${pkg.weeklyDownloads} downloads/minggu)`);
        });
    } catch (error) {
        console.error('Terjadi kesalahan:', error.message);
    }
}

showUserProfile('yanamiku');
```

---

## **📜 Lisensi**
Kode ini dirilis di bawah lisensi **MIT**.