Class

CargoTracker

CargoTracker()

Ana kargo takip sınıfı Farklı kargo firmalarını destekleyen merkezi takip sistemi. Provider pattern kullanarak yeni kargo firmaları kolayca eklenebilir.
Constructor

# new CargoTracker()

CargoTracker sınıfının constructor'ı Varsayılan olarak Aras Kargo provider'ını kayıt eder

View Source CargoTracker.ts, line 27

Example
```typescript
const tracker = new CargoTracker();

// Aras Kargo ile takip
const result = await tracker.trackArasKargo('1234567890');

// Genel provider ile takip
const result2 = await tracker.trackWithProvider('aras kargo', '1234567890');

// Kullanılabilir provider'ları listele
const providers = tracker.getProviders();
console.log(providers);

// Kaynakları temizle
await tracker.close();
```

Classes

CargoTracker
CargoTracker

Methods

# async close()

Tüm provider'ların kaynaklarını temizler ve bağlantıları kapatır Özellikle Puppeteer browser instance'larını kapatmak için önemlidir

View Source CargoTracker.ts, line 254

Promise
Example
```typescript
const tracker = new CargoTracker();
// ... takip işlemleri
await tracker.close(); // Kaynakları temizle
```

# getProviders()

Kayıtlı tüm kargo provider'larının adlarını döndürür

View Source CargoTracker.ts, line 196

Kayıtlı provider adlarının listesi (küçük harflerle)
Example
```typescript
const providers = tracker.getProviders();
console.log(providers); // ['aras kargo']
```

# registerProvider(provider) → {void}

Yeni bir kargo provider'ı sisteme kayıt eder
Parameters:
Name Type Description
provider Kayıt edilecek kargo provider'ı

View Source CargoTracker.ts, line 182

Provider adı boş olamaz
Error
void
Example
```typescript
const customProvider = new CustomKargoProvider();
tracker.registerProvider(customProvider);
```

# async trackArasKargo(trackingNumber)

Aras Kargo ile kargo takip işlemi yapar (kısayol metod)
Parameters:
Name Type Description
trackingNumber Takip edilecek Aras Kargo numarası

View Source CargoTracker.ts, line 237

Kargo takip sonucu
Example
```typescript
const result = await tracker.trackArasKargo('1234567890');
if (result.success && result.data) {
  console.log('Gönderici şube:', result.data.senderBranch);
  console.log('Alıcı şube:', result.data.receiverBranch);
  console.log('Durum:', result.data.status);
}
```

# async trackWithProvider(providerName, trackingNumber)

Belirtilen provider ile kargo takip işlemi yapar
Parameters:
Name Type Description
providerName Kullanılacak kargo provider'ının adı (büyük/küçük harf duyarsız)
trackingNumber Takip edilecek kargo numarası

View Source CargoTracker.ts, line 217

Kargo takip sonucu
Example
```typescript
const result = await tracker.trackWithProvider('aras kargo', '1234567890');
if (result.success) {
  console.log('Kargo durumu:', result.data?.status);
} else {
  console.error('Hata:', result.error);
}
```