{"version":3,"file":"deploy.mjs","names":[],"sources":["../../../src/cli/render/deploy.ts"],"sourcesContent":["import type { DeployLegs } from \"../../services/deploy/legs\";\nimport { colors, icons } from \"../../utils/theme\";\n\nconst DEPLOY_LEG_NAMES = [\"image\", \"smoke\", \"railway\"] as const;\n\n/** The per-leg ✓/-/✗ table under a deploy result. */\nexport function renderDeployLegs(legs: DeployLegs | undefined): void {\n  if (!legs) return;\n  const rows: Array<readonly [string, DeployLegs[\"image\"]]> = DEPLOY_LEG_NAMES.map((name) => [\n    name,\n    legs[name],\n  ]);\n  console.log();\n  for (const [name, leg] of rows) {\n    if (!leg) continue;\n    const mark =\n      leg.status === \"ok\"\n        ? colors.green(icons.ok)\n        : leg.status === \"skipped\"\n          ? colors.dim(\"-\")\n          : colors.error(icons.err);\n    console.log(`  ${mark} ${name}${leg.detail ? colors.dim(` ${leg.detail}`) : \"\"}`);\n  }\n}\n\n/** Names of the failed deploy legs — the exit-code signal. */\nexport function failedDeployLegs(legs: DeployLegs | undefined): string[] {\n  if (!legs) return [];\n  return DEPLOY_LEG_NAMES.filter((name) => legs[name]?.status === \"failed\");\n}\n"],"mappings":";;;AAGA,MAAM,mBAAmB;CAAC;CAAS;CAAS;AAAS;;AAGrD,SAAgB,iBAAiB,MAAoC;CACnE,IAAI,CAAC,MAAM;CACX,MAAM,OAAsD,iBAAiB,KAAK,SAAS,CACzF,MACA,KAAK,KACP,CAAC;CACD,QAAQ,IAAI;CACZ,KAAK,MAAM,CAAC,MAAM,QAAQ,MAAM;EAC9B,IAAI,CAAC,KAAK;EACV,MAAM,OACJ,IAAI,WAAW,OACX,OAAO,MAAM,MAAM,EAAE,IACrB,IAAI,WAAW,YACb,OAAO,IAAI,GAAG,IACd,OAAO,MAAM,MAAM,GAAG;EAC9B,QAAQ,IAAI,KAAK,KAAK,GAAG,OAAO,IAAI,SAAS,OAAO,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI;CAClF;AACF;;AAGA,SAAgB,iBAAiB,MAAwC;CACvE,IAAI,CAAC,MAAM,OAAO,CAAC;CACnB,OAAO,iBAAiB,QAAQ,SAAS,KAAK,KAAK,EAAE,WAAW,QAAQ;AAC1E"}