Nuvaka › Geliştirici belgeleri › CLI (nuvaka-ext)

CLI: nuvaka-ext

@nuvaka/extension-cli paketi uzantı oluşturur, denetler, paketler, imzalar ve yayınlar. Node.js 20+ ister. Ana sürümü desteklediği API sürümüdür (1.x = API v1).

npm i -D @nuvaka/extension-cli     # ya da: npx nuvaka-ext …
npx nuvaka-ext --help
npx nuvaka-ext <komut> --help

Genel seçenekler: -h, --help, -v, --version, --json (makine okunur çıktı; CI için). Klasör alan komutlarda klasör konumsal argüman ya da --dir ile verilir; verilmezse geçerli klasör.

Komutlar

KomutNe yapar
init <ad>yeni uzantı iskeleti
lint [klasör|.nvx]sunucuyla aynı kurallarla denetler
pack [klasör]<id>-<sürüm>.nvx paketini üretir
keys create [ad] · keys listEd25519 imza anahtarı üretir / listeler
sign <dosya.nvx>paketi imzalar, base64 imzayı yazar
login --token nvd_…geliştirici token'ını kaydeder
logoutkayıtlı token'ı siler
whoamitoken'ı doğrular, hesabı gösterir
publishpaketler, imzalar, yükler
dev [klasör]geliştirme modu komutunu yazar, değişiklikte lint çalıştırır
test [klasör]uzantının testlerini (vitest) çalıştırır

init

nuvaka-ext init <ad> [--dir <klasör>] [--username <kullanıcı>] [--ui] [--background] [--force]
  • <ad>: 2–40 karakter, küçük harf, rakam, -; ilk karakter harf ya da rakam. Kimlik <kullanıcı-adı>.<ad> olur.
  • --dir: hedef klasör (varsayılan ./<ad>). --force: boş olmayan klasöre yaz.
  • --username: yayıncı kullanıcı adın; verilmezse login bilgisinden alınır, o da yoksa sorulur.
  • --ui / --background: şablon; ikisi de verilmezse ikisi birden.

npm create @nuvaka/extension <ad> -- [seçenekler] aynı komutu çalıştırır.

lint

nuvaka-ext lint [klasör|dosya.nvx] [--dir <klasör>] [--remote] [--key <ad>] [--api <adres>]

Manifest şeması, dosya türleri ve boyutları, yasak kalıplar, nuvaka.<ad> kullanımı ile izin uyumu. Hata varsa çıkış kodu 1. Kontrol listesi: Güvenlik kuralları.

  • --remote: paketi sunucuya gönderip yayınlamadan denetletir (token gerekir).
  • --key: --remote için imza anahtarı (hesabında anahtar kayıtlıysa gerekir).
$ nuvaka-ext lint examples/apps/github-watcher
tarikgkhsn.github-watcher 0.1.0 — 7 dosya, açılmış 16.1 KB, paket 8.1 KB
Tamam: 0 uyarı

pack

nuvaka-ext pack [klasör] [--dir <klasör>] [--out <dosya|klasör>]

Deterministik .nvx üretir (sıralı girişler, sabit zaman) ve SHA-256 ile boyutu yazar. Lint hatası varsa paket üretilmez. Pakete girmeyenler: .git, node_modules, test/tests/__tests__/__mocks__/coverage klasörleri, *.test.*/*.spec.*, nokta dosyaları, *.nvx, kökteki package.json, kilit dosyaları, tsconfig.json/jsconfig.json, vitest.config.*/vite.config.*.

keys ve sign

nuvaka-ext keys create [ad] [--force]    # varsayılan ad: default
nuvaka-ext keys list
nuvaka-ext sign <dosya.nvx> [--key <ad|yol>]

Özel anahtar ~/.config/nuvaka/keys/<ad>.key dosyasına yalnız senin okuyabileceğin izinle (0600) yazılır; ilk anahtar varsayılan olur. Genel anahtarı uygulamada Profil › Geliştirici › Yayıncı imza anahtarları bölümünden hesabına ekle (bu işlem geliştirici token'ıyla yapılamaz, uygulama oturumu gerekir). sign paketin ham 32 baytlık SHA-256 özetini Ed25519 ile imzalar.

login, logout, whoami

nuvaka-ext login --token nvd_… [--api <adres>] [--username <ad>] [--no-verify]
nuvaka-ext logout
nuvaka-ext whoami [--api <adres>]

Token'ı uygulamada Profil › Geliştirici › Geliştirici token'ları'ndan üret; nvd_ ile başlar, bir kez gösterilir, 1 yıl geçerlidir, yalnız yayıncı uçlarında geçer ve istediğin an iptal edilebilir. login token'ı sunucuda doğrular ve ~/.config/nuvaka/credentials.json (0600) dosyasına kaydeder. --no-verify doğrulamadan kaydeder. whoami kullanıcı adını ve uzantılarını listeler.

publish

nuvaka-ext publish [klasör] [--dir <klasör>] [--changelog "…"] [--key <ad|yol>] [--no-sign] [--api <adres>]

Paketler (lint hatası varsa durur), anahtar varsa imzalar ve yükler. Sonuç:

  • published — yayında;
  • review — incelemede (yayıncının ilk uzantısı, kritik izin isteyen sürüm ya da onaylı uzantının yeni sürümü);
  • rejected — reddedildi; tarama bulguları yazılır, çıkış kodu 1.

Anahtar seçimi: --key › NUVAKA_KEY › varsayılan anahtar › tek anahtar. --changelog en çok 2000 karakter. --no-sign imzalamadan yükler (hesabında anahtar kayıtlıysa reddedilir). Paket en çok 20 MB.

dev

nuvaka-ext dev [klasör] [--dir <klasör>]

Klasörü izler ve her değişiklikte lint çalıştırır (Ctrl+C ile çıkılır). Uygulamayı kaynaktan çalıştıranlar için klasörü açılışta yükleyen komutu da yazar:

# generalappclient klasöründe (yalnız debug derleme yükler)
NUVAKA_EXT_DEV_DIR='/yol/merhaba' npm run tauri dev
# PowerShell
$env:NUVAKA_EXT_DEV_DIR="C:\yol\merhaba"; npm run tauri dev

Birden çok klasör işletim sisteminin yol ayırıcısıyla verilir (Linux/macOS :, Windows ;). Klasörler oturum açılışında yüklenir; değişiklikten sonra uygulamada yeniden yükle. Yayınlanmış uygulamada aynı işi Uygulamalar › Uygulamaları yönet › Klasörden yükle yapar (Profil sekmesinde geliştirici modu açıkken).

test

nuvaka-ext test [klasör] [--dir <klasör>] [-- vitest seçenekleri]

Uzantı klasöründe npx vitest run çalıştırır; -- sonrası vitest'e geçer. Testlerde @nuvaka/extension-sdk/testing içindeki sahte nuvaka kullanılır (SDK).

Ortam değişkenleri

DeğişkenAnlamı
NUVAKA_TOKENgeliştirici token'ı (CI); kayıtlı token'ın önüne geçer
NUVAKA_APIAPI adresi (varsayılan https://generalappapi.nuvaka.com)
NUVAKA_KEYimza anahtarının adı ya da dosya yolu
NUVAKA_CONFIG_DIRayar klasörü (varsayılan ~/.config/nuvaka)

CI örneği

# Gizli değişkenler: NUVAKA_TOKEN (nvd_…) ve imza anahtarı dosyası
npm ci
npx nuvaka-ext lint
NUVAKA_KEY=./ci.key npx nuvaka-ext publish --json --changelog "$CHANGELOG"

Nuvaka Apps API v1 · son güncelleme 2026-09-27