@hypercli/gen
Advanced tools
| /** | ||
| * Show detailed information about a cookbook | ||
| */ | ||
| import { BaseCommand } from "#lib/base-command"; | ||
| export default class CookbookInfo extends BaseCommand<typeof CookbookInfo> { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| json: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| cwd: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>; | ||
| debug: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| static args: { | ||
| cookbook: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| run(): Promise<void>; | ||
| /** | ||
| * Display available cookbooks grouped by kit when a cookbook is not found | ||
| */ | ||
| private suggestAvailableCookbooks; | ||
| } | ||
| //# sourceMappingURL=info.d.ts.map |
| {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/commands/cookbook/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW,CAAC,OAAO,YAAY,CAAC;IACzE,OAAgB,WAAW,SAAgD;IAE3E,OAAgB,QAAQ,WAGtB;IAEF,OAAgB,KAAK;;;;MAMnB;IAEF,OAAgB,IAAI;;MAKlB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAqL1B;;OAEG;YACW,yBAAyB;CAmEvC"} |
| /** | ||
| * Show detailed information about a cookbook | ||
| */ | ||
| import path from "node:path"; | ||
| import { c, s } from "@hypercli/ui/shortcuts"; | ||
| import { Args, Flags } from "@oclif/core"; | ||
| import { BaseCommand } from "#lib/base-command"; | ||
| export default class CookbookInfo extends BaseCommand { | ||
| static description = "Show detailed information about a cookbook"; | ||
| static examples = [ | ||
| "<%= config.bin %> cookbook info starlight", | ||
| "<%= config.bin %> cookbook info @kit/starlight/docs --json", | ||
| ]; | ||
| static flags = { | ||
| ...BaseCommand.baseFlags, | ||
| json: Flags.boolean({ | ||
| description: "Output as JSON", | ||
| default: false, | ||
| }), | ||
| }; | ||
| static args = { | ||
| cookbook: Args.string({ | ||
| description: "Cookbook name or path", | ||
| required: true, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { args, flags } = await this.parse(CookbookInfo); | ||
| try { | ||
| this.log(s.hint(`Searching for cookbook: ${args.cookbook}...`)); | ||
| // 1. Discover all kits | ||
| const generators = await this.discovery.discoverAll(); | ||
| // 2. Find the cookbook in the discovered kits | ||
| let foundCookbook; | ||
| // Helper to match cookbook name | ||
| const targetCookbook = args.cookbook; | ||
| for (const generator of generators) { | ||
| // We only care about kits (generators with cookbooks) | ||
| if (!generator.cookbooks || generator.cookbooks.length === 0) | ||
| continue; | ||
| // Check if this kit contains the requested cookbook | ||
| if (generator.cookbooks.includes(targetCookbook)) { | ||
| // Found it! Now we need the path. | ||
| // We need to re-parse the kit to get the cookbook globs and find the path | ||
| // (GeneratorDiscovery only gives us names) | ||
| // Import from @hypercli/core | ||
| const { parseKitFile, discoverCookbooksInKit } = await import("@hypercli/core"); | ||
| const kitYmlPath = path.join(generator.path, "kit.yml"); | ||
| const parsedKit = await parseKitFile(kitYmlPath); | ||
| if (parsedKit.isValid && parsedKit.config.cookbooks) { | ||
| const cookbooks = await discoverCookbooksInKit(generator.path, parsedKit.config.cookbooks); | ||
| const cookbook = cookbooks.get(targetCookbook); | ||
| if (cookbook) { | ||
| foundCookbook = { | ||
| kitName: generator.name, | ||
| kitPath: generator.path, | ||
| cookbookName: cookbook.config.name, | ||
| cookbookPath: cookbook.dirPath, | ||
| config: cookbook.config, | ||
| }; | ||
| break; // Stop searching once found | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (!foundCookbook) { | ||
| this.log(s.error(`Cookbook not found: ${args.cookbook}`)); | ||
| await this.suggestAvailableCookbooks(generators); | ||
| this.exit(1); | ||
| } | ||
| // 3. Discover recipes in the cookbook | ||
| const { discoverRecipesInCookbook } = await import("@hypercli/core"); | ||
| // Default recipe globs if not specified in cookbook config | ||
| const recipeGlobs = foundCookbook.config.recipes || ["./*/recipe.yml"]; | ||
| const recipeMap = await discoverRecipesInCookbook(foundCookbook.cookbookPath, recipeGlobs); | ||
| const recipePaths = Array.from(recipeMap.values()); | ||
| // 4. Load recipe details | ||
| const recipesWithDetails = []; | ||
| for (const recipePath of recipePaths) { | ||
| try { | ||
| const { recipe } = await this.recipeEngine.loadRecipe(recipePath); | ||
| recipesWithDetails.push(recipe); | ||
| } | ||
| catch (e) { | ||
| // Log warning but continue | ||
| this.warn(`Failed to load recipe at ${recipePath}: ${e instanceof Error ? e.message : String(e)}`); | ||
| } | ||
| } | ||
| // Sort recipes by name | ||
| recipesWithDetails.sort((a, b) => a.name.localeCompare(b.name)); | ||
| if (flags.json) { | ||
| const output = { | ||
| name: foundCookbook.cookbookName, | ||
| kit: foundCookbook.kitName, | ||
| location: foundCookbook.cookbookPath, | ||
| description: foundCookbook.config.description, | ||
| recipes: recipesWithDetails, | ||
| }; | ||
| this.log(JSON.stringify(output, null, 2)); | ||
| return; | ||
| } | ||
| // 5. Display Information | ||
| this.log(""); | ||
| this.log(s.title("Cookbook", foundCookbook.cookbookName)); | ||
| this.log(s.hr()); | ||
| this.log(s.keyValue("Location", s.path(foundCookbook.cookbookPath), 10)); | ||
| this.log(s.keyValue("Kit", c.kit(foundCookbook.kitName), 10)); | ||
| if (foundCookbook.config.description) { | ||
| this.log(s.keyValue("Description", foundCookbook.config.description, 10)); | ||
| } | ||
| this.log(""); | ||
| this.log(s.header("Recipes", recipesWithDetails.length)); | ||
| if (recipesWithDetails.length === 0) { | ||
| this.log(s.description("(No recipes found)", 2)); | ||
| } | ||
| else { | ||
| for (const recipe of recipesWithDetails) { | ||
| this.log(""); | ||
| this.log(s.listItem(c.recipe(recipe.name))); | ||
| if (recipe.description) { | ||
| this.log(s.description(recipe.description)); | ||
| } | ||
| if (recipe.variables && Object.keys(recipe.variables).length > 0) { | ||
| this.log(s.indent(c.helper("Variables:"), 4)); | ||
| for (const [key, variable] of Object.entries(recipe.variables)) { | ||
| const varAny = variable; | ||
| let varLine = c.property(` ${key}`); | ||
| if (varAny.type) { | ||
| varLine += c.subtle(` (${varAny.type})`); | ||
| } | ||
| if (varAny.required) { | ||
| varLine += c.required(" *required*"); | ||
| } | ||
| if (varAny.default !== undefined) { | ||
| varLine += c.default(varAny.default); | ||
| } | ||
| this.log(s.indent(varLine, 4)); | ||
| if (varAny.description) { | ||
| this.log(s.indent(c.text(varAny.description), 6)); | ||
| } | ||
| // Helper to check for enum properties safely | ||
| if (varAny.options && Array.isArray(varAny.options)) { | ||
| this.log(s.indent(c.enum(`Enum: ${varAny.options.map((o) => (typeof o === "object" ? o.value : o)).join(", ")}`), 6)); | ||
| } | ||
| if (varAny.suggestion) { | ||
| this.log(s.indent(c.subtle(`Suggestion: ${varAny.suggestion}`), 6)); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| this.log(""); | ||
| } | ||
| catch (error) { | ||
| this.error(`Failed to get cookbook info: ${error instanceof Error ? error.message : String(error)}`); | ||
| } | ||
| } | ||
| /** | ||
| * Display available cookbooks grouped by kit when a cookbook is not found | ||
| */ | ||
| async suggestAvailableCookbooks(generators) { | ||
| // Collect all cookbooks grouped by kit | ||
| const cookbooksByKit = new Map(); | ||
| for (const generator of generators) { | ||
| if (!generator.cookbooks || generator.cookbooks.length === 0) | ||
| continue; | ||
| const kitCookbooks = []; | ||
| // Try to get cookbook details | ||
| try { | ||
| const { parseKitFile, discoverCookbooksInKit } = await import("@hypercli/core"); | ||
| const kitYmlPath = path.join(generator.path, "kit.yml"); | ||
| const parsedKit = await parseKitFile(kitYmlPath); | ||
| if (parsedKit.isValid && parsedKit.config.cookbooks) { | ||
| const cookbooks = await discoverCookbooksInKit(generator.path, parsedKit.config.cookbooks); | ||
| for (const [name, cookbook] of cookbooks) { | ||
| kitCookbooks.push({ | ||
| name, | ||
| description: cookbook.config.description, | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| catch { | ||
| // Fallback to just names if we can't load details | ||
| for (const cookbookName of generator.cookbooks) { | ||
| kitCookbooks.push({ name: cookbookName }); | ||
| } | ||
| } | ||
| if (kitCookbooks.length > 0) { | ||
| cookbooksByKit.set(generator.name, kitCookbooks); | ||
| } | ||
| } | ||
| if (cookbooksByKit.size === 0) { | ||
| this.log(c.warning("No cookbooks found in any installed kits.")); | ||
| this.log(s.hint("\nInstall a kit with: hypergen kit install <kit>")); | ||
| return; | ||
| } | ||
| this.log(c.title("Available cookbooks:")); | ||
| this.log(s.hr()); | ||
| this.log(""); | ||
| for (const [kitName, cookbooks] of cookbooksByKit) { | ||
| this.log(c.heading(`${kitName}:`)); | ||
| for (const cookbook of cookbooks) { | ||
| const name = c.cookbook(` ${cookbook.name}`); | ||
| if (cookbook.description) { | ||
| this.log(`${name} ${c.subtle(`— ${cookbook.description}`)}`); | ||
| } | ||
| else { | ||
| this.log(name); | ||
| } | ||
| } | ||
| this.log(""); | ||
| } | ||
| this.log(s.hint("Run `hypergen cookbook info <cookbook>` for more details.")); | ||
| } | ||
| } | ||
| //# sourceMappingURL=info.js.map |
| {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/cookbook/info.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * List cookbooks in a kit or all installed cookbooks | ||
| */ | ||
| import { BaseCommand } from "#lib/base-command"; | ||
| export default class CookbookList extends BaseCommand<typeof CookbookList> { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| json: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| kit: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>; | ||
| cwd: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>; | ||
| debug: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| static args: { | ||
| kit: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| }; | ||
| run(): Promise<void>; | ||
| private displayCookbooks; | ||
| } | ||
| //# sourceMappingURL=list.d.ts.map |
| {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/cookbook/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWhD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW,CAAC,OAAO,YAAY,CAAC;IACzE,OAAgB,WAAW,SAAwD;IAEnF,OAAgB,QAAQ,WAItB;IAEF,OAAgB,KAAK;;;;;MAUnB;IAEF,OAAgB,IAAI;;MAKlB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E1B,OAAO,CAAC,gBAAgB;CAgDxB"} |
| /** | ||
| * List cookbooks in a kit or all installed cookbooks | ||
| */ | ||
| import { discoverCookbooksInKit, discoverRecipesInCookbook } from "@hypercli/core"; | ||
| import { c, s } from "@hypercli/ui/shortcuts"; | ||
| import { Args, Flags } from "@oclif/core"; | ||
| import { BaseCommand } from "#lib/base-command"; | ||
| export default class CookbookList extends BaseCommand { | ||
| static description = "List cookbooks in a kit or all installed cookbooks"; | ||
| static examples = [ | ||
| "<%= config.bin %> cookbook list", | ||
| "<%= config.bin %> cookbook list @kit/starlight", | ||
| "<%= config.bin %> cookbook list --json", | ||
| ]; | ||
| static flags = { | ||
| ...BaseCommand.baseFlags, | ||
| json: Flags.boolean({ | ||
| description: "Output as JSON", | ||
| default: false, | ||
| }), | ||
| kit: Flags.string({ | ||
| char: "k", | ||
| description: "Filter by kit name", | ||
| }), | ||
| }; | ||
| static args = { | ||
| kit: Args.string({ | ||
| description: "Kit to list cookbooks from (optional, lists all if omitted)", | ||
| required: false, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { args, flags } = await this.parse(CookbookList); | ||
| try { | ||
| // Discover all kits | ||
| const kits = await this.discovery.discoverAll(); | ||
| // Filter by kit if specified (via arg or flag) | ||
| const kitFilter = args.kit || flags.kit; | ||
| const targetKits = kitFilter | ||
| ? kits.filter((k) => k.name === kitFilter || | ||
| k.name.endsWith(`/${kitFilter}`) || | ||
| k.name === `@kit/${kitFilter}`) | ||
| : kits; | ||
| if (targetKits.length === 0 && kitFilter) { | ||
| this.error(`Kit not found: ${kitFilter}`); | ||
| } | ||
| // Collect cookbooks from all target kits | ||
| const cookbooks = []; | ||
| for (const kit of targetKits) { | ||
| if (!kit.cookbooks || kit.cookbooks.length === 0) { | ||
| continue; | ||
| } | ||
| const kitPath = kit.path; | ||
| const cookbookGlobs = ["./cookbooks/*/cookbook.yml"]; // Default pattern | ||
| try { | ||
| const discoveredCookbooks = await discoverCookbooksInKit(kitPath, cookbookGlobs); | ||
| for (const [cookbookName, cookbook] of discoveredCookbooks) { | ||
| // Discover actual recipe names from the cookbook directory | ||
| const recipeGlobs = cookbook.config.recipes ?? ["./*/recipe.yml"]; | ||
| let recipeNames; | ||
| try { | ||
| const discoveredRecipes = await discoverRecipesInCookbook(cookbook.dirPath, recipeGlobs); | ||
| if (discoveredRecipes.size > 0) { | ||
| recipeNames = Array.from(discoveredRecipes.keys()).sort(); | ||
| } | ||
| } | ||
| catch { | ||
| // If recipe discovery fails, omit the recipes list | ||
| } | ||
| cookbooks.push({ | ||
| name: cookbookName, | ||
| kit: kit.name, | ||
| description: cookbook.config.description, | ||
| version: cookbook.config.version, | ||
| recipes: recipeNames, | ||
| path: cookbook.dirPath, | ||
| }); | ||
| } | ||
| } | ||
| catch (error) { | ||
| // Skip kits that fail to parse | ||
| this.warn(`Failed to discover cookbooks in kit ${kit.name}: ${error}`); | ||
| } | ||
| } | ||
| this.displayCookbooks(cookbooks, flags); | ||
| } | ||
| catch (error) { | ||
| this.error(`Failed to list cookbooks: ${error instanceof Error ? error.message : String(error)}`); | ||
| } | ||
| this.exit(0); | ||
| } | ||
| displayCookbooks(cookbooks, flags) { | ||
| if (flags.json) { | ||
| this.log(JSON.stringify(cookbooks, null, 2)); | ||
| return; | ||
| } | ||
| if (cookbooks.length === 0) { | ||
| this.log(c.warning("No cookbooks found.")); | ||
| this.log(s.hint("\nInstall a kit with: hypergen kit install <kit>")); | ||
| return; | ||
| } | ||
| // Group by kit for display | ||
| const byKit = new Map(); | ||
| for (const cookbook of cookbooks) { | ||
| const kitCookbooks = byKit.get(cookbook.kit) || []; | ||
| kitCookbooks.push(cookbook); | ||
| byKit.set(cookbook.kit, kitCookbooks); | ||
| } | ||
| this.log(s.header("Cookbooks", cookbooks.length)); | ||
| this.log(""); | ||
| for (const [kitName, kitCookbooks] of byKit) { | ||
| this.log(c.kit(`${kitName}:`)); | ||
| for (const cookbook of kitCookbooks) { | ||
| const versionStr = cookbook.version ? ` ${s.version(cookbook.version)}` : ""; | ||
| this.log(s.listItem(c.cookbook(cookbook.name) + versionStr)); | ||
| const bodyLines = []; | ||
| if (cookbook.description) { | ||
| bodyLines.push(s.description(cookbook.description.trim())); | ||
| } | ||
| if (cookbook.recipes && cookbook.recipes.length > 0) { | ||
| const recipeList = cookbook.recipes.map((r) => c.recipe(r)).join(c.muted(", ")); | ||
| if (bodyLines.length > 0) | ||
| bodyLines.push(""); | ||
| bodyLines.push(s.description("Recipes: ") + recipeList); | ||
| } | ||
| if (bodyLines.length > 0) { | ||
| this.log(s.listItemBody(...bodyLines)); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=list.js.map |
| {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/cookbook/list.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Recipe Info command - Show recipe information | ||
| */ | ||
| import { BaseCommand } from "#lib/base-command"; | ||
| export default class RecipeInfo extends BaseCommand<typeof RecipeInfo> { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| json: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| static args: { | ||
| recipe: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } | ||
| //# sourceMappingURL=info.d.ts.map |
| {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/commands/recipe/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW,CAAC,OAAO,UAAU,CAAC;IACrE,OAAgB,WAAW,SAAsC;IAEjE,OAAgB,QAAQ,WAGtB;IAEF,OAAgB,KAAK;;;;MAEnB;IAEF,OAAgB,IAAI;;MAKlB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkE1B"} |
| /** | ||
| * Recipe Info command - Show recipe information | ||
| */ | ||
| import { Args } from "@oclif/core"; | ||
| import { BaseCommand } from "#lib/base-command"; | ||
| import { outputFlags } from "#lib/flags"; | ||
| import { loadRecipe } from "#recipe-engine/recipe-engine"; | ||
| export default class RecipeInfo extends BaseCommand { | ||
| static description = "Show detailed recipe information"; | ||
| static examples = [ | ||
| "<%= config.bin %> <%= command.id %> my-recipe.yml", | ||
| "<%= config.bin %> <%= command.id %> .hyper/kits/component.yml --json", | ||
| ]; | ||
| static flags = { | ||
| ...outputFlags, | ||
| }; | ||
| static args = { | ||
| recipe: Args.string({ | ||
| description: "Path to recipe file (.yml or .yaml)", | ||
| required: true, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { args, flags } = await this.parse(RecipeInfo); | ||
| const recipePath = args.recipe; | ||
| try { | ||
| const result = await loadRecipe(recipePath); | ||
| const recipe = result.recipe; | ||
| if (flags.json) { | ||
| this.log(JSON.stringify(recipe, null, 2)); | ||
| return; | ||
| } | ||
| this.log(`Recipe: ${recipe.name}`); | ||
| this.log(`Version: ${recipe.version || "unversioned"}`); | ||
| if (recipe.description) { | ||
| this.log(`Description: ${recipe.description}`); | ||
| } | ||
| // Variables | ||
| const variables = Object.entries(recipe.variables || {}); | ||
| if (variables.length > 0) { | ||
| this.log(""); | ||
| this.log(`Variables (${variables.length}):`); | ||
| for (const [name, varConfig] of variables) { | ||
| let line = ` - ${name}`; | ||
| if (typeof varConfig === "object" && varConfig !== null) { | ||
| const config = varConfig; | ||
| if (config.type) | ||
| line += ` (${config.type})`; | ||
| if (config.required) | ||
| line += " *required*"; | ||
| if (config.default !== undefined) | ||
| line += ` [default: ${config.default}]`; | ||
| if (config.description) | ||
| line += ` - ${config.description}`; | ||
| } | ||
| this.log(line); | ||
| } | ||
| } | ||
| // Steps | ||
| if (recipe.steps?.length) { | ||
| this.log(""); | ||
| this.log(`Steps (${recipe.steps.length}):`); | ||
| for (let i = 0; i < recipe.steps.length; i++) { | ||
| const step = recipe.steps[i]; | ||
| let line = ` ${i + 1}. ${step.name || `Step ${i + 1}`}`; | ||
| line += ` [${step.tool}]`; | ||
| // Check for condition property (may exist on some step types) | ||
| const stepWithCondition = step; | ||
| if (stepWithCondition.condition) | ||
| line += " (conditional)"; | ||
| this.log(line); | ||
| } | ||
| } | ||
| // Dependencies | ||
| if (recipe.dependencies?.length) { | ||
| this.log(""); | ||
| this.log(`Dependencies (${recipe.dependencies.length}):`); | ||
| for (const dep of recipe.dependencies) { | ||
| this.log(` - ${dep}`); | ||
| } | ||
| } | ||
| } | ||
| catch (error) { | ||
| const message = error instanceof Error ? error.message : String(error); | ||
| this.error(`Failed to read recipe: ${message}`); | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=info.js.map |
| {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/recipe/info.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Recipe List command - List available recipes from all discovered kits | ||
| */ | ||
| import { BaseCommand } from "#lib/base-command"; | ||
| export default class RecipeList extends BaseCommand<typeof RecipeList> { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| kit: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>; | ||
| cookbook: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>; | ||
| json: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>; | ||
| }; | ||
| static args: { | ||
| kit: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>; | ||
| }; | ||
| run(): Promise<void>; | ||
| /** | ||
| * Quick parse a recipe file for display purposes | ||
| */ | ||
| private quickParseRecipe; | ||
| /** | ||
| * Get recipe directories by scanning for recipe.yml files | ||
| */ | ||
| private getRecipeDirs; | ||
| private displayRecipes; | ||
| } | ||
| //# sourceMappingURL=list.d.ts.map |
| {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/recipe/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAahD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW,CAAC,OAAO,UAAU,CAAC;IACrE,OAAgB,WAAW,SAAqD;IAEhF,OAAgB,QAAQ,WAItB;IAEF,OAAgB,KAAK;;;;;;MAUnB;IAEF,OAAgB,IAAI;;MAKlB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAwH1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,cAAc;CA8CtB"} |
| /** | ||
| * Recipe List command - List available recipes from all discovered kits | ||
| */ | ||
| import fs from "node:fs"; | ||
| import path from "node:path"; | ||
| import { c, s } from "@hypercli/ui/shortcuts"; | ||
| import { Args, Flags } from "@oclif/core"; | ||
| import yaml from "js-yaml"; | ||
| import { BaseCommand } from "#lib/base-command"; | ||
| import { outputFlags } from "#lib/flags"; | ||
| export default class RecipeList extends BaseCommand { | ||
| static description = "List available recipes from all discovered kits"; | ||
| static examples = [ | ||
| "<%= config.bin %> <%= command.id %>", | ||
| "<%= config.bin %> <%= command.id %> nextjs", | ||
| "<%= config.bin %> <%= command.id %> --json", | ||
| ]; | ||
| static flags = { | ||
| ...outputFlags, | ||
| kit: Flags.string({ | ||
| char: "k", | ||
| description: "Filter by kit name", | ||
| }), | ||
| cookbook: Flags.string({ | ||
| char: "c", | ||
| description: "Filter by cookbook name", | ||
| }), | ||
| }; | ||
| static args = { | ||
| kit: Args.string({ | ||
| description: "Kit to list recipes from (optional, lists all if omitted)", | ||
| required: false, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { args, flags } = await this.parse(RecipeList); | ||
| try { | ||
| // Discover all kits | ||
| const kits = await this.discovery.discoverAll(); | ||
| // Filter by kit if specified (via arg or flag) | ||
| const kitFilter = args.kit || flags.kit; | ||
| const targetKits = kitFilter | ||
| ? kits.filter((k) => k.name === kitFilter || | ||
| k.name.endsWith(`/${kitFilter}`) || | ||
| k.name === `@kit/${kitFilter}`) | ||
| : kits; | ||
| if (targetKits.length === 0 && kitFilter) { | ||
| this.error(`Kit not found: ${kitFilter}`); | ||
| } | ||
| // Collect recipes from all target kits | ||
| const recipes = []; | ||
| for (const kit of targetKits) { | ||
| // Get recipes from cookbooks | ||
| if (kit.cookbooks && kit.cookbooks.length > 0) { | ||
| const kitPath = kit.path; | ||
| // Look for cookbook directories directly | ||
| const cookbooksDir = path.join(kitPath, "cookbooks"); | ||
| if (!fs.existsSync(cookbooksDir)) { | ||
| continue; | ||
| } | ||
| for (const cookbookName of kit.cookbooks) { | ||
| // Filter by cookbook if specified | ||
| if (flags.cookbook && cookbookName !== flags.cookbook) { | ||
| continue; | ||
| } | ||
| const cookbookDir = path.join(cookbooksDir, cookbookName); | ||
| const cookbookYml = path.join(cookbookDir, "cookbook.yml"); | ||
| if (!fs.existsSync(cookbookYml)) { | ||
| continue; | ||
| } | ||
| // Discover recipes by scanning directories | ||
| const recipeDirs = this.getRecipeDirs(cookbookDir); | ||
| for (const recipeDir of recipeDirs) { | ||
| const recipeName = path.basename(recipeDir); | ||
| const recipePath = path.join(recipeDir, "recipe.yml"); | ||
| if (!fs.existsSync(recipePath)) { | ||
| continue; | ||
| } | ||
| // Quick parse just for display info | ||
| const info = this.quickParseRecipe(recipePath); | ||
| recipes.push({ | ||
| name: recipeName, | ||
| path: recipePath, | ||
| kit: kit.name, | ||
| cookbook: cookbookName, | ||
| description: info.description, | ||
| version: info.version, | ||
| steps: info.steps, | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| // Get direct recipes (not in cookbooks) | ||
| if (kit.recipes && kit.recipes.length > 0) { | ||
| for (const recipeName of kit.recipes) { | ||
| // Try to find the recipe file | ||
| const possiblePaths = [ | ||
| path.join(kit.path, "recipes", recipeName, "recipe.yml"), | ||
| path.join(kit.path, recipeName, "recipe.yml"), | ||
| path.join(kit.path, `${recipeName}.yml`), | ||
| ]; | ||
| for (const recipePath of possiblePaths) { | ||
| if (fs.existsSync(recipePath)) { | ||
| const info = this.quickParseRecipe(recipePath); | ||
| recipes.push({ | ||
| name: recipeName, | ||
| path: recipePath, | ||
| kit: kit.name, | ||
| description: info.description, | ||
| version: info.version, | ||
| steps: info.steps, | ||
| }); | ||
| break; // Found it, stop trying paths | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // Apply cookbook filter to direct recipes too | ||
| if (flags.cookbook) { | ||
| const filteredRecipes = recipes.filter((r) => r.cookbook === flags.cookbook); | ||
| if (filteredRecipes.length === 0) { | ||
| this.error(`Cookbook not found: ${flags.cookbook}`); | ||
| } | ||
| return this.displayRecipes(filteredRecipes, flags); | ||
| } | ||
| this.displayRecipes(recipes, flags); | ||
| } | ||
| catch (error) { | ||
| this.error(`Failed to list recipes: ${error instanceof Error ? error.message : String(error)}`); | ||
| } | ||
| } | ||
| /** | ||
| * Quick parse a recipe file for display purposes | ||
| */ | ||
| quickParseRecipe(recipePath) { | ||
| try { | ||
| const content = fs.readFileSync(recipePath, "utf-8"); | ||
| const parsed = yaml.load(content); | ||
| if (!parsed || typeof parsed !== "object") { | ||
| return {}; | ||
| } | ||
| return { | ||
| description: parsed.description, | ||
| version: parsed.version, | ||
| steps: Array.isArray(parsed.steps) ? parsed.steps.length : undefined, | ||
| }; | ||
| } | ||
| catch { | ||
| return {}; | ||
| } | ||
| } | ||
| /** | ||
| * Get recipe directories by scanning for recipe.yml files | ||
| */ | ||
| getRecipeDirs(cookbookDir) { | ||
| const recipeDirs = []; | ||
| try { | ||
| const entries = fs.readdirSync(cookbookDir, { withFileTypes: true }); | ||
| for (const entry of entries) { | ||
| if (entry.isDirectory()) { | ||
| const recipeYml = path.join(cookbookDir, entry.name, "recipe.yml"); | ||
| if (fs.existsSync(recipeYml)) { | ||
| recipeDirs.push(path.join(cookbookDir, entry.name)); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| catch { | ||
| // Ignore errors | ||
| } | ||
| return recipeDirs; | ||
| } | ||
| displayRecipes(recipes, flags) { | ||
| if (flags.json) { | ||
| this.log(JSON.stringify(recipes, null, 2)); | ||
| return; | ||
| } | ||
| if (recipes.length === 0) { | ||
| this.log(c.warning("No recipes found.")); | ||
| this.log(s.hint("\nInstall a kit with: hypergen kit install <kit>")); | ||
| return; | ||
| } | ||
| // Group by kit for display | ||
| const byKit = new Map(); | ||
| for (const recipe of recipes) { | ||
| const kitRecipes = byKit.get(recipe.kit) || []; | ||
| kitRecipes.push(recipe); | ||
| byKit.set(recipe.kit, kitRecipes); | ||
| } | ||
| this.log(s.header("Available recipes", recipes.length)); | ||
| this.log(""); | ||
| for (const [kitName, kitRecipes] of byKit) { | ||
| this.log(c.kit(`${kitName}:`)); | ||
| // Group by cookbook within kit | ||
| const byCookbook = new Map(); | ||
| for (const recipe of kitRecipes) { | ||
| const cbRecipes = byCookbook.get(recipe.cookbook) || []; | ||
| cbRecipes.push(recipe); | ||
| byCookbook.set(recipe.cookbook, cbRecipes); | ||
| } | ||
| for (const [cookbookName, cbRecipes] of byCookbook) { | ||
| const prefix = cookbookName ? c.cookbook(` ${cookbookName}/`) : c.subtle(" (direct)/"); | ||
| for (const recipe of cbRecipes) { | ||
| this.log(` ${prefix}${c.recipe(recipe.name)}`); | ||
| if (recipe.description) { | ||
| this.log(s.description(recipe.description)); | ||
| } | ||
| } | ||
| } | ||
| this.log(""); | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=list.js.map |
| {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/recipe/list.ts"],"names":[],"mappings":"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"} |
+274
-4
@@ -25,3 +25,3 @@ { | ||
| "name": "cwd", | ||
| "default": "/home/runner/work/hyper-coding/hyper-coding/packages/gen", | ||
| "default": "/work/hyper/packages/gen", | ||
| "hasDynamicHelp": false, | ||
@@ -108,2 +108,272 @@ "multiple": false, | ||
| }, | ||
| "cookbook:info": { | ||
| "aliases": [], | ||
| "args": { | ||
| "cookbook": { | ||
| "description": "Cookbook name or path", | ||
| "name": "cookbook", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Show detailed information about a cookbook", | ||
| "examples": [ | ||
| "<%= config.bin %> cookbook info starlight", | ||
| "<%= config.bin %> cookbook info @kit/starlight/docs --json" | ||
| ], | ||
| "flags": { | ||
| "cwd": { | ||
| "description": "Working directory", | ||
| "name": "cwd", | ||
| "default": "/work/hyper/packages/gen", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "debug": { | ||
| "char": "d", | ||
| "description": "Enable debug output", | ||
| "env": "DEBUG", | ||
| "name": "debug", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "json": { | ||
| "description": "Output as JSON", | ||
| "name": "json", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| } | ||
| }, | ||
| "hasDynamicHelp": false, | ||
| "hiddenAliases": [], | ||
| "id": "cookbook:info", | ||
| "pluginAlias": "@hypercli/gen", | ||
| "pluginName": "@hypercli/gen", | ||
| "pluginType": "core", | ||
| "strict": true, | ||
| "enableJsonFlag": false, | ||
| "isESM": true, | ||
| "relativePath": [ | ||
| "dist", | ||
| "commands", | ||
| "cookbook", | ||
| "info.js" | ||
| ] | ||
| }, | ||
| "cookbook:list": { | ||
| "aliases": [], | ||
| "args": { | ||
| "kit": { | ||
| "description": "Kit to list cookbooks from (optional, lists all if omitted)", | ||
| "name": "kit", | ||
| "required": false | ||
| } | ||
| }, | ||
| "description": "List cookbooks in a kit or all installed cookbooks", | ||
| "examples": [ | ||
| "<%= config.bin %> cookbook list", | ||
| "<%= config.bin %> cookbook list @kit/starlight", | ||
| "<%= config.bin %> cookbook list --json" | ||
| ], | ||
| "flags": { | ||
| "cwd": { | ||
| "description": "Working directory", | ||
| "name": "cwd", | ||
| "default": "/work/hyper/packages/gen", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "debug": { | ||
| "char": "d", | ||
| "description": "Enable debug output", | ||
| "env": "DEBUG", | ||
| "name": "debug", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "json": { | ||
| "description": "Output as JSON", | ||
| "name": "json", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "kit": { | ||
| "char": "k", | ||
| "description": "Filter by kit name", | ||
| "name": "kit", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| } | ||
| }, | ||
| "hasDynamicHelp": false, | ||
| "hiddenAliases": [], | ||
| "id": "cookbook:list", | ||
| "pluginAlias": "@hypercli/gen", | ||
| "pluginName": "@hypercli/gen", | ||
| "pluginType": "core", | ||
| "strict": true, | ||
| "enableJsonFlag": false, | ||
| "isESM": true, | ||
| "relativePath": [ | ||
| "dist", | ||
| "commands", | ||
| "cookbook", | ||
| "list.js" | ||
| ] | ||
| }, | ||
| "recipe:info": { | ||
| "aliases": [], | ||
| "args": { | ||
| "recipe": { | ||
| "description": "Path to recipe file (.yml or .yaml)", | ||
| "name": "recipe", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Show detailed recipe information", | ||
| "examples": [ | ||
| "<%= config.bin %> <%= command.id %> my-recipe.yml", | ||
| "<%= config.bin %> <%= command.id %> .hyper/kits/component.yml --json" | ||
| ], | ||
| "flags": { | ||
| "cwd": { | ||
| "description": "Working directory", | ||
| "name": "cwd", | ||
| "default": "/work/hyper/packages/gen", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "debug": { | ||
| "char": "d", | ||
| "description": "Enable debug output", | ||
| "env": "DEBUG", | ||
| "name": "debug", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "json": { | ||
| "description": "Output as JSON", | ||
| "name": "json", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "verbose": { | ||
| "char": "v", | ||
| "description": "Verbose output", | ||
| "name": "verbose", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "quiet": { | ||
| "char": "q", | ||
| "description": "Quiet output", | ||
| "name": "quiet", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| } | ||
| }, | ||
| "hasDynamicHelp": false, | ||
| "hiddenAliases": [], | ||
| "id": "recipe:info", | ||
| "pluginAlias": "@hypercli/gen", | ||
| "pluginName": "@hypercli/gen", | ||
| "pluginType": "core", | ||
| "strict": true, | ||
| "enableJsonFlag": false, | ||
| "isESM": true, | ||
| "relativePath": [ | ||
| "dist", | ||
| "commands", | ||
| "recipe", | ||
| "info.js" | ||
| ] | ||
| }, | ||
| "recipe:list": { | ||
| "aliases": [], | ||
| "args": { | ||
| "kit": { | ||
| "description": "Kit to list recipes from (optional, lists all if omitted)", | ||
| "name": "kit", | ||
| "required": false | ||
| } | ||
| }, | ||
| "description": "List available recipes from all discovered kits", | ||
| "examples": [ | ||
| "<%= config.bin %> <%= command.id %>", | ||
| "<%= config.bin %> <%= command.id %> nextjs", | ||
| "<%= config.bin %> <%= command.id %> --json" | ||
| ], | ||
| "flags": { | ||
| "cwd": { | ||
| "description": "Working directory", | ||
| "name": "cwd", | ||
| "default": "/work/hyper/packages/gen", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "debug": { | ||
| "char": "d", | ||
| "description": "Enable debug output", | ||
| "env": "DEBUG", | ||
| "name": "debug", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "json": { | ||
| "description": "Output as JSON", | ||
| "name": "json", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "verbose": { | ||
| "char": "v", | ||
| "description": "Verbose output", | ||
| "name": "verbose", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "quiet": { | ||
| "char": "q", | ||
| "description": "Quiet output", | ||
| "name": "quiet", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "kit": { | ||
| "char": "k", | ||
| "description": "Filter by kit name", | ||
| "name": "kit", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "cookbook": { | ||
| "char": "c", | ||
| "description": "Filter by cookbook name", | ||
| "name": "cookbook", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| } | ||
| }, | ||
| "hasDynamicHelp": false, | ||
| "hiddenAliases": [], | ||
| "id": "recipe:list", | ||
| "pluginAlias": "@hypercli/gen", | ||
| "pluginName": "@hypercli/gen", | ||
| "pluginType": "core", | ||
| "strict": true, | ||
| "enableJsonFlag": false, | ||
| "isESM": true, | ||
| "relativePath": [ | ||
| "dist", | ||
| "commands", | ||
| "recipe", | ||
| "list.js" | ||
| ] | ||
| }, | ||
| "recipe:run": { | ||
@@ -130,3 +400,3 @@ "aliases": [], | ||
| "name": "cwd", | ||
| "default": "/home/runner/work/hyper-coding/hyper-coding/packages/gen", | ||
| "default": "/work/hyper/packages/gen", | ||
| "hasDynamicHelp": false, | ||
@@ -255,3 +525,3 @@ "multiple": false, | ||
| "name": "cwd", | ||
| "default": "/home/runner/work/hyper-coding/hyper-coding/packages/gen", | ||
| "default": "/work/hyper/packages/gen", | ||
| "hasDynamicHelp": false, | ||
@@ -313,3 +583,3 @@ "multiple": false, | ||
| }, | ||
| "version": "0.2.3" | ||
| "version": "0.3.0" | ||
| } |
+4
-4
| { | ||
| "name": "@hypercli/gen", | ||
| "version": "0.2.3", | ||
| "version": "0.3.0", | ||
| "type": "module", | ||
@@ -90,5 +90,5 @@ "description": "Code generation engine for HyperDev", | ||
| "@clack/prompts": "^0.11.0", | ||
| "@hypercli/core": "^0.2.3", | ||
| "@hypercli/kit": "^0.2.3", | ||
| "@hypercli/ui": "^0.2.3", | ||
| "@hypercli/core": "^0.3.0", | ||
| "@hypercli/kit": "^0.3.0", | ||
| "@hypercli/ui": "^0.3.0", | ||
| "@jig-lang/jig": "^1.0.1", | ||
@@ -95,0 +95,0 @@ "@oclif/core": "^4", |
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 3 instances in 1 package
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 3 instances in 1 package
1349967
5.03%306
5.52%20192
5.24%+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
Updated
Updated
Updated