@rekl0w/fatura-kit
v0.1.0
Published
GİB e-Arşiv iş akışları için tipli TypeScript istemcisi ve stdio MCP sunucusunu bir arada sunan hibrit npm paketi.
Downloads
137
Maintainers
Readme
@rekl0w/fatura-kit
@rekl0w/fatura-kit, GİB e-Arşiv Portal akışları için hazırlanmış hibrit bir npm paketidir: hem tipli TypeScript istemcisi sunar, hem de stdio üzerinden çalışan bir MCP sunucusu sağlar.
Bu projenin iki ana referansı vardır:
Bu paket iki katman sunar:
- Typed client: GİB e-Arşiv Portal işlemleri için programatik istemci
- MCP server: stdio üzerinden araçlarını LLM istemcilerine açan sunucu
Yani tek paketle hem uygulama içinde SDK gibi kullanabilir, hem de MCP istemcilerine araç servisi olarak bağlayabilirsiniz.
⚠️ Bu paket vergiye tabi mali veri üretimine aracılık edebilir. Risk kullanıcıya aittir. Üretimde dikkatli kullanın.
Neler var?
- GİB test/prod login ve token yönetimi
- Taslak belge oluşturma / güncelleme / silme
- e-Fatura, e-Müstahsil, e-SMM model aileleri
- Belge listeleme, filtreleme, tek belge getirme, son belgeyi getirme
- HTML görüntüleme, download URL üretme, ZIP’i diske kaydetme
- SMS ile imzalama akışı
- Profil bilgisi okuma/güncelleme
- Mükellef sorgulama
- İptal / itiraz talebi oluşturma
- Vergi, birim, para birimi ve belge katalogları
- Upstream parity odaklı model/test kapsamı
Kurulum
bun add @rekl0w/fatura-kitveya
npm install @rekl0w/fatura-kitKimler için?
- MCP kullanan editör/agent entegrasyonları
- Node.js / Bun projelerinde doğrudan SDK isteyen geliştiriciler
- GİB portal akışlarını script veya back-end servis içinde otomatikleştirmek isteyen ekipler
MCP olarak kullanma
VS Code / MCP client komutu
{
"mcpServers": {
"fatura": {
"command": "npx",
"args": ["-y", "@rekl0w/fatura-kit"]
}
}
}Bun ile yerel geliştirme sırasında:
{
"mcpServers": {
"fatura": {
"command": "bun",
"args": ["run", "src/cli.ts"],
"cwd": "/absolute/path/to/project"
}
}
}Sağlanan MCP araçları
session_loginsession_logoutsession_set_tokensession_set_document_typesession_get_phone_numbersession_statusdocument_create_draftdocument_listdocument_list_receiveddocument_last_iddocument_getdocument_get_lastdocument_delete_draftdocument_get_htmldocument_get_download_urldocument_save_zipsigning_start_smssigning_complete_smsprofile_getprofile_updaterecipient_lookuprequest_listrequest_cancellationrequest_objectioncatalog_listdocument_calculate_preview
İstemci olarak kullanma
import {
GibClient,
DocumentType,
InvoiceModel,
InvoiceItemModel,
Unit,
} from "@rekl0w/fatura-kit";
const client = new GibClient({ documentType: DocumentType.Invoice });
await client.setTestCredentials("33333310", "1");
await client.login();
const invoice = InvoiceModel.create({
vknTckn: "11111111111",
aliciAdi: "Mert",
aliciSoyadi: "Levent",
mahalleSemtIlce: "Nilüfer",
sehir: "Bursa",
ulke: "Türkiye",
});
invoice.addItem(
new InvoiceItemModel({
malHizmet: "Çimento",
miktar: 3,
birim: Unit.M3,
birimFiyat: 1259,
kdvOrani: 18,
}),
);
await client.createDraft(invoice);npm paketi olarak neler export ediyor?
Paket ana girişinden şunları kullanabilirsiniz:
GibClient- model sınıfları (
InvoiceModel,ProducerReceiptModel,SelfEmployedReceiptModel, vb.) - enum katalogları (
DocumentType,InvoiceType,Tax,Unit,Currency, vb.) - MCP sunucusu kurmak için
createFaturaMcpServer
CLI tarafı ayrı export olarak da erişilebilir:
import "@rekl0w/fatura-kit/cli";Geliştirme
bun install
bun test
bun run typecheck
bun run lint
bun run buildOrtam değişkenleri
Repo içinde örnek olarak şu dosyalar hazır gelir:
.env.env.example
Desteklenen placeholder anahtarlar:
GIB_TEST_USERNAMEGIB_TEST_PASSWORDGIB_PROD_USERNAMEGIB_PROD_PASSWORD
Varsayılan test suite gerçek GİB’e gitmez; fixture ve mock transport kullanır.
Test kapsamı
Paket, upstream mlevent/fatura testlerinden türetilen ve genişletilen parity testleri içerir:
- invoice tax math
- invoice total math
- producer receipt total math
- credential lifecycle
- list/get/update/delete service akışları
- self-employed receipt math
- tevkifat / özel matrah / istisna senaryoları
- sms / html / download / request akışları
Sürümleme yaklaşımı
CHANGELOG.mdkullanıcıya dönük değişiklikleri özetler- parity bozan davranış değişiklikleri major/minor notuyla açık yazılmalıdır
- upstream referansına yaklaşan düzeltmeler changelog’da özellikle belirtilmelidir
Komutlar
bun run test
bun run typecheck
bun run lint
bun run build
bun run checkKatkı
Katkı akışı için CONTRIBUTING.md dosyasına bakın. Kısa kural: parity’yi bozmadan ilerle, test ekle, sonra refactor et.
Lisans
MIT
