npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@talkdedsec/talk-graph

v0.7.0

Published

Turns a codebase into a navigable, single-file architecture map. Kod tabanini gezilebilir tek dosyalik mimari haritaya cevirir.

Readme

talk-graph

ci

English · Türkçe

Kod tabanını gezilebilir, tek dosyalık bir mimari haritaya çevirir. Elle diyagram yazmak yok: girdi deponun kendisi.

Canlı demoyu aç → — bu deponun kendi haritası.

npx @talkdedsec/talk-graph ./projem

Üretilen cikti/projem.html tek başına çalışan tek dosyadır — dış bağımlılık yok, CDN yok, derleme adımı yok. Olduğu gibi paylaşılır.

Komutlar ve bayraklar Türkçe ve İngilizce çalışır: tg ciz ile tg draw aynı komut, --gorunum simge ile --view symbol aynı bayrak. Çıktı diline sistem yerelin karar verir, --dil ile değiştirilir.

Bağımlılık haritası, koyu tema

Neden

Diyagram araçları diyagramı sana yazdırır. Bu onu okur. Her düğüm gerçek bir dosya ya da paket, her kenar gerçek bir dosyaya çözülmüş gerçek bir import, ve her düğüm geldiği kod satırına geri bağlanır.

Simge görünümü: fonksiyonlar ve aralarındaki çağrılar

Üç seviye

| seviye | düğüm | kenar | |---|---|---| | --gorunum grup | paket / klasör | aralarındaki import | | --gorunum dosya | dosya | çözülmüş import | | --gorunum simge | fonksiyon, sınıf, tip | çağrı ya da kullanım, onu doğuran satırla |

Simge seviyesi adlandırılmış import'ları ve nitelikli çağrıları (scope.Load(), pkg::fn()) işaret ettikleri simgeye çözer: düğüm bir fonksiyon, metot ya da tip, kenar bir çağrıdır. Grup kutuları dosyaya döner. Simgeye tıklamak dosyayı kendi satırında açar.

| kenar | anlamı | |---|---| | cagri | bir simge diğerini çağırıyor | | referans | çağırmadan adını geçiriyor | | metot | aynı paket içinde çözülen çağrı | | icerir | tip kendi metodunu içeriyor |

TypeScript/JavaScript, Python, Go, Rust, C# ve Java'yı kapsar. 76 dosyalık Go deposunda 547 simge ve 1261 kenar çıkarıyor; en bağlı düğüm olarak bildirdikleri, bir insanın elle sayacağı isimler: finding.Finding, cli.Execute, fetch.Client, scope.Scope.

Kurulum

Node 20 ve üstü. Başka bir şey gerekmez.

npx @talkdedsec/talk-graph ./projem              # kurulumsuz
npm install -g @talkdedsec/talk-graph && tg .    # ya da tg komutunu kur

Kaynaktan:

git clone https://github.com/Talkdedsec/talk-graph.git
cd talk-graph
node --test
node bin/tg.mjs ./projem

Komutlar

tg <yol>                         haritayı üret ve aç
tg ciz <yol> [seçenekler]        harita üret
tg tara <yol> --cikti g.json     ham grafı kaydet
tg anlat <yol> <arama>           bir düğümü açıkla: rol, çağıranlar, bağımlılıklar
tg yol <yol> <a> <b>             iki düğüm arasındaki en kısa zincir
tg denetle <yol>                 sağlık raporu: döngüler, tanrı düğümler, riskli dosyalar
tg kume <yol>                    bağlantıya göre topluluk bul, klasörlerle karşılaştır
tg disaaktar <yol> --bicim dot   dot | graphml | csv | mermaid | json
tg fark <eski.json> <yeni.json>  iki tarama arasındaki değişim
tg izle <yol>                    dosya değiştikçe haritayı tazele

Çözümleme komutları neyi yanıtlar

tg anlat ./api siparis.ts      # bunu kim çağırıyor, bu neyi çekiyor, döngüde mi
tg yol ./api route.ts db.ts    # ikisini bağlayan import zinciri, satır numaralarıyla
tg denetle ./api               # döngüler, aşırı bağlı düğümler, hem değişen hem bağımlı dosyalar
tg kume ./api                  # kodun gerçekte sahip olduğu modüller, iddia ettiği klasörlere karşı

İngilizce ↔ Türkçe

| English | Türkçe | | English | Türkçe | |---|---|---|---|---| | draw | ciz | | --view | --gorunum | | scan | tara | | --out | --cikti | | explain | anlat | | --depth | --derinlik | | path | yol | | --grouping | --gruplama | | audit | denetle | | --focus | --odak | | cluster | kume | | --radius | --cevre | | export | disaaktar | | --max | --enfazla | | diff | fark | | --direction | --yon | | watch | izle | | --theme | --tema | | group / file / symbol | grup / dosya / simge | | --external | --dis | | folder / community | klasor / topluluk | | --no-tests | --testyok | | right / down | sag / asagi | | --no-history | --gecmisyok | | | | | --positions | --konum | | | | | --all | --hepsi | | | | | --no-open | --acma | | | | | --lang | --dil |

Seçenekler

| bayrak | işi | |---|---| | --gorunum grup\|dosya\|simge | paket (varsayılan), dosya ya da simge seviyesi | | --hepsi | simge görünümünde bağsız simgeleri de çiz | | --derinlik <n> | grup yolu derinliği (varsayılan 2) | | --gruplama klasor\|topluluk | klasöre göre grupla, ya da kodun gerçekten bağladığına göre | | --tema <ad> | açılış teması, bkz. Temalar | | --odak <yol parçası> | yalnız o düğümün komşuluğunu çiz | | --cevre <n> | odak yarıçapı (varsayılan 1) | | --enfazla <n> | çizilecek en fazla düğüm (varsayılan 120) | | --yon sag\|asagi | akış yönü | | --dis | dış paketleri de çiz (varsayılan dışarıda) | | --testyok | test dosyalarını dışla | | --gun <n> | git geçmişi penceresi, gün (varsayılan 180) | | --gecmisyok | git geçmişi katmanını okuma | | --konum <dosya> | kaydedilmiş düğüm konumlarını geri yükle | | --cikti <dosya> | çıktı yolu |

Haritada

| hareket | sonuç | |---|---| | sürükle / tekerlek | gezinme ve yakınlaştırma | | f | ekrana sığdır | | / | dosya, klasör ve simge araması | | t / Shift+t | sonraki / önceki tema (11 tane) | | a | akış animasyonu | | düğüme tıkla | çağıranlar, bağımlılıklar, dışa açılan simgeler | | editörde aç | dosyayı VS Code'da açar | | düğümü sürükle | taşı; kaydet konumları dışa aktarır, --konum geri yükler | | döngüler | dairesel bağımlılıkları izole eder | | değişim | düğümleri git değişiklik sayısına göre renklendirir | | png / svg | haritayı dışa aktarır | | g | grup / bağ türü filtre paneli | | 1 · 2 · 3 | yakınlaştır · uzaklaştır · sığdır | | c | dairesel bağımlılıkları izole et | | ? | kısayol listesi | | kenarın üstüne gel | kaynak → hedef ve onu doğuran satır |

Her düğüm ait olduğu grubun rengini taşır, soldaki panel o grupları sayılarıyla listeler ve tek tek kapatır, araç çubuğundaki sayaç ekranda ne kaldığını söyler. Uzaklaştırdığında yalnız işaret taşları etiketini korur.

Seçili düğüm: çağıranlar ve geçmiş

Seçili düğüm, açık tema

Diller

TypeScript/JavaScript (tsconfig takma adları dahil), Python, Go (go.mod modül yolu), Rust (crate:: ve mod), C# (namespace dizini), Lua, Ruby, PHP, Java.

Çözülemeyen import'lar atılmaz, dış paket düğümü olur.

Nasıl çalışır

| aşama | dosya | işi | |---|---|---| | tarama | cekirdek/tarama.mjs | dosyaları gezer, dile göre import ve simge çıkarır, hedefi gerçek dosyaya çözer | | model | cekirdek/graf.mjs | fan-in/out, döngü (Tarjan), klasör gruplama, budama, tarama farkı | | geçmiş | cekirdek/gecmis.mjs | git log'dan dosya başına değişiklik sayısı, son dokunma, yazar sayısı | | yerleşim | cekirdek/yerlesim.mjs | katmanlı yerleşim: döngü kırma, katman atama, medyan sıralama, koordinat ataması, ortogonal yönlendirme | | çözümleme | cekirdek/analiz.mjs | düğüm arama, açıklama, en kısa yol, sağlık raporu, modülerlik kümeleme | | dışa aktarma | cekirdek/disaaktar.mjs | dot, graphml, csv, mermaid, json | | çizim | cekirdek/cizim.mjs + kanvas/ | gömülü SVG sahnesi ve gezgini olan tek dosyalık HTML |

Uzun kenarlar sanal düğüm zincirine girmez, eğri olarak çizilir; kesişmeyi düşük tutan şey bu: 76 dosyalık Go deposunda paket haritası 42 ms'de 61 kesişmeye iniyor.

Ölçüm

| depo | dosya | bağ | çizilen | katman | kesişme | süre | |---|---|---|---|---|---|---| | Go, 76 dosya | 76 | 625 | 37 | 8 | 61 | 42 ms | | Go, simge seviyesi | 547 simge | 1261 | 150 | 10 | 6474 | 0.1 s | | Next.js, 193 dosya | 193 | 1039 | 9 | 4 | 2 | 0.4 s |

Belgeler

Lisans

PolyForm Noncommercial 1.0.0 — ticari olmayan her kullanım serbest: kişisel iş, araştırma, eğitim, hayır kurumu, kamu. Satmak ya da ticari bir hizmetin içinde çalıştırmak ayrı lisans ister: [email protected].