@estorepark/cli
v0.3.0
Published
EstorePark CLI — tema geliştirme ve yayınlama
Downloads
147
Maintainers
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 --helpNode 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ızDosyaları 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ı yaparKabuk
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 yazarSeç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 pushtaslağı tamamen değiştirir — birleştirmez.theme init/theme pullgörsel ve font indirmez (sunucu yalnız metin dosyası döndürür), bu yüzdeninit→pushturu sunucudaki görselleri siler vepublishbunu canlı yapar.pushher ç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 pushuygulanamayacak (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_IGNOREDveemailDesigns.invalid/emailDesigns.ignored([{ path, reason }]).theme publishcanlı temada uygulanabilir tasarım ya da marka ayarı varsa panele yönlendirir;--json'da koşulluemailDesigns: { 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ı şeyHer 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.
