# @trkit-app-pack/address

> 81 il, 973 ilçe, bölge ve alan kodu verisi; Türkçe karakter duyarsız arama.

```bash
npm install @trkit-app-pack/address
```

Veri paketle birlikte gelir (yaklaşık 15 KB), ağ isteği yapılmaz.

## Veri

```ts
import { provinces, getProvince, getDistricts, getDistrict, regions, getProvincesByRegion } from "@trkit-app-pack/address";

provinces.length;                  // 81
getProvince(34);                   // { code: 34, codeStr: "34", name: "İstanbul", slug: "istanbul", region: "Marmara", areaCodes: [212, 216], districts: [...] }
getProvince("ISTANBUL")?.code;     // 34 (büyük/küçük harf ve Türkçe karakter duyarsız)
getProvince("urfa")?.name;         // "Şanlıurfa" (yaygın alternatif adlar)
getDistricts("Diyarbakır");        // [{ name: "Bağlar", slug: "baglar", provinceCode: 21 }, ...]
getDistrict(34, "kadikoy")?.name;  // "Kadıköy"
getProvincesByRegion("Ege");
```

## Doğrulama

```ts
isValidDistrict("Ankara", "Çankaya");  // true
isValidDistrict("İzmir", "Çankaya");   // false
```

Form verisini sunucuda bununla doğrulayın; istemciden gelen il/ilçe çiftine güvenmeyin.

## Arama

```ts
search("kadikoy");
// [{ type: "district", province: { name: "İstanbul" }, district: { name: "Kadıköy" }, score: 100 }]

search("kaya", { province: 21, limit: 5 });  // yalnızca Diyarbakır'da
formatLocation(34, "kadıköy");                // "Kadıköy / İstanbul"
```

Sıralama: tam eşleşme > önek > kelime başı > içerir. Aynı adlı il ve ilçede il önce gelir.

## Türkçe metin yardımcıları

```ts
foldTr("ÇANAKKALE");                    // "canakkale" (arama anahtarı)
slugifyTr("Kahramanmaraş Onikişubat");  // "kahramanmaras-onikisubat"
trUpper("istanbul");                    // "İSTANBUL"
["Zonguldak", "Çorum", "Ceyhan"].sort(compareTr); // ["Ceyhan", "Çorum", "Zonguldak"]
```

## Veriyi güncellemek

İlçe veri kaynağı [Türkiye API](https://github.com/ubeydeozdmr/turkiye-api)'dir. trkit deposunda `npm run sync:address` ile yeniden üretilir.

Mahalle verisi (~32.000 kayıt) boyutu nedeniyle henüz pakette yoktur.
