{"version":3,"sources":["../src/command.ts"],"names":[],"mappings":";;;AA+BO,MAAe,oBAAoB,OAAQ,CAAA;AAAA,EAChD,OAAO,EAAK,GAAA,MAAA;AAAA,EACZ,OAAO,WAAc,GAAA,cAAA;AAAA,EACrB,OAAO,UAAoB,EAAC;AAAA,EAE5B,OAAO,KAAQ,GAAA;AAAA,IACb,MAAM,KAAM,CAAA,IAAA,CAAK,EAAC,IAAA,EAAM,KAAI,CAAA;AAAA,IAC5B,IAAA,EAAM,MAAM,OAAQ,CAAA,EAAC,MAAM,GAAK,EAAA,WAAA,EAAa,yBAAwB,CAAA;AAAA,IACrE,UAAA,EAAY,MAAM,OAAQ,CAAA,EAAC,MAAM,GAAK,EAAA,WAAA,EAAa,4BAA2B,CAAA;AAAA,IAC9E,MAAA,EAAQ,MAAM,OAAQ,CAAA,EAAC,MAAM,GAAK,EAAA,WAAA,EAAa,qCAAoC;AAAA,GACrF;AAAA,EAEA,MAAM,OAA2B,GAAA;AAC/B,IAAM,MAAA,KAAA,GAAS,KAAK,WAAmC,CAAA,EAAA;AACvD,IAAM,MAAA,IAAA,GAAO,MAAM,IAAK,CAAA,MAAA,CAAO,WAAW,KAAO,EAAA,CAAC,QAAQ,CAAC,CAAA;AAC3D,IAAA,OAAO,OAAO,IAAI,CAAA;AAAA;AACpB,EAEU,kBAAkB,KAA4B,EAAA;AACtD,IAAO,OAAA;AAAA,MACL,QAAA,EAAU,MAAM,IAAQ,IAAA,KAAA;AAAA,MACxB,UAAA,EAAY,MAAM,IAAQ,IAAA,KAAA;AAAA,MAC1B,OAAA,EAAS,KAAM,CAAA,UAAU,CAAK,IAAA,KAAA;AAAA,MAC9B,MAAA,EAAQ,MAAM,MAAU,IAAA;AAAA,KAC1B;AAAA;AACF,EAEU,WAAY,CAAA,KAAA,EAAgB,MAAS,GAAA,KAAA,EAAO,WAAW,CAAU,EAAA;AACzE,IAAA,MAAM,eAAe,KAAiB,YAAA,KAAA,GAAQ,KAAM,CAAA,OAAA,GAAU,OAAO,KAAK,CAAA;AAC1E,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA,IAAI,aAAa,CAAG,EAAA;AAClB,QAAA,IAAA,CAAK,MAAM,YAAY,CAAA;AAAA,OAClB,MAAA;AACL,QAAA,OAAA,CAAQ,MAAM,YAAY,CAAA;AAC1B,QAAA,IAAA,CAAK,KAAK,QAAQ,CAAA;AAAA;AACpB,KACK,MAAA;AACL,MAAA,IAAA,CAAK,KAAK,QAAQ,CAAA;AAAA;AACpB;AACF,EAEA,MAAgB,OAAuC,OAA6C,EAAA;AAClG,IAAA,MAAM,OAAU,GAAA,OAAO,OAAY,KAAA,QAAA,GAAW,UAAU,OAAQ,CAAA,OAAA;AAChE,IAAA,MAAM,SAAY,GAAA,MAAM,OAAQ,CAAA,EAAC,SAAQ,CAAA;AACzC,IAAA,OAAO,EAAC,SAAS,EAAA;AAAA;AAErB","file":"command.mjs","sourcesContent":["import {confirm} from '@inquirer/prompts';\nimport {Command, Flags} from '@oclif/core';\n\nimport {SearchOptions} from './types';\n\nexport interface PromptOptions {\n  type: string;\n  name: string;\n  message: string;\n  default?: boolean;\n}\n\n// Command line specific options\nexport interface CommandOptions extends SearchOptions {\n  showHelp: boolean;\n  jsonOutput: boolean;\n  noColor: boolean;\n  silent: boolean;\n  source?: string;\n  target?: string;\n  recursive?: boolean;\n  force?: boolean;\n  dryRun?: boolean;\n  app?: string;\n  pattern?: string;\n  overwrite?: boolean;\n  detailed?: boolean;\n  tableFormat?: boolean;\n  interactive?: boolean;\n}\n\nexport abstract class BaseCommand extends Command {\n  static id = 'base';\n  static description = 'Base command';\n  static aliases: string[] = [];\n\n  static flags = {\n    help: Flags.help({char: 'h'}),\n    json: Flags.boolean({char: 'j', description: 'Output in JSON format'}),\n    'no-color': Flags.boolean({char: 'n', description: 'Disable colorized output'}),\n    silent: Flags.boolean({char: 's', description: 'Suppress all output except errors'}),\n  };\n\n  async getHelp(): Promise<string> {\n    const cmdId = (this.constructor as typeof BaseCommand).id;\n    const help = await this.config.runCommand(cmdId, ['--help']);\n    return String(help);\n  }\n\n  protected getCommandOptions(flags: any): CommandOptions {\n    return {\n      showHelp: flags.help || false,\n      jsonOutput: flags.json || false,\n      noColor: flags['no-color'] || false,\n      silent: flags.silent || false,\n    };\n  }\n\n  protected handleError(error: unknown, silent = false, exitCode = 2): never {\n    const errorMessage = error instanceof Error ? error.message : String(error);\n    if (!silent) {\n      if (exitCode === 2) {\n        this.error(errorMessage);\n      } else {\n        console.error(errorMessage);\n        this.exit(exitCode);\n      }\n    } else {\n      this.exit(exitCode);\n    }\n  }\n\n  protected async prompt<T extends {confirmed: boolean}>(options: string | PromptOptions): Promise<T> {\n    const message = typeof options === 'string' ? options : options.message;\n    const confirmed = await confirm({message});\n    return {confirmed} as T;\n  }\n}\n"]}