{"version":3,"sources":["../src/client-sdk/services/traces/traces-api.service.ts"],"sourcesContent":["import type { paths } from \"@/internal/generated/openapi/api-client\";\nimport {\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 type TraceSearchBody = NonNullable<\n  paths[\"/api/traces/search\"][\"post\"][\"requestBody\"]\n>[\"content\"][\"application/json\"];\n\nexport type TraceSearchResponse =\n  paths[\"/api/traces/search\"][\"post\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\ntype TraceGetResponseRaw =\n  paths[\"/api/traces/{traceId}\"][\"get\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\nexport type TraceGetResponse = TraceGetResponseRaw extends string\n  ? TraceGetResponseRaw\n  : TraceGetResponseRaw extends object\n    ? TraceGetResponseRaw & {\n        /** URL to view this trace on the LangWatch platform */\n        platformUrl?: string;\n      }\n    : TraceGetResponseRaw;\n\nexport class TracesApiError extends Error {\n  constructor(\n    message: string,\n    public readonly operation: string,\n    public readonly originalError?: unknown,\n  ) {\n    super(message);\n    this.name = \"TracesApiError\";\n  }\n}\n\nexport class TracesApiService {\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 TracesApiError(message, operation, error);\n  }\n\n  async search(params: TraceSearchBody): Promise<TraceSearchResponse> {\n    const { data, error } = await this.apiClient.POST(\"/api/traces/search\", {\n      body: params,\n    });\n    if (error) this.handleApiError(\"search traces\", error);\n    return data;\n  }\n\n  async get(traceId: string, options?: { format?: \"digest\" | \"json\" }): Promise<TraceGetResponse> {\n    const { data, error } = await this.apiClient.GET(\n      \"/api/traces/{traceId}\",\n      {\n        params: {\n          path: { traceId },\n          query: options,\n        },\n      },\n    );\n    if (error) this.handleApiError(`get trace \"${traceId}\"`, error);\n    return data;\n  }\n}\n"],"mappings":";;;;;;;;;AA8BO,IAAM,iBAAN,cAA6B,MAAM;AAAA,EACxC,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,mBAAN,MAAuB;AAAA,EAG5B,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,eAAe,SAAS,WAAW,KAAK;AAAA,EACpD;AAAA,EAEA,MAAM,OAAO,QAAuD;AAClE,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,KAAK,sBAAsB;AAAA,MACtE,MAAM;AAAA,IACR,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,iBAAiB,KAAK;AACrD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,SAAiB,SAAqE;AAC9F,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU;AAAA,MAC3C;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,UACN,MAAM,EAAE,QAAQ;AAAA,UAChB,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,QAAI,MAAO,MAAK,eAAe,cAAc,OAAO,KAAK,KAAK;AAC9D,WAAO;AAAA,EACT;AACF;","names":[]}