{"version":3,"sources":["../src/client-sdk/services/scenarios/errors.ts","../src/client-sdk/services/scenarios/scenarios-api.service.ts"],"sourcesContent":["export class ScenariosApiError extends Error {\n  constructor(\n    message: string,\n    public readonly operation: string,\n    public readonly originalError?: unknown,\n  ) {\n    super(message);\n    this.name = \"ScenariosApiError\";\n  }\n}\n","import type {\n  CreateScenarioBody,\n  DeleteScenarioResponse,\n  ScenarioResponse,\n  UpdateScenarioBody,\n} from \"./types\";\nimport {\n  createLangWatchApiClient,\n  type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\nimport { ScenariosApiError } from \"./errors\";\nimport {\n  extractStatusFromResponse,\n  formatApiErrorForOperation,\n} from \"@/client-sdk/services/_shared/format-api-error\";\n\nexport class ScenariosApiService {\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 ScenariosApiError(message, operation, error);\n  }\n\n  async getAll(): Promise<ScenarioResponse[]> {\n    const { data, error } = await this.apiClient.GET(\"/api/scenarios\");\n    if (error) this.handleApiError(\"fetch all scenarios\", error);\n    return data;\n  }\n\n  async get(id: string): Promise<ScenarioResponse> {\n    const { data, error } = await this.apiClient.GET(\"/api/scenarios/{id}\", {\n      params: { path: { id } },\n    });\n    if (error)\n      this.handleApiError(`fetch scenario with ID \"${id}\"`, error);\n    return data;\n  }\n\n  async create(params: CreateScenarioBody): Promise<ScenarioResponse> {\n    const { data, error } = await this.apiClient.POST(\"/api/scenarios\", {\n      body: params,\n    });\n    if (error) this.handleApiError(\"create scenario\", error);\n    return data;\n  }\n\n  async update(id: string, params: UpdateScenarioBody): Promise<ScenarioResponse> {\n    const { data, error } = await this.apiClient.PUT(\"/api/scenarios/{id}\", {\n      params: { path: { id } },\n      body: params,\n    });\n    if (error)\n      this.handleApiError(`update scenario with ID \"${id}\"`, error);\n    return data;\n  }\n\n  async delete(id: string): Promise<DeleteScenarioResponse> {\n    const { data, error } = await this.apiClient.DELETE(\n      \"/api/scenarios/{id}\",\n      {\n        params: { path: { id } },\n      },\n    );\n    if (error)\n      this.handleApiError(`delete scenario with ID \"${id}\"`, error);\n    return data;\n  }\n}\n"],"mappings":";;;;;;;;;AAAO,IAAM,oBAAN,cAAgC,MAAM;AAAA,EAC3C,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;;;ACQO,IAAM,sBAAN,MAA0B;AAAA,EAG/B,YAAY,QAAqD;AApBnE;AAqBI,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,kBAAkB,SAAS,WAAW,KAAK;AAAA,EACvD;AAAA,EAEA,MAAM,SAAsC;AAC1C,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,gBAAgB;AACjE,QAAI,MAAO,MAAK,eAAe,uBAAuB,KAAK;AAC3D,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,IAAuC;AAC/C,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,uBAAuB;AAAA,MACtE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AAAA,IACzB,CAAC;AACD,QAAI;AACF,WAAK,eAAe,2BAA2B,EAAE,KAAK,KAAK;AAC7D,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAAuD;AAClE,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,KAAK,kBAAkB;AAAA,MAClE,MAAM;AAAA,IACR,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,mBAAmB,KAAK;AACvD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAAY,QAAuD;AAC9E,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,uBAAuB;AAAA,MACtE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AAAA,MACvB,MAAM;AAAA,IACR,CAAC;AACD,QAAI;AACF,WAAK,eAAe,4BAA4B,EAAE,KAAK,KAAK;AAC9D,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAA6C;AACxD,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU;AAAA,MAC3C;AAAA,MACA;AAAA,QACE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AAAA,MACzB;AAAA,IACF;AACA,QAAI;AACF,WAAK,eAAe,4BAA4B,EAAE,KAAK,KAAK;AAC9D,WAAO;AAAA,EACT;AACF;","names":[]}