@evoxapp/plugin-cli paketinin binary adı evox-plugindır.
Kurulum
Node.js 20+ gerekir. Kurulum yapmadannpx ile kullanabilirsiniz:
Dil
CLI mesajları veinit şablonları (README, yorumlar, aksiyon adları, tuş başlıkları) İngilizce veya Türkçe üretilir. Dil şu sırayla seçilir: --lang en|tr > EVOX_PLUGIN_LANG > LC_ALL > LC_MESSAGES > LANG > sistem locale’i (Türkçe ise tr) > en. C ve POSIX locale’i dil seçimi sayılmaz. Geçersiz bir --lang değeri PLUGIN_CLI_LANG_INVALID döner; geçersiz bir EVOX_PLUGIN_LANG değeri yok sayılır. Hata kodları ve JSON çıktı alanlarının adları dile göre değişmez.
Şablon değerleri seçilen dili izler: örneğin yazar adı --lang tr ile Yerel Geliştirici, --lang en ile Local Developer olur. Bu sayfadaki örnekler Türkçe şablonu gösterir.
Komutlar
--plugin-id <uuid> opsiyoneldir; verilmezse otomatik üretilir ve çıktıda gösterilir.
T1 (trusted-node) mı, T2 (sandbox-js) mi? İki init hedefinin akışı farklıdır:
- T1 ·
--runtime trusted-node→manifest.json+runtime.mjsüretir. Doğrudan evoX Eklentiler → Geliştirici penceresinden yüklenir; yerel geliştirme için CLI komutu gerekmez.build/run/sandbox-testbu projede çalışmaz.validate,publish-checkvepackprojeyi Market incelemesi için paketler (aşağıdaki T1 projesini Market incelemesine hazırlama bölümü). Adımlar: Hızlı başlangıç. - T2 · varsayılan (
sandbox-js) →evox-plugin.jsonconfig’i üretir.validate→sandbox-test→build→pack→publish-checkpipeline’ı bu projeler içindir (public upload açılınca yayın hedefi).
T1 (trusted-node) projesi yerel geliştirmede bu komutları kullanmaz; kod değiştirdikçe Geliştirici penceresinden yeniden yükleyerek geliştirir.
sandbox-test statik bir uyum kontrolüdür: sandbox-js kaynağınızı Node/DOM/doğrudan ağ (fetch/WebSocket/XHR) erişimine karşı tarar ve browser bundle’ını doğrular. Yayına göndermeden önce çalıştırın; herhangi bir ihlal fail-closed non-zero çıkış verir (CI/pre-submit için uygun). Gerçek T2 güvenlik sınırı host-owned Electron Chromium Worker’dır; sandbox-test onu tamamlar, yerine geçmez.
evox-plugin.json (sandbox-js/T2 config)
sandbox-js projesinin kök config dosyası. init üretir; pipeline komutları (validate/build/pack/publish-check) bunu okur. (T1 trusted-node projesinde bu dosya yoktur; T1 doğrudan manifest.json + runtime.mjs ile çalışır.)
dependencies.json ayrı tutulur ve validate/pack tarafından envanterlenir.
publish-check moderation, production scanner, signing veya revocation yerine geçmez. Public executable upload hazır olmadığı sürece PLUGIN_UPLOAD_NOT_READY korunur.
T1 projesini Market incelemesine hazırlama
T1 (trusted-node) eklenti Market’e, minify edilmemiş tek bir ESM dosyası olarak girer; inceleme kodu bu dosyada okur. Önce:manifest.json’aplatformsalanını, eklentinin çalıştırdığı her program içindeclaredCommandsve dokunduğu her sistem yolu içindeclaredPathsbeyanlarını ekleyin (bkz. Manifest).- Proje klasöründe
npm installçalıştırın.@evoxapp/plugin-sdkprojeye kurulu olmalı vepackage-lock.jsonbulunmalıdır; bağımlılıkların integrity değeri buradan okunur.
publish-checkmanifest.json’daki runtime girişini bağımlılıklarıyla birlikte tek dosyaya derler, dosyayı beyanlarla karşılaştırır ve bulguları yazar. Paket üretmez.packaynı kontrollerden geçen projeyi.evoxpackyapar. Paket üç dosya taşır:plugin/manifest.json,package-lock.json’dan üretilenplugin/dependencies.jsonveplugin/runtime/plugin.mjs.
Uyarılar paketi durdurmaz ama çıktıda
warnings altında listelenir: komut adı çalışma anında kurulan çağrı (PLUGIN_CLI_COMMAND_UNRESOLVED), kabuk üzerinden çalıştırma (PLUGIN_CLI_SHELL_EXECUTION), bundle’da bulunmayan beyanlı komut (PLUGIN_CLI_COMMAND_UNUSED), declaredPaths dışındaki sistem yolu (PLUGIN_CLI_PATH_UNDECLARED), child_process.fork (PLUGIN_CLI_FORK_USED) ve worker_threads (PLUGIN_CLI_WORKER_THREADS_USED).
