/** * Pure-logic inventory of the locale codes a recipe authors content for. * * Consumed by `recipe list --json` so a batch driver (the orchestrator's * batched `recipe_sync` workflow) can scope its localize passes to exactly * the authored languages (`--languages fr-FR,de,…`) instead of pushing * unscoped — on tenants with many registered locales, an unscoped push * fans base-language expansion across every registered regional variant, * which dwarfs the authored surface. * * Codes are returned VERBATIM as authored: a bare base language (`de`) * stays `de` — `--languages` treats a base-language entry as matching * every registered regional variant (see `languageScopeMatches` in * tasks/push.ts), so pass-through preserves the expansion semantics. * * Inventory sources (duck-typed over the parsed `Recipe` union so any * kind carrying one of these shapes contributes): * - `language` / `languages` — SiteRecipe declarations * - `translations` record keys — content-item / page simple mode * - `versions` record keys — content-item / page story mode * - `phrases[*].translations` keys — DictionaryRecipe entries * - `primaryLocale` — DictionaryRecipe * - `fields[]` / `params[]` locale-map defaults (`default` / * `sitecore.defaultValue`) — template kinds */ import type { Recipe } from "../schema/recipe.js"; export declare const collectRecipeLanguages: (recipe: Recipe) => readonly string[];