{
  "version": 3,
  "sources": ["../../../../src/packages/cli-utils/recursiveSummary.ts"],
  "sourcesContent": ["import { PnpmError } from '../error/index.ts';\n\ntype ActionFailure = {\n  status: 'failure';\n  duration?: number | undefined;\n  prefix?: string;\n  message?: string;\n  error?: Error;\n};\n\ntype ActionPassed = {\n  status: 'passed';\n  duration?: number | undefined;\n  prefix?: never;\n  message?: never;\n  error?: never;\n};\n\ntype ActionQueued = {\n  status: 'queued';\n  duration?: number | undefined;\n  prefix?: never;\n  message?: never;\n  error?: never;\n};\n\ntype ActionRunning = {\n  status: 'running' | 'passed';\n  duration?: number | undefined;\n  prefix?: never;\n  message?: never;\n};\n\ntype ActionSkipped = {\n  status: 'skipped';\n  duration?: number | undefined;\n  prefix?: never;\n  message?: never;\n};\n\nexport type RecursiveSummary = Record<\n  string,\n  ActionPassed | ActionQueued | ActionRunning | ActionSkipped | ActionFailure\n>;\n\nclass RecursiveFailError extends PnpmError {\n  readonly failures: ActionFailure[];\n  readonly passes: number;\n\n  constructor(\n    command: string,\n    recursiveSummary: RecursiveSummary,\n    failures: ActionFailure[]\n  ) {\n    super(\n      'RECURSIVE_FAIL',\n      `\"${command}\" failed in ${failures.length} packages`\n    );\n\n    this.failures = failures;\n    this.passes = Object.values(recursiveSummary).filter(\n      ({ status }) => status === 'passed'\n    ).length;\n  }\n}\n\nexport function throwOnCommandFail(\n  command: string,\n  recursiveSummary: RecursiveSummary\n): void {\n  const failures = Object.values(recursiveSummary).filter(\n    (\n      summary: RecursiveSummary[keyof RecursiveSummary]\n    ): summary is ActionFailure => {\n      return summary.status === 'failure';\n    }\n  );\n\n  if (failures.length > 0) {\n    throw new RecursiveFailError(command, recursiveSummary, failures);\n  }\n}\n"],
  "mappings": "AAAA,SAAS,iBAAiB;AA6C1B,MAAM,2BAA2B,UAAU;AAAA,EAChC;AAAA,EACA;AAAA,EAET,YACE,SACA,kBACA,UACA;AACA;AAAA,MACE;AAAA,MACA,IAAI,OAAO,eAAe,SAAS,MAAM;AAAA,IAC3C;AAEA,SAAK,WAAW;AAChB,SAAK,SAAS,OAAO,OAAO,gBAAgB,EAAE;AAAA,MAC5C,CAAC,EAAE,OAAO,MAAM,WAAW;AAAA,IAC7B,EAAE;AAAA,EACJ;AACF;AAEO,SAAS,mBACd,SACA,kBACM;AACN,QAAM,WAAW,OAAO,OAAO,gBAAgB,EAAE;AAAA,IAC/C,CACE,YAC6B;AAC7B,aAAO,QAAQ,WAAW;AAAA,IAC5B;AAAA,EACF;AAEA,MAAI,SAAS,SAAS,GAAG;AACvB,UAAM,IAAI,mBAAmB,SAAS,kBAAkB,QAAQ;AAAA,EAClE;AACF;",
  "names": []
}
