{"version":3,"sources":["../src/cli/commands/graphs/list.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { formatFetchError } from \"../../utils/formatFetchError\";\nimport { formatTable } from \"../../utils/formatting\";\nimport { failSpinner } from \"../../utils/spinnerError\";\nimport { buildAuthHeaders } from \"@/internal/api/auth\";\n\nimport { resolveControlPlaneUrl } from \"@/cli/utils/governance/resolveEndpoint\";\nexport const listGraphsCommand = async (options: {\n  dashboardId?: string;\n  format?: string;\n}): Promise<void> => {\n  checkApiKey();\n\n  const apiKey = process.env.LANGWATCH_API_KEY ?? \"\";\n  const endpoint = resolveControlPlaneUrl();\n\n  const spinner = ora(\"Fetching graphs...\").start();\n\n  try {\n    const params = new URLSearchParams();\n    if (options.dashboardId) params.set(\"dashboardId\", options.dashboardId);\n    const qs = params.toString() ? `?${params}` : \"\";\n\n    const response = await fetch(`${endpoint}/api/graphs${qs}`, {\n      headers: buildAuthHeaders({ apiKey }),\n    });\n\n    if (!response.ok) {\n      const message = await formatFetchError(response);\n      spinner.fail(`Failed to fetch graphs: ${message}`);\n      process.exit(1);\n    }\n\n    const graphs = await response.json() as Array<{\n      id: string;\n      name: string;\n      dashboardId: string | null;\n      gridColumn: number;\n      gridRow: number;\n      colSpan: number;\n      rowSpan: number;\n    }>;\n\n    spinner.succeed(`Found ${graphs.length} graph${graphs.length !== 1 ? \"s\" : \"\"}`);\n\n    if (options.format === \"json\") {\n      console.log(JSON.stringify(graphs, null, 2));\n      return;\n    }\n\n    if (graphs.length === 0) {\n      console.log();\n      console.log(chalk.gray(\"No graphs found.\"));\n      console.log(chalk.gray(\"Create one with:\"));\n      console.log(chalk.cyan('  langwatch graph create \"My Graph\" --dashboard-id <id> --graph \\'{\"type\":\"line\"}\\''));\n      return;\n    }\n\n    console.log();\n\n    const tableData = graphs.map((g) => ({\n      Name: g.name,\n      ID: g.id,\n      Dashboard: g.dashboardId ?? chalk.gray(\"—\"),\n      Position: `(${g.gridColumn},${g.gridRow})`,\n      Size: `${g.colSpan}x${g.rowSpan}`,\n    }));\n\n    formatTable({\n      data: tableData,\n      headers: [\"Name\", \"ID\", \"Dashboard\", \"Position\", \"Size\"],\n      colorMap: {\n        Name: chalk.cyan,\n        ID: chalk.green,\n      },\n    });\n\n    console.log();\n  } catch (error) {\n    failSpinner({ spinner, error, action: \"fetch graphs\" });\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAQT,IAAM,oBAAoB,OAAO,YAGnB;AAZrB;AAaE,cAAY;AAEZ,QAAM,UAAS,aAAQ,IAAI,sBAAZ,YAAiC;AAChD,QAAM,WAAW,uBAAuB;AAExC,QAAM,UAAU,IAAI,oBAAoB,EAAE,MAAM;AAEhD,MAAI;AACF,UAAM,SAAS,IAAI,gBAAgB;AACnC,QAAI,QAAQ,YAAa,QAAO,IAAI,eAAe,QAAQ,WAAW;AACtE,UAAM,KAAK,OAAO,SAAS,IAAI,IAAI,MAAM,KAAK;AAE9C,UAAM,WAAW,MAAM,MAAM,GAAG,QAAQ,cAAc,EAAE,IAAI;AAAA,MAC1D,SAAS,iBAAiB,EAAE,OAAO,CAAC;AAAA,IACtC,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,UAAU,MAAM,iBAAiB,QAAQ;AAC/C,cAAQ,KAAK,2BAA2B,OAAO,EAAE;AACjD,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,SAAS,MAAM,SAAS,KAAK;AAUnC,YAAQ,QAAQ,SAAS,OAAO,MAAM,SAAS,OAAO,WAAW,IAAI,MAAM,EAAE,EAAE;AAE/E,QAAI,QAAQ,WAAW,QAAQ;AAC7B,cAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC3C;AAAA,IACF;AAEA,QAAI,OAAO,WAAW,GAAG;AACvB,cAAQ,IAAI;AACZ,cAAQ,IAAI,MAAM,KAAK,kBAAkB,CAAC;AAC1C,cAAQ,IAAI,MAAM,KAAK,kBAAkB,CAAC;AAC1C,cAAQ,IAAI,MAAM,KAAK,mFAAqF,CAAC;AAC7G;AAAA,IACF;AAEA,YAAQ,IAAI;AAEZ,UAAM,YAAY,OAAO,IAAI,CAAC,MAAG;AA9DrC,UAAAA;AA8DyC;AAAA,QACnC,MAAM,EAAE;AAAA,QACR,IAAI,EAAE;AAAA,QACN,YAAWA,MAAA,EAAE,gBAAF,OAAAA,MAAiB,MAAM,KAAK,QAAG;AAAA,QAC1C,UAAU,IAAI,EAAE,UAAU,IAAI,EAAE,OAAO;AAAA,QACvC,MAAM,GAAG,EAAE,OAAO,IAAI,EAAE,OAAO;AAAA,MACjC;AAAA,KAAE;AAEF,gBAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,CAAC,QAAQ,MAAM,aAAa,YAAY,MAAM;AAAA,MACvD,UAAU;AAAA,QACR,MAAM,MAAM;AAAA,QACZ,IAAI,MAAM;AAAA,MACZ;AAAA,IACF,CAAC;AAED,YAAQ,IAAI;AAAA,EACd,SAAS,OAAO;AACd,gBAAY,EAAE,SAAS,OAAO,QAAQ,eAAe,CAAC;AACtD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":["_a"]}