{"version":3,"sources":["../src/client-sdk/services/dashboards/dashboards-api.service.ts"],"sourcesContent":["import {\n  createLangWatchApiClient,\n  type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\nimport {\n  extractStatusFromResponse,\n  formatApiErrorForOperation,\n} from \"@/client-sdk/services/_shared/format-api-error\";\n\nexport interface DashboardSummary {\n  id: string;\n  name: string;\n  order: number;\n  graphCount: number;\n  createdAt: string;\n  updatedAt: string;\n  platformUrl?: string;\n}\n\nexport interface DashboardDetail {\n  id: string;\n  name: string;\n  order: number;\n  graphs: unknown[];\n  createdAt: string;\n  updatedAt: string;\n  platformUrl?: string;\n}\n\nexport class DashboardsApiError extends Error {\n  constructor(\n    message: string,\n    public readonly operation: string,\n    public readonly originalError?: unknown,\n  ) {\n    super(message);\n    this.name = \"DashboardsApiError\";\n  }\n}\n\nexport class DashboardsApiService {\n  private readonly apiClient: LangwatchApiClient;\n\n  constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n    this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n  }\n\n  private handleApiError(operation: string, error: unknown): never {\n    const message = formatApiErrorForOperation({ operation: operation, error: error, options: {\n      status: extractStatusFromResponse(error),\n    } });\n    throw new DashboardsApiError(message, operation, error);\n  }\n\n  async list(): Promise<{ data: DashboardSummary[] }> {\n    const { data, error } = await this.apiClient.GET(\"/api/dashboards\");\n    if (error) this.handleApiError(\"list dashboards\", error);\n    return data as unknown as { data: DashboardSummary[] };\n  }\n\n  async get(id: string): Promise<DashboardDetail> {\n    const { data, error } = await this.apiClient.GET(\"/api/dashboards/{id}\", {\n      params: { path: { id } },\n    });\n    if (error) this.handleApiError(`get dashboard \"${id}\"`, error);\n    return data as unknown as DashboardDetail;\n  }\n\n  async create(params: { name: string }): Promise<DashboardDetail> {\n    const { data, error } = await this.apiClient.POST(\"/api/dashboards\", {\n      body: params,\n    });\n    if (error) this.handleApiError(\"create dashboard\", error);\n    return data as unknown as DashboardDetail;\n  }\n\n  async rename(id: string, params: { name: string }): Promise<DashboardDetail> {\n    const { data, error } = await this.apiClient.PATCH(\"/api/dashboards/{id}\", {\n      params: { path: { id } },\n      body: params,\n    });\n    if (error) this.handleApiError(`rename dashboard \"${id}\"`, error);\n    return data as unknown as DashboardDetail;\n  }\n\n  async delete(id: string): Promise<{ id: string; name: string }> {\n    const { data, error } = await this.apiClient.DELETE(\"/api/dashboards/{id}\", {\n      params: { path: { id } },\n    });\n    if (error) this.handleApiError(`delete dashboard \"${id}\"`, error);\n    return data as unknown as { id: string; name: string };\n  }\n}\n"],"mappings":";;;;;;;;;AA8BO,IAAM,qBAAN,cAAiC,MAAM;AAAA,EAC5C,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,uBAAN,MAA2B;AAAA,EAGhC,YAAY,QAAqD;AA5CnE;AA6CI,SAAK,aAAY,sCAAQ,uBAAR,YAA8B,yBAAyB;AAAA,EAC1E;AAAA,EAEQ,eAAe,WAAmB,OAAuB;AAC/D,UAAM,UAAU,2BAA2B,EAAE,WAAsB,OAAc,SAAS;AAAA,MACxF,QAAQ,0BAA0B,KAAK;AAAA,IACzC,EAAE,CAAC;AACH,UAAM,IAAI,mBAAmB,SAAS,WAAW,KAAK;AAAA,EACxD;AAAA,EAEA,MAAM,OAA8C;AAClD,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,iBAAiB;AAClE,QAAI,MAAO,MAAK,eAAe,mBAAmB,KAAK;AACvD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,IAAsC;AAC9C,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,wBAAwB;AAAA,MACvE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AAAA,IACzB,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,kBAAkB,EAAE,KAAK,KAAK;AAC7D,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAAoD;AAC/D,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,KAAK,mBAAmB;AAAA,MACnE,MAAM;AAAA,IACR,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,oBAAoB,KAAK;AACxD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAAY,QAAoD;AAC3E,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,MAAM,wBAAwB;AAAA,MACzE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AAAA,MACvB,MAAM;AAAA,IACR,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,qBAAqB,EAAE,KAAK,KAAK;AAChE,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAAmD;AAC9D,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,OAAO,wBAAwB;AAAA,MAC1E,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AAAA,IACzB,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,qBAAqB,EAAE,KAAK,KAAK;AAChE,WAAO;AAAA,EACT;AACF;","names":[]}