{"version":3,"sources":["../src/cli/commands/projects/list.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { ProjectsApiService } from \"@/client-sdk/services/projects/projects-api.service\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { formatTable } from \"../../utils/formatting\";\nimport { failSpinner } from \"../../utils/spinnerError\";\n\nexport const listProjectsCommand = async (options?: {\n  page?: number;\n  limit?: number;\n  format?: string;\n}): Promise<void> => {\n  checkApiKey();\n\n  const service = new ProjectsApiService();\n  const spinner = ora(\"Fetching projects...\").start();\n\n  try {\n    const result = await service.list({ page: options?.page, limit: options?.limit });\n\n    spinner.succeed(`Found ${result.data.length} project${result.data.length !== 1 ? \"s\" : \"\"} (page ${result.pagination.page}/${result.pagination.totalPages})`);\n\n    if (options?.format === \"json\") {\n      console.log(JSON.stringify(result, null, 2));\n      return;\n    }\n\n    if (result.data.length === 0) {\n      console.log();\n      console.log(chalk.gray(\"No projects yet.\"));\n      console.log(chalk.gray(\"Create one with:\"));\n      console.log(chalk.cyan('  langwatch projects create --name \"my-project\" --language python --framework langchain --new-team-name \"my-team\"'));\n      return;\n    }\n\n    console.log();\n\n    const tableData = result.data.map((p) => ({\n      ID: p.id,\n      Name: p.name,\n      Slug: p.slug,\n      Language: p.language,\n      Framework: p.framework,\n      Created: new Date(p.createdAt).toLocaleDateString(),\n    }));\n\n    formatTable({\n      data: tableData,\n      headers: [\"ID\", \"Name\", \"Slug\", \"Language\", \"Framework\", \"Created\"],\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 projects get <id>\")} to see full project details.`,\n      ),\n    );\n  } catch (error) {\n    failSpinner({ spinner, error, action: \"fetch projects\" });\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAMT,IAAM,sBAAsB,OAAO,YAIrB;AACnB,cAAY;AAEZ,QAAM,UAAU,IAAI,mBAAmB;AACvC,QAAM,UAAU,IAAI,sBAAsB,EAAE,MAAM;AAElD,MAAI;AACF,UAAM,SAAS,MAAM,QAAQ,KAAK,EAAE,MAAM,mCAAS,MAAM,OAAO,mCAAS,MAAM,CAAC;AAEhF,YAAQ,QAAQ,SAAS,OAAO,KAAK,MAAM,WAAW,OAAO,KAAK,WAAW,IAAI,MAAM,EAAE,UAAU,OAAO,WAAW,IAAI,IAAI,OAAO,WAAW,UAAU,GAAG;AAE5J,SAAI,mCAAS,YAAW,QAAQ;AAC9B,cAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC3C;AAAA,IACF;AAEA,QAAI,OAAO,KAAK,WAAW,GAAG;AAC5B,cAAQ,IAAI;AACZ,cAAQ,IAAI,MAAM,KAAK,kBAAkB,CAAC;AAC1C,cAAQ,IAAI,MAAM,KAAK,kBAAkB,CAAC;AAC1C,cAAQ,IAAI,MAAM,KAAK,mHAAmH,CAAC;AAC3I;AAAA,IACF;AAEA,YAAQ,IAAI;AAEZ,UAAM,YAAY,OAAO,KAAK,IAAI,CAAC,OAAO;AAAA,MACxC,IAAI,EAAE;AAAA,MACN,MAAM,EAAE;AAAA,MACR,MAAM,EAAE;AAAA,MACR,UAAU,EAAE;AAAA,MACZ,WAAW,EAAE;AAAA,MACb,SAAS,IAAI,KAAK,EAAE,SAAS,EAAE,mBAAmB;AAAA,IACpD,EAAE;AAEF,gBAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,CAAC,MAAM,QAAQ,QAAQ,YAAY,aAAa,SAAS;AAAA,MAClE,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,6BAA6B,CAAC;AAAA,MAClD;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,gBAAY,EAAE,SAAS,OAAO,QAAQ,iBAAiB,CAAC;AACxD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}