"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const commander_1 = require("commander");
const init_1 = require("./commands/init");
const generate_1 = require("./commands/generate");
const clone_1 = require("./commands/clone");
const program = new commander_1.Command();
program
    .name('mid-cli')
    .description('中台微服务脚手架命令行工具')
    .version('1.0.0');
// init 命令
program
    .command('init <project-name>')
    .description('创建新项目（full 模板）')
    .option('--force', '强制覆盖已存在的目录')
    .option('--skip-install', '跳过依赖安装')
    .option('-r, --registry <url>', '指定 npm 仓库地址')
    .option('--authorization <auth>', '授权信息 (authorization)')
    .option('--app-id <id>', '应用ID (appId，可选)')
    .option('--description <desc>', '项目描述')
    .option('--author <author>', '作者名称')
    .action(async (projectName, options) => {
    await (0, init_1.init)(projectName, options);
});
// generate 命令
program
    .command('generate <type> <name>')
    .alias('g')
    .description('生成代码文件')
    .option('--register', '自动注册到项目配置')
    .action(async (type, name, options) => {
    await (0, generate_1.generate)(type, name, options);
});
program
    .command('clone [project-version-id]')
    .description('根据 projectVersionId 拉取中台代码并创建本地项目（full 模板）')
    .option('--project-name <name>', '本地项目名称（默认使用中台项目标题）')
    .option('--force', '强制覆盖已存在的目录')
    .option('--skip-install', '跳过依赖安装')
    .option('-r, --registry <url>', '指定 npm 仓库地址')
    .option('--authorization <auth>', '授权信息 (authorization)')
    .action(async (projectVersionId, options) => {
    if (!projectVersionId || !projectVersionId.trim()) {
        console.error('缺少 project-version-id，请使用: mid-cli clone <project-version-id>');
        process.exit(1);
    }
    await (0, clone_1.clone)(projectVersionId, options);
});
program.parse();
//# sourceMappingURL=index.js.map