{"version":3,"sources":["../src/cli/commands/virtual-keys/list.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { VirtualKeysApiService } from \"@/client-sdk/services/virtual-keys/virtual-keys-api.service\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { formatTable } from \"../../utils/formatting\";\nimport { failSpinner } from \"../../utils/spinnerError\";\nimport { formatScope } from \"./_shared\";\n\nexport const listVirtualKeysCommand = async (options?: { format?: string }): Promise<void> => {\n  checkApiKey();\n\n  const service = new VirtualKeysApiService();\n  const spinner = ora(\"Fetching virtual keys...\").start();\n\n  try {\n    const keys = await service.list();\n\n    spinner.succeed(`Found ${keys.length} virtual key${keys.length !== 1 ? \"s\" : \"\"}`);\n\n    if (options?.format === \"json\") {\n      console.log(JSON.stringify(keys, null, 2));\n      return;\n    }\n\n    if (keys.length === 0) {\n      console.log();\n      console.log(chalk.gray(\"No virtual keys yet.\"));\n      console.log(chalk.gray(\"Create one with:\"));\n      console.log(chalk.cyan('  langwatch virtual-keys create --name \"my-key\" --scope ORG:<slug>'));\n      return;\n    }\n\n    console.log();\n\n    const tableData = keys.map((vk) => ({\n      ID: vk.id,\n      Name: vk.name,\n      Env: vk.environment === \"live\" ? chalk.yellow(\"live\") : chalk.gray(\"test\"),\n      Status: vk.status === \"ACTIVE\" ? chalk.green(\"active\") : chalk.red(\"revoked\"),\n      Prefix: `${vk.prefix}...${vk.last_four}`,\n      Scopes: vk.scopes.map(formatScope).join(\", \") || chalk.gray(\"—\"),\n      \"Last used\": vk.last_used_at ? new Date(vk.last_used_at).toLocaleDateString() : chalk.gray(\"—\"),\n    }));\n\n    formatTable({\n      data: tableData,\n      headers: [\"ID\", \"Name\", \"Env\", \"Status\", \"Prefix\", \"Scopes\", \"Last used\"],\n      colorMap: {\n        Name: chalk.cyan,\n        ID: chalk.gray,\n      },\n    });\n\n    console.log();\n    console.log(\n      chalk.gray(\n        `Use ${chalk.cyan(\"langwatch virtual-keys get <id>\")} to see scopes, routing policy, and config.`,\n      ),\n    );\n  } catch (error) {\n    failSpinner({ spinner, error, action: \"fetch virtual keys\" });\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAOT,IAAM,yBAAyB,OAAO,YAAiD;AAC5F,cAAY;AAEZ,QAAM,UAAU,IAAI,sBAAsB;AAC1C,QAAM,UAAU,IAAI,0BAA0B,EAAE,MAAM;AAEtD,MAAI;AACF,UAAM,OAAO,MAAM,QAAQ,KAAK;AAEhC,YAAQ,QAAQ,SAAS,KAAK,MAAM,eAAe,KAAK,WAAW,IAAI,MAAM,EAAE,EAAE;AAEjF,SAAI,mCAAS,YAAW,QAAQ;AAC9B,cAAQ,IAAI,KAAK,UAAU,MAAM,MAAM,CAAC,CAAC;AACzC;AAAA,IACF;AAEA,QAAI,KAAK,WAAW,GAAG;AACrB,cAAQ,IAAI;AACZ,cAAQ,IAAI,MAAM,KAAK,sBAAsB,CAAC;AAC9C,cAAQ,IAAI,MAAM,KAAK,kBAAkB,CAAC;AAC1C,cAAQ,IAAI,MAAM,KAAK,oEAAoE,CAAC;AAC5F;AAAA,IACF;AAEA,YAAQ,IAAI;AAEZ,UAAM,YAAY,KAAK,IAAI,CAAC,QAAQ;AAAA,MAClC,IAAI,GAAG;AAAA,MACP,MAAM,GAAG;AAAA,MACT,KAAK,GAAG,gBAAgB,SAAS,MAAM,OAAO,MAAM,IAAI,MAAM,KAAK,MAAM;AAAA,MACzE,QAAQ,GAAG,WAAW,WAAW,MAAM,MAAM,QAAQ,IAAI,MAAM,IAAI,SAAS;AAAA,MAC5E,QAAQ,GAAG,GAAG,MAAM,MAAM,GAAG,SAAS;AAAA,MACtC,QAAQ,GAAG,OAAO,IAAI,WAAW,EAAE,KAAK,IAAI,KAAK,MAAM,KAAK,QAAG;AAAA,MAC/D,aAAa,GAAG,eAAe,IAAI,KAAK,GAAG,YAAY,EAAE,mBAAmB,IAAI,MAAM,KAAK,QAAG;AAAA,IAChG,EAAE;AAEF,gBAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,CAAC,MAAM,QAAQ,OAAO,UAAU,UAAU,UAAU,WAAW;AAAA,MACxE,UAAU;AAAA,QACR,MAAM,MAAM;AAAA,QACZ,IAAI,MAAM;AAAA,MACZ;AAAA,IACF,CAAC;AAED,YAAQ,IAAI;AACZ,YAAQ;AAAA,MACN,MAAM;AAAA,QACJ,OAAO,MAAM,KAAK,iCAAiC,CAAC;AAAA,MACtD;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,gBAAY,EAAE,SAAS,OAAO,QAAQ,qBAAqB,CAAC;AAC5D,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}