Hoppa till innehållet
Sonenta

CLI

v0.2.1 · npm · MIT

@sonenta/cli

En liten, skriptbar kommandorad för allt du annars skulle klicka dig igenom i dashboarden: importera ett befintligt i18next-projekt, pusha och hämta översättningar, jämför CI mot fjärrservern, publicera en CDN-release och ta en snapshot av buntarna för en offline-first-build. MIT, på npm.

Brytande · 0.1 → 0.2

Hela CLI:t körs nu på MCP-ytan, så det behöver en API-nyckel med scopet mcp:* — projektbegränsade nycklar returnerar 403. Generera en i dashboarden under Org Settings → API Keys och återutfärda alla nycklar du använde med 0.1.

Installera

Endast npm — det finns ingen Homebrew-formel för CLI:t. Kräver Node 18 eller senare och installerar kommandot sonenta.

terminal
1# installera en gång, globalt2npm i -g @sonenta/cli 4# eller kör utan att installera5npx @sonenta/cli <command>

Autentisera

Varje anrop skickar Authorization: ApiKey <prefix>.<secret> med scopet mcp:*. Logga in en gång för att lagra nyckeln i ~/.sonenta/credentials, eller sätt SONENTA_TOKEN i CI.

terminal
1# interaktivt — lagrar nyckeln per värd i ~/.sonenta/credentials (0600)2sonenta login --host https://api.sonenta.com3API key: snt_live_••••••••.••••••••••••••••4✓ sparad för https://api.sonenta.com 6# CI — ingen prompt, nyckeln läses från miljön7export SONENTA_TOKEN=snt_live_<prefix>.<secret>8sonenta push

Upplösningsordning, den första vinner: miljövariabeln SONENTA_TOKEN, sedan ~/.sonenta/credentials för den aktiva värden. Skapa nyckeln under Org Settings → API Keys med scopet mcp:*.

Konfigurera

sonenta init skriver en sonenta.config.json i ditt repo (löses ut genom att gå uppåt från arbetskatalogen). Autentiseringsuppgifter lagras separat, per användare, och checkas aldrig in.

sonenta.config.json
1# incheckad i ditt repo — inga hemligheter här2{3  "host": "https://api.sonenta.com",4  "project_uuid": "<project_uuid>",5  "version_slug": "main"6}
~/.sonenta/credentials
1# ~/.sonenta/credentials — läge 0600, per användare, checka aldrig in2{ "default": "https://api.sonenta.com",3  "hosts": {4    "https://api.sonenta.com": { "api_key": "snt_live_..." }5  } }

version_slug är som standard main. Håll API-nyckeln utanför sonenta.config.json — den hör enbart hemma i autentiseringsfilen eller i SONENTA_TOKEN.

Kommandon

Grupperade efter vad du gör — ställa in autentisering och konfiguration, inspektera ett projekt eller synka översättningar. Varje kommando körs mot MCP-ytan och respekterar sonenta.config.json.

Autentisering & konfiguration

sonenta login Lagra en API-nyckel för en värd.

Flaggor

  • --host <url> API-värd att autentisera mot.
  • --token <key> Skicka nyckeln icke-interaktivt i stället för via prompten.

Exempel

sonenta login --host https://api.sonenta.com
sonenta logout Ta bort lagrade autentiseringsuppgifter för en värd.

Flaggor

Inga flaggor.

Exempel

sonenta logout
sonenta whoami Visa den aktiva värden och en maskerad nyckel.

Flaggor

Inga flaggor.

Exempel

sonenta whoami
sonenta init Skapa en grund-sonenta.config.json för ett projekt.

Flaggor

  • --project <uuid> Projektets UUID att skriva in i konfigurationen (obligatoriskt).
  • --version <slug> Versions-slug att rikta in sig på (standard main).
  • --force Skriv över en befintlig konfigurationsfil.

Exempel

sonenta init --project <uuid> --version main

Inspektera

sonenta projects list Lista de projekt din nyckel kan nå.

Flaggor

Inga flaggor.

Exempel

sonenta projects list
sonenta keys list Lista nycklar som namespace_slug/key_name.

Flaggor

  • --namespace <slug> Begränsa till ett namespace.

Exempel

sonenta keys list --namespace common
sonenta status Jämför din lokala locales/ mot fjärrservern.

Flaggor

  • --language <code> Begränsa jämförelsen till ett språk.
  • --namespace <slug> Begränsa jämförelsen till ett namespace.
  • --src <dir> Källkatalog (standard locales).

Exempel

sonenta status
sonenta missing Lista nycklar som saknas och upptäckts vid körning.

Flaggor

  • --language <code> Filtrera efter språk.
  • --namespace <slug> Filtrera efter namespace.
  • --limit <n> Sätt ett tak för antalet rader.

Exempel

sonenta missing --limit 50

Import & synk

sonenta import <files...> Engångsimport av i18next — nästlad eller platt; skapar nycklar, upsertar översättningar, idempotent.

Flaggor

  • --dry-run Endast förhandsgranskning; skickar ingenting.
  • --status <draft|translated> Inkommande status (standard translated).
  • --language <code> Tvinga fram språket i stället för att härleda det från sökvägen.
  • --namespace <slug> Tvinga fram namespace (obligatoriskt för en naken <lang>.json).
  • --version <slug> Rikta in sig på en icke-standardversion.

Exempel

sonenta import locales/fr/common.json
sonenta push Pusha hela det lokala locales/-trädet i ett enda importanrop.

Flaggor

  • --src <dir> Källkatalog (standard locales).
  • --dry-run Endast förhandsgranskning; skickar ingenting.
  • --status <state> Inkommande status (standard translated).

Exempel

sonenta push --dry-run
sonenta pull Skriv fjärröversättningar till locales/<lang>/<namespace>.json (platt).

Flaggor

  • --language <code> Begränsa till ett språk.
  • --namespace <slug> Begränsa till ett namespace.
  • --dest <dir> Målkatalog (standard locales).

Exempel

sonenta pull --language fr
sonenta export Exportera som i18next-JSON — platt som standard, --nested för träd.

Flaggor

  • --nested Producera nästlade träd i stället för platta nycklar.
  • --out <dir> Skriv filer till en katalog i stället för till stdout.

Exempel

sonenta export --nested --out ./dump
sonenta releases publish Utlös en CDN-release; prenumererande SDK:er uppdateras live.

Flaggor

  • --version <slug> Version att publicera (standard main).
  • --dry-run Endast förhandsgranskning; publicerar ingenting.

Exempel

sonenta releases publish
sonenta snapshot Hämta de publika CDN-buntarna till en build-tids-modul för SDK:ns offline-first-fallback.

Flaggor

  • --format <ts|json> Utdataformat: ts (standard) eller json.
  • --out <file> Skriv till en fil i stället för till stdout.
  • --cdn <base> CDN-bas (standard https://cdn.sonenta.com).

Exempel

sonenta snapshot --out src/sonenta-bundles.ts

Varje kommando accepterar även --host <url> för att åsidosätta den konfigurerade API-värden under en enda körning.

Brytande ändringar 0.1 → 0.2

Uppgraderar du från 0.1? Två ändringar kräver åtgärd.

Härnäst