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

@estorepark/cli

v0.3.0

Published

EstorePark CLI — tema geliştirme ve yayınlama

Downloads

147

Readme

@estorepark/cli

EstorePark mağaza sahipleri için terminal aracı. Temanızı yerelde geliştirir, gerçek mağaza verinizle önizler ve tek komutla yayınlarsınız.

npm i -g @estorepark/cli
estorepark --help

Node 22 ∨ üzeri gerekir.


Hızlı başlangıç

estorepark login                 # tarayıcıda kodu onaylayın
estorepark store use             # listeden mağazanızı seçin

mkdir tema && cd tema
estorepark theme init            # klasörü bir temaya bağlar + dosyaları indirir
estorepark theme dev             # localhost:9292 — gerçek veri + yerel dosyalarınız

Dosyaları düzenledikçe tarayıcı kendiliğinden yenilenir. Beğendiğinizde:

estorepark theme push            # taslağı günceller (yayınlamaz)
estorepark theme publish         # yayınlar VE canlı yapar

Kabuk

estorepark argümansız çalıştırıldığında tek ekranda mağaza, tema ve sürüm listelerini gösteren bir kabuk açılır:

┌ estorepark ─────────────────────────────────────────────┐
│ mağaza  magazam        tema  Maison CANLI                │
├──────────────────────┬──────────────────────────────────┤
│ TEMALAR              │ Maison                           │
│ ❯ Maison     CANLI   │ durum   CANLI · en yeni v7       │
│   Bahar      taslak  │ sürüm   12 kayıt                 │
│                      │ klasör  ~/tema                   │
│ SÜRÜMLER             │ son olaylar                      │
│   v7  PUBLISHED      │  14:02 ✓ taslak güncellendi      │
└──────────────────────┴──────────────────────────────────┘
 Tab panel · Enter seç · d dev · p push · P publish · q çık

| Tuş | Etki | | --- | ---- | | Tab · ↑↓ · Enter | panel değiştir · gez · temayı seç | | s · n | mağaza değiştir · yeni tema | | p · P · r · l | push · publish · seçili sürüme dön · pull | | d · o · S | dev modunu aç/kapat · tarayıcıda aç · senkronla | | R · / · ? · q | yenile · filtrele · yardım · çık |


Komutlar

estorepark                       Kabuk (TTY gerekir)
estorepark ui                    Kabuğu açıkça başlatır

estorepark login                 Tarayıcıdan onaylanan cihaz girişi
estorepark logout                Yerel oturumu siler
estorepark whoami                Oturum ve erişilebilen mağaza sayısı

estorepark store list            Erişebildiğiniz mağazalar
estorepark store use [slug]      Aktif mağazayı seçer

estorepark theme init            Klasörü bir temaya bağlar + dosyaları indirir
estorepark theme list            Mağazanın temaları
estorepark theme dev             Gerçek veri + yerel dosyalar (canlı yenileme)
estorepark theme preview         Tek seferlik önizleme adresi
estorepark theme check           Yerel yapısal doğrulama (ağa çıkmaz)
estorepark theme package         Deterministik zip üretir (ağa çıkmaz)
estorepark theme push            Yükler ve taslak olarak indeksler
estorepark theme publish         Taslağı yayınlar VE canlı yapar
estorepark theme versions        Yayın geçmişi
estorepark theme rollback        Eski bir sürümü tekrar canlı yapar
estorepark theme pull            Taslak dosyalarını diske yazar

Seçenekler

| Bayrak | Anlamı | | ------ | ------ | | --store <slug> | Mağaza (varsayılan: store use ile seçilen) | | --theme <id> | Tema (varsayılan: klasörün bağlı olduğu tema) | | --dir <yol> | Tema klasörü (varsayılan: bulunulan dizin) | | --port <n> | theme dev yerel portu (varsayılan 9292) | | --name <ad> | theme init ile yeni tema adı | | --out <dosya> | theme package çıktı yolu | | --version <n> | theme rollback hedef sürümü | | --limit · --offset | theme versions sayfalama | | --yes | Canlıyı etkileyen işlemleri sormadan onaylar | | --json | Makine-okur çıktı (stdout'ta tek JSON dokümanı) | | --quiet | Yalnız hataları bas | | --no-input | İnteraktif yüzeyi kapat | | --api · --accounts | Sunucu adresleri |


Nasıl çalışır

Temanız sunucuda render edilir, sizin makinenizde değil. theme dev yerel dosyalarınızı kısa ömürlü bir önizleme oturumuna gönderir ve localhost:9292 mağazanızın gerçek adresine vekillik eder. Böylece kendi ürünlerinizi, koleksiyonlarınızı ve ayarlarınızı görürken tema dosyalarını yerelde düzenlersiniz.

Üç katman vardır ve hangisinin neye dokunduğu önemlidir:

| Komut | Nereye yazar | Kim görür | | ----- | ------------ | --------- | | theme dev | hiçbir yere — geçici oturum | yalnız siz | | theme push | temanın taslağı | yalnız önizleme | | theme publish | taslaktan numaralı sürüm üretir + canlı yapar | herkes |

theme dev kalıcı hiçbir şey değiştirmez; istediğiniz kadar deneyebilirsiniz.

⚠️ theme push taslağı tamamen değiştirir — birleştirmez. theme init/theme pull görsel ve font indirmez (sunucu yalnız metin dosyası döndürür), bu yüzden init → push turu sunucudaki görselleri siler ve publish bunu canlı yapar. push her çağrıda uyarır.

theme dev sırasında assets/ altındaki dosyalar doğrudan yerel klasörünüzden servis edilir (görsel ve fontlar dahil). Yerelde olmayan bir dosya sunucudaki taslaktan gelir.

E-posta tasarımları

Tema, müşteri e-postaları için tasarımlar (emails/<şablon>.json) ve bir e-posta marka dosyası (config/email_brand.json) taşıyabilir. Bu dosyalar temayı yayınlamayı engellemez ve e-postaları kendiliğinden değiştirmez — mağaza sahibi yönetim panelinde E-posta şablonları › Temadan uygula ile seçerek uygular. theme check bu dosyaları doğrulamaz; kuralları sunucu uygular:

  • theme push uygulanamayacak (geçersiz) ve yok sayılan (tanınmayan şablon, JSON olmayan) e-posta dosyalarını yol + açıklamayla listeler. --json'da koşullu uyarı kodları EMAIL_DESIGNS_INVALID / EMAIL_DESIGNS_IGNORED ve emailDesigns.invalid / emailDesigns.ignored ([{ path, reason }]).
  • theme publish canlı temada uygulanabilir tasarım ya da marka ayarı varsa panele yönlendirir; --json'da koşullu emailDesigns: { applicableTemplateKeys, brandApplicable }.
  • Rapor alınamazsa push/publish sonucu ve çıkış kodu değişmez; stderr'e tek satır uyarı yazılır.

Script ve CI

Hiçbir komut TTY gerektirmez. Her komutun bayraklarla tam karşılığı ve --json çıktısı vardır. İnteraktif yüzeyler yalnız stdout ve stdin birlikte TTY iken ve gerekli argümanlar verilmemişken açılır; --no-input ∨ CI ortam değişkeni hepsini kapatır.

--json modunda stdout yalnız tek bir JSON dokümanı taşır — ilerleme ve uyarı satırları stderr'e gider, yani estorepark theme list --json | jq daima çalışır.

Canlıyı etkileyen theme publish ve theme rollback onay ister; script'te --yes verin:

estorepark theme push --json
estorepark theme publish --json --yes

Çıkış kodları

| Kod | Anlamı | Örnek | | --- | ------ | ----- | | 0 | Başarı | — | | 1 | Komut çalıştı, sonuç olumsuz ∨ beklenmeyen hata | theme check bulgu buldu; ağ hatası; onayda "hayır" (ABORTED) | | 2 | Komut yanlış çağrıldı | eksik argüman, bilinmeyen komut, --yes olmadan onay gerektiren komut | | 3 | Kimlik/yetki | oturum yok ∨ süresi dolmuş; yetki yetersiz |

--json modunda hata gövdesi { ok: false, error: { code, message } } biçimindedir; script error.code ile ayrım yapabilir.


Yapılandırma

Oturum ve aktif mağaza ~/.config/estorepark/config.json altında tutulur. Dosya yalnız sizin okuyabileceğiniz izinlerle yazılır ve token'lar hiçbir log'a, hata çıktısına ∨ --json gövdesine girmez.

| Ortam değişkeni | İşlevi | | --------------- | ------ | | ESP_ENV | Adlandırılmış ortam (--env ile aynı) | | ESTOREPARK_API_BASE | API adresi (--api ile aynı) | | ESTOREPARK_ACCOUNTS_BASE | Kimlik adresi (--accounts ile aynı) | | ESTOREPARK_CONFIG_HOME | Yapılandırma klasörü | | CI | Tanımlıysa tüm interaktif yüzeyler kapanır |

Adlandırılmış ortamlar

Birden fazla ortamla çalışıyorsanız (ör. bir test kurulumu) adreslerini bir kez tanımlayıp adıyla çağırabilirsiniz:

// ~/.config/estorepark/environments.json
{
  "test": {
    "api": "https://admin.ornek-kurulum.com",
    "accounts": "https://accounts.ornek-kurulum.com/gw/oauth"
  }
}
estorepark login --env test
ESP_ENV=test estorepark theme dev      # aynı şey

Her ortamın oturumu ayrı tutulur (environments/<ad>/), yani bir ortama girmek diğerinin oturumunu düşürmez. Adı tanımlı değilse komut çıkış 2 ile durur — sessizce varsayılan ortama bağlanmaz.

Öncelik: --api/--accounts > ESTOREPARK_*_BASE > --env > varsayılan.


Lisans

Tescilli. Bkz. LICENSE.