{"version":3,"file":"run.cjs","names":[],"sources":["../../src/utils/run.ts"],"sourcesContent":["import { execa } from \"execa\";\n\ntype RunResult = { stdout: string; stderr: string; exitCode: number };\n\nexport async function run(\n  cmd: string,\n  args: string[],\n  options: {\n    cwd?: string;\n    env?: Record<string, string>;\n    capture?: boolean;\n    onChunk?: (stream: \"stdout\" | \"stderr\", chunk: Buffer) => void;\n  } = {},\n): Promise<RunResult | undefined> {\n  const proc = execa(cmd, args, {\n    cwd: options.cwd,\n    env: options.env ? { ...(process.env as Record<string, string>), ...options.env } : process.env,\n    stdio: options.capture ? \"pipe\" : \"inherit\",\n    reject: false,\n  });\n\n  let capturedStdout = \"\";\n  let capturedStderr = \"\";\n\n  if (options.capture && options.onChunk) {\n    proc.stdout?.on(\"data\", (chunk: Buffer) => {\n      capturedStdout += chunk.toString(\"utf-8\");\n      options.onChunk!(\"stdout\", chunk);\n    });\n    proc.stderr?.on(\"data\", (chunk: Buffer) => {\n      capturedStderr += chunk.toString(\"utf-8\");\n      options.onChunk!(\"stderr\", chunk);\n    });\n  }\n\n  await proc;\n\n  if (!options.capture) {\n    const exitCode = proc.exitCode ?? 0;\n    if (exitCode !== 0) {\n      throw new Error(`${cmd} ${args.join(\" \")} failed with exit code ${exitCode}`);\n    }\n    return;\n  }\n\n  if (options.onChunk) {\n    return {\n      stdout: capturedStdout,\n      stderr: capturedStderr,\n      exitCode: proc.exitCode ?? 0,\n    };\n  }\n\n  const result: RunResult = {\n    stdout: typeof proc.stdout === \"string\" ? proc.stdout : \"\",\n    stderr: typeof proc.stderr === \"string\" ? proc.stderr : \"\",\n    exitCode: proc.exitCode ?? 0,\n  };\n  return result;\n}\n"],"mappings":";;;;AAIA,eAAsB,IACpB,KACA,MACA,UAKI,EAAE,EAC0B;CAChC,MAAM,wBAAa,KAAK,MAAM;EAC5B,KAAK,QAAQ;EACb,KAAK,QAAQ,MAAM;GAAE,GAAI,QAAQ;GAAgC,GAAG,QAAQ;GAAK,GAAG,QAAQ;EAC5F,OAAO,QAAQ,UAAU,SAAS;EAClC,QAAQ;EACT,CAAC;CAEF,IAAI,iBAAiB;CACrB,IAAI,iBAAiB;AAErB,KAAI,QAAQ,WAAW,QAAQ,SAAS;AACtC,OAAK,QAAQ,GAAG,SAAS,UAAkB;AACzC,qBAAkB,MAAM,SAAS,QAAQ;AACzC,WAAQ,QAAS,UAAU,MAAM;IACjC;AACF,OAAK,QAAQ,GAAG,SAAS,UAAkB;AACzC,qBAAkB,MAAM,SAAS,QAAQ;AACzC,WAAQ,QAAS,UAAU,MAAM;IACjC;;AAGJ,OAAM;AAEN,KAAI,CAAC,QAAQ,SAAS;EACpB,MAAM,WAAW,KAAK,YAAY;AAClC,MAAI,aAAa,EACf,OAAM,IAAI,MAAM,GAAG,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,yBAAyB,WAAW;AAE/E;;AAGF,KAAI,QAAQ,QACV,QAAO;EACL,QAAQ;EACR,QAAQ;EACR,UAAU,KAAK,YAAY;EAC5B;AAQH,QAAO;EAJL,QAAQ,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS;EACxD,QAAQ,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS;EACxD,UAAU,KAAK,YAAY;EAEhB"}