Skip to content

codeewithmert/turkish-tools-pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turkish Tools

Kapsamlı Türkçe veri işleme, doğrulama, formatlama ve sahte Türkçe veri üretme araçları kütüphanesi.

📁 Proje Yapısı

├── src/
│   ├── alfabet/alfabet.js
│   ├── date/date.js
│   ├── iban/iban.js
│   ├── phone/phone.js
│   ├── slang/slang.js
│   ├── number/number.js
│   ├── plaka/plaka.js
│   ├── identity/identity.js
│   ├── syllable/syllable.js
│   ├── stopwords/stopwords.js
│   ├── faker/faker.js
│   ├── currency/currency.js
│   ├── address/address.js
│   ├── text/text.js
│   ├── validation/validation.js
│   ├── encryption/encryption.js
│   ├── network/network.js
│   └── statistics/statistics.js
├── index.js
├── test.js
├── package.json
├── README.md
├── LICENSE
├── .gitignore

Her modül kendi klasöründe, ana dosyasıyla birlikte bulunur. Tüm modüller index.js üzerinden dışa aktarılır.

📦 Kurulum

npm install turkish-tools

🚀 Hızlı Başlangıç

const turkishTools = require('turkish-tools');

// Türkçe karakterleri İngilizce'ye çevir
console.log(turkishTools.turkishToEnglish('Çalışma')); // Calisma

// Sahte isim üret
console.log(turkishTools.fakeName()); // Örn: Ayşe Yılmaz

// TC kimlik numarası doğrula
console.log(turkishTools.validateTC('12345678901')); // true/false

// Tarihi Türkçe formatla
console.log(turkishTools.formatDateTR(new Date())); // 12 Mayıs 2024 Pazar

// Para miktarını formatla
console.log(turkishTools.formatTL(1234.56)); // ₺1.234,56

// Şifre hash'le
console.log(turkishTools.sha256Hash('şifrem')); // hash değeri

// İstatistik hesapla
console.log(turkishTools.calculateMean([1, 2, 3, 4, 5])); // 3

📚 Modüller ve Fonksiyonlar

🔤 Alfabe İşlemleri

// Türkçe karakterleri İngilizce'ye çevir
turkishTools.turkishToEnglish('Çalışma'); // Calisma

// İngilizce karakterleri Türkçe'ye çevir
turkishTools.englishToTurkish('Calisma'); // Çalışma

// URL dostu hale getir
turkishTools.toUrlFriendly('Merhaba Dünya!'); // merhaba-dunya

// Türkçe karakter kontrolü
turkishTools.hasTurkishChars('Merhaba'); // true
turkishTools.countTurkishChars('Çalışma'); // 2

📅 Tarih İşlemleri

// Tam tarih formatı
turkishTools.formatDateTR(new Date()); // 12 Mayıs 2024 Pazar

// Kısa tarih formatı
turkishTools.formatDateShortTR(new Date()); // 12 May 2024

// Gün ve ay
turkishTools.formatDayMonthTR(new Date()); // 12 Mayıs

// Tarih ve saat
turkishTools.formatDateTimeTR(new Date()); // 12 Mayıs 2024 Pazar 14:30

// Tarih kontrolleri
turkishTools.isToday(new Date()); // true/false
turkishTools.isYesterday(new Date()); // true/false
turkishTools.isTomorrow(new Date()); // true/false

// Gün farkı
turkishTools.daysFromNow(new Date('2024-01-01')); // 123

🏦 IBAN İşlemleri

// IBAN doğrula
turkishTools.validateIBAN('TR330006100519786457841326'); // true

// IBAN formatla
turkishTools.formatIBAN('TR330006100519786457841326'); // TR33 0006 1005 1978 6457 8413 26

// Banka kodu al
turkishTools.getBankCodeFromIBAN('TR330006100519786457841326'); // 00061

// Hesap numarası al
turkishTools.getAccountNumberFromIBAN('TR330006100519786457841326'); // 00519786457841326

// IBAN maskele
turkishTools.maskIBAN('TR330006100519786457841326'); // TR33 **** **** **** **** 8413

// Türk IBAN'ı kontrolü
turkishTools.isTurkishIBAN('TR330006100519786457841326'); // true

📞 Telefon İşlemleri

// Telefon numarasını normalize et
turkishTools.normalizePhone('0532 123 45 67'); // +905321234567

// Telefon numarası doğrula
turkishTools.validatePhone('0532 123 45 67'); // true

// Telefon formatla
turkishTools.formatPhone('+905321234567', 'local'); // 532 123 45 67
turkishTools.formatPhone('+905321234567', 'national'); // 0532 123 45 67

// Operatör bilgisi
turkishTools.getOperatorFromPhone('+905321234567'); // Turkcell

// Telefon maskele
turkishTools.maskPhone('+905321234567'); // +90 532 *** *** 567

// Telefon tipi
turkishTools.getPhoneType('+905321234567'); // mobile

🚫 Argo/Küfür Filtresi

// Uygunsuz kelimeleri sansürle
turkishTools.filterSlang('Kötü bir kelime'); // K*** bir kelime

// Uygunsuz kelime kontrolü
turkishTools.hasSlang('Bu metin temiz'); // false

// Uygunsuz kelimeleri bul
turkishTools.findSlang('Kötü bir kelime var'); // ['kötü']

// Uygunsuz kelime sayısı
turkishTools.countSlang('Kötü bir kelime var'); // 1

// Metni tamamen temizle
turkishTools.cleanSlang('Kötü bir kelime'); // bir kelime

🔢 Sayı İşlemleri

// Sayıyı yazıya çevir
turkishTools.numberToText(123); // yüz yirmi üç

// Para formatında
turkishTools.amountToText(1234.56); // bin iki yüz otuz dört TL elli altı kuruş

// Sıra sayısı
turkishTools.ordinalToText(3); // üçüncü

// Yüzde formatında
turkishTools.percentageToText(25); // yirmi beş yüzde

🚗 Plaka İşlemleri

// Plaka kodundan şehir
turkishTools.plakaToCity(34); // İstanbul

// Şehirden plaka kodu
turkishTools.cityToPlaka('İstanbul'); // 34

// Tüm plaka kodları
turkishTools.getAllPlateCodes(); // {1: 'Adana', 2: 'Adıyaman', ...}

// Plaka kodu geçerliliği
turkishTools.isValidPlateCode(34); // true

// Plaka formatla
turkishTools.formatPlateCode(5); // 05

// Tam plaka oluştur
turkishTools.createFullPlate(34, 'ABC', '123'); // 34 ABC 123

// Bölgesel gruplar
turkishTools.getPlateCodesByRegion(); // {Marmara: [10, 11, ...], ...}

🆔 Kimlik İşlemleri

// TC kimlik numarası doğrula
turkishTools.validateTC('12345678901'); // true

// TC formatla
turkishTools.formatTC('12345678901'); // 123 456 789 01

// TC maskele
turkishTools.maskTC('12345678901'); // 123 *** *** 01

// Doğum tarihi tahmin et
turkishTools.getBirthDateFromTC('12345678901'); // {year: 1923, month: 4, day: 5, ...}

// Cinsiyet tahmin et
turkishTools.getGenderFromTC('12345678901'); // Erkek/Kadın

// Doğum yılı
turkishTools.getBirthYearFromTC('12345678901'); // 1923

🔤 Heceleme İşlemleri

// Kelimeyi hecelerine ayır
turkishTools.splitSyllables('merhaba'); // ['mer', 'ha', 'ba']

// Hece sayısı
turkishTools.countSyllables('merhaba'); // 3

// Uzun heceler
turkishTools.findLongSyllables('merhaba'); // []

// Kısa heceler
turkishTools.findShortSyllables('merhaba'); // ['mer', 'ha', 'ba']

// Vurgulu hece
turkishTools.findStressedSyllable('merhaba'); // ba

// Tire ile hecele
turkishTools.hyphenateWord('merhaba'); // mer-ha-ba

// Ünlü/ünsüz kontrolü
turkishTools.isVowel('a'); // true
turkishTools.isConsonant('b'); // true

🚫 Stopwords İşlemleri

// Stopwords'leri kaldır
turkishTools.removeStopwords('Bu bir örnek cümledir'); // örnek cümledir

// Stopwords kontrolü
turkishTools.hasStopwords('Bu metin temiz'); // true

// Stopwords'leri bul
turkishTools.findStopwords('Bu bir örnek'); // ['Bu', 'bir']

// Stopwords sayısı
turkishTools.countStopwords('Bu bir örnek'); // 2

// Önemli kelimeleri filtrele
turkishTools.filterImportantWords('Bu bir örnek cümle', 3); // örnek cümle

// Kelime frekansı analizi
turkishTools.analyzeWordFrequency('Bu bir örnek cümle'); // {örnek: 1, cümle: 1}

// Tüm stopwords listesi
turkishTools.getAllStopwords(); // ['ve', 'veya', 'ile', ...]

// Yeni stopwords ekle
turkishTools.addStopword('yeni');

🎭 Sahte Veri Üretici

// Sahte isim
turkishTools.fakeName(); // Ayşe Yılmaz

// Sahte TC
turkishTools.fakeTC(); // 12345678901

// Sahte telefon
turkishTools.fakePhone(); // 0532 123 45 67

// Sahte adres
turkishTools.fakeAddress(); // Atatürk Mahallesi Cumhuriyet Caddesi No:15 İstanbul

// Sahte IBAN
turkishTools.fakeIBAN(); // TR123456789012345678901234

// Sahte e-posta
turkishTools.fakeEmail(); // ayse.yilmaz45@gmail.com

// Sahte plaka
turkishTools.fakePlate(); // 34 ABC 123

// Sahte doğum tarihi
turkishTools.fakeBirthDate(18, 65); // 1985-03-15

// Sahte kullanıcı
turkishTools.fakeUser(); // {firstName: 'Ayşe', lastName: 'Yılmaz', ...}

// Birden fazla sahte kullanıcı
turkishTools.fakeUsers(5); // [user1, user2, user3, user4, user5]

💰 Para Birimi İşlemleri

// TL formatla
turkishTools.formatTL(1234.56); // ₺1.234,56

// Kuruş dönüştürme
turkishTools.kuruşToTL(12345); // 123.45
turkishTools.tlToKuruş(123.45); // 12345

// Para miktarını yazıya çevir
turkishTools.amountToWords(1234.56); // bin iki yüz otuz dört Türk Lirası elli altı kuruş

// Para maskele
turkishTools.maskAmount(1234567); // 12****67

// Para birimi dönüştür
turkishTools.convertCurrency(100, 'TRY', 'USD'); // 3.5

// Para kısalt
turkishTools.abbreviateAmount(1234567); // 1.2 milyon ₺

// Para durumu
turkishTools.getAmountStatus(-100); // negatif

// Para yuvarla
turkishTools.roundAmount(123.456, 2); // 123.46

🏠 Adres İşlemleri

// Adresi parçala
turkishTools.parseAddress('Atatürk Mahallesi Cumhuriyet Caddesi No:15 İstanbul');
// {neighborhood: 'Atatürk Mahallesi', street: 'Cumhuriyet Caddesi', ...}

// Adres formatla
turkishTools.formatAddress(addressParts, 'short'); // Atatürk Mahallesi Cumhuriyet Caddesi İstanbul

// Adres doğrula
turkishTools.validateAddress('Atatürk Mahallesi İstanbul'); // true

// Şehir çıkar
turkishTools.extractCity('Atatürk Mahallesi İstanbul'); // İstanbul

// Mahalle çıkar
turkishTools.extractNeighborhood('Atatürk Mahallesi İstanbul'); // Atatürk Mahallesi

// Cadde çıkar
turkishTools.extractStreet('Cumhuriyet Caddesi İstanbul'); // Cumhuriyet Caddesi

// Adres maskele
turkishTools.maskAddress('Atatürk Mahallesi Cumhuriyet Caddesi No:15 İstanbul'); // Atatürk M******* İstanbul

// Bölge belirle
turkishTools.getAddressRegion('İstanbul'); // Marmara

// Adres uzunluk kategorisi
turkishTools.getAddressLengthCategory('Kısa adres'); // kısa

📝 Metin İşleme

// Metni temizle
turkishTools.cleanText('Merhaba   Dünya!', { removePunctuation: true }); // Merhaba Dünya

// Kelime sayısı
turkishTools.countWords('Merhaba dünya'); // 2

// Karakter sayısı
turkishTools.countCharacters('Merhaba', false); // 7 (boşluksuz)

// Cümle sayısı
turkishTools.countSentences('Merhaba. Nasılsın?'); // 2

// Paragraf sayısı
turkishTools.countParagraphs('Paragraf 1\n\nParagraf 2'); // 2

// Metni böl
turkishTools.splitSentences('Merhaba. Nasılsın?'); // ['Merhaba', 'Nasılsın']
turkishTools.splitWords('Merhaba dünya'); // ['Merhaba', 'dünya']

// Sık kullanılan kelimeler
turkishTools.getMostFrequentWords('Bu bir örnek metin. Bu metin örnek.'); // {bu: 2, örnek: 2, metin: 2}

// Türkçe sayıları çevir
turkishTools.convertTurkishNumbersToDigits('üç kişi'); // 3 kişi

// Metin işlemleri
turkishTools.reverseText('merhaba'); // abahrem
turkishTools.capitalize('merhaba'); // Merhaba
turkishTools.toTitleCase('merhaba dünya'); // Merhaba Dünya
turkishTools.truncateText('Çok uzun metin', 10); // Çok uzun...

// Özel işlemler
turkishTools.removeRepeatedCharacters('merhabaaaa'); // merhabaa
turkishTools.caesarCipher('merhaba', 3); // phukded
turkishTools.caesarDecipher('phukded', 3); // merhaba
turkishTools.removeEmojis('Merhaba 😊'); // Merhaba
turkishTools.removeHtmlTags('<p>Merhaba</p>'); // Merhaba

✅ Veri Doğrulama

// E-posta doğrula
turkishTools.validateEmail('test@example.com'); // true
turkishTools.validateTurkishEmail('test@gmail.com'); // true

// Şifre doğrula
turkishTools.validatePassword('GüçlüŞifre123', { requireSpecialChars: true });
// {isValid: false, errors: ['Şifre en az bir özel karakter içermelidir']}

// Kullanıcı adı doğrula
turkishTools.validateUsername('kullanici123'); // {isValid: true, errors: []}

// Türk isim doğrula
turkishTools.validateTurkishName('Ahmet'); // {isValid: true, errors: []}

// Yaş doğrula
turkishTools.validateAge(25, { minAge: 18, maxAge: 65 }); // {isValid: true, errors: []}

// URL doğrula
turkishTools.validateURL('https://example.com'); // true
turkishTools.validateTurkishURL('https://example.com.tr'); // true

// Tarih doğrula
turkishTools.validateDate('2024-01-01'); // true
turkishTools.validateFutureDate('2025-01-01'); // true
turkishTools.validatePastDate('2023-01-01'); // true

// Sayı doğrula
turkishTools.validateNumber(42, { min: 0, max: 100, integer: true }); // {isValid: true, errors: []}

// Metin uzunluğu doğrula
turkishTools.validateTextLength('Merhaba', { minLength: 5, maxLength: 20 }); // {isValid: true, errors: []}

// Form doğrula
const formData = { email: 'test@example.com', password: '123456' };
const rules = {
  email: { required: true, type: 'email' },
  password: { required: true, type: 'password', options: { minLength: 6 } }
};
turkishTools.validateForm(formData, rules);
// {isValid: false, errors: {password: ['Şifre en az 8 karakter olmalıdır']}}

🔐 Şifreleme ve Güvenlik

// Hash işlemleri
turkishTools.md5Hash('test'); // md5 hash
turkishTools.sha256Hash('test'); // sha256 hash
turkishTools.sha512Hash('test'); // sha512 hash

// Şifre hash'leme
const hashedPassword = await turkishTools.hashPassword('şifrem'); // güvenli hash
const isValid = await turkishTools.verifyPassword('şifrem', hashedPassword); // true

// AES şifreleme
const encrypted = turkishTools.aesEncrypt('gizli mesaj', '32karakterlikanahtar');
const decrypted = turkishTools.aesDecrypt(encrypted, '32karakterlikanahtar'); // gizli mesaj

// Base64 kodlama
turkishTools.base64Encode('test'); // dGVzdA==
turkishTools.base64Decode('dGVzdA=='); // test

// Güvenli string üretme
turkishTools.generateRandomString(32); // rastgele 32 karakter
turkishTools.generateSecurePassword(12); // güvenli şifre

// Dosya hash'i
turkishTools.hashFile(fileBuffer, 'sha256'); // dosya hash'i

// HMAC oluşturma
turkishTools.createHMAC('mesaj', 'anahtar'); // HMAC

// Şifre güvenlik analizi
turkishTools.analyzePasswordSecurity('GüçlüŞifre123');
// {score: 8, level: 'güçlü', suggestions: []}

// JWT token
const token = turkishTools.createJWT({userId: 123}, 'gizli-anahtar', 3600);
const result = turkishTools.verifyJWT(token, 'gizli-anahtar');
// {valid: true, payload: {userId: 123, iat: ..., exp: ...}}

🌐 Ağ ve İnternet İşlemleri

// IP adresi doğrulama
turkishTools.validateIP('192.168.1.1'); // true
turkishTools.validateIPv4('192.168.1.1'); // true
turkishTools.validateIPv6('2001:db8::1'); // true

// IP adresi kontrolü
turkishTools.isPrivateIP('192.168.1.1'); // true
turkishTools.isLoopbackIP('127.0.0.1'); // true

// Domain doğrulama
turkishTools.validateDomain('example.com'); // true
turkishTools.validateTurkishDomain('example.com.tr'); // true

// DNS kayıtları kontrolü
const dnsRecords = await turkishTools.checkDNSRecords('example.com');
// {a: [...], mx: [...], txt: [...]}

// URL işlemleri
turkishTools.parseURL('https://example.com/path?param=value');
// {protocol: 'https:', hostname: 'example.com', ...}

turkishTools.normalizeURL('example.com'); // https://www.example.com
turkishTools.shortenURL('https://example.com/very/long/path', 30); // example.com.../path

// E-posta domain kontrolü
const isValidDomain = await turkishTools.validateEmailDomain('test@example.com'); // true

// Port işlemleri
turkishTools.validatePort(80); // true
turkishTools.getCommonPort(80); // HTTP

// MAC adresi
turkishTools.validateMAC('00:11:22:33:44:55'); // true
turkishTools.formatMAC('00:11:22:33:44:55', 'dash'); // 00-11-22-33-44-55

// Ağ maskesi ve CIDR
turkishTools.validateSubnetMask('255.255.255.0'); // true
turkishTools.validateCIDR('192.168.1.0/24'); // true
turkishTools.isIPInNetwork('192.168.1.100', '192.168.1.0/24'); // true

// Bağlantı testi
const isConnected = await turkishTools.testConnection('google.com', 80); // true

📊 İstatistik ve Analiz

// Temel istatistikler
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
turkishTools.calculateMean(numbers); // 5.5
turkishTools.calculateMedian(numbers); // 5.5
turkishTools.calculateMode([1, 2, 2, 3, 4]); // [2]

// Dağılım istatistikleri
turkishTools.calculateStandardDeviation(numbers); // 3.0276503540974917
turkishTools.calculateVariance(numbers); // 9.166666666666666
turkishTools.calculateRange(numbers); // 9

// Çeyrekler
turkishTools.calculateQuartiles(numbers); // {q1: 3.25, q2: 5.5, q3: 7.75}
turkishTools.calculateIQR(numbers); // 4.5

// Toplam ve çarpım
turkishTools.calculateSum(numbers); // 55
turkishTools.calculateProduct([1, 2, 3, 4]); // 24

// Farklı ortalamalar
turkishTools.calculateGeometricMean([1, 2, 4, 8]); // 2.8284271247461903
turkishTools.calculateHarmonicMean([1, 2, 4]); // 1.7142857142857142
turkishTools.calculateWeightedMean([1, 2, 3], [1, 2, 3]); // 2.3333333333333335

// Korelasyon
turkishTools.calculateCorrelation([1, 2, 3], [2, 4, 6]); // 1

// Frekans dağılımı
turkishTools.calculateFrequencyDistribution([1, 2, 2, 3]); // {1: 1, 2: 2, 3: 1}

// Yüzdelik dilimler
turkishTools.calculatePercentile(numbers, 50); // 5.5
turkishTools.calculateZScore(numbers, 5); // -0.165

// Aykırı değerler
turkishTools.findOutliers([1, 2, 3, 100, 4, 5]); // [100]

// İstatistiksel özet
const summary = turkishTools.generateStatisticsSummary(numbers);
// {count: 10, mean: 5.5, median: 5.5, mode: [], stdDev: 3.0276503540974917, ...}

// Metin istatistikleri
const textStats = turkishTools.calculateTextStatistics('Bu bir örnek metin. Bu metin örnek.');
// {characterCount: 35, wordCount: 7, sentenceCount: 2, paragraphCount: 1, ...}

📋 Modül Bilgileri

// Modül bilgilerini al
const info = turkishTools.getInfo();
console.log(info);
// {
//   version: '1.0.0',
//   description: 'Kapsamlı Türkçe veri işleme, doğrulama, formatlama ve sahte Türkçe veri üretme araçları',
//   modules: ['alfabet', 'date', 'iban', 'phone', 'slang', 'number', 'plaka', 'identity', 'syllable', 'stopwords', 'faker', 'currency', 'address', 'text', 'validation', 'encryption', 'network', 'statistics'],
//   totalFunctions: 180+
// }

🧪 Test

npm test

📄 Lisans

MIT

🤝 Katkıda Bulunma

  1. Fork yapın
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Commit yapın (git commit -m 'Add amazing feature')
  4. Push yapın (git push origin feature/amazing-feature)
  5. Pull Request oluşturun

⭐️ Öne Çıkan Özellikler

  • Türk alfabesi ve karakter işlemleri
  • Türkçe tarih ve saat formatlama
  • IBAN, telefon, TC kimlik, plaka doğrulama
  • Argo/küfür filtresi ve sansür
  • Sayıdan yazıya ve para birimi işlemleri
  • Plaka-şehir eşleştirme
  • Türkçe kelime heceleme ve stopwords temizleme
  • Sahte veri üretici (isim, adres, telefon, e-posta, vs.)
  • Adres ve metin işleme, analiz ve özetleme
  • Gelişmiş veri doğrulama ve şifreleme araçları
  • Ağ/internet yardımcıları (IP, domain, port, DNS, vs.)
  • Temel ve ileri istatistik fonksiyonları
  • Modüler, genişletilebilir ve test edilebilir yapı

Daha fazla bilgi ve örnek için yukarıdaki modül ve fonksiyon açıklamalarına göz atabilirsiniz.

About

Kapsamlı Türkçe veri işleme, doğrulama, formatlama ve sahte Türkçe veri üretme araçları kütüphanesi

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors