{"version":3,"file":"ChatCoreImpl.mjs","sources":["../../../src/infra/ChatCoreImpl.ts"],"sourcesContent":["import { defaultApiVersion } from \"../constants\";\nimport { HttpService, HttpServiceImpl } from \"../http/HttpService\";\nimport { EndpointsFactory } from \"./EndpointsFactory\";\nimport { StreamResponse } from \"./StreamResponse\";\nimport {\n  ChatCore,\n  ChatConfig,\n  InternalConfig,\n  MessageRequest,\n  MessageResponse,\n  Endpoints,\n  ApiError,\n} from \"../models\";\nimport { ApiMessageRequest } from \"../models/endpoints/MessageRequest\";\nimport { ApiResponse } from \"../models/http/ApiResponse\";\nimport { QueryParams } from \"../models/http/params\";\nimport { ApiResponseValidator } from \"../validation/ApiResponseValidator\";\n\n/**\n * The primary class for the chat-core library.\n *\n * @internal\n */\nexport class ChatCoreImpl implements ChatCore {\n  private chatConfig: ChatConfig;\n  private httpService: HttpService;\n  private endpoints: Endpoints;\n  private internalConfig: InternalConfig;\n\n  constructor(chatConfig: ChatConfig, internalConfig: InternalConfig = {}) {\n    this.chatConfig = chatConfig;\n    this.httpService = new HttpServiceImpl();\n    this.endpoints =\n      chatConfig.endpoints ?? EndpointsFactory.getEndpoints(this.chatConfig);\n    this.internalConfig = internalConfig;\n  }\n\n  async getNextMessage(request: MessageRequest): Promise<MessageResponse> {\n    const queryParams: QueryParams = { v: defaultApiVersion };\n    const body: ApiMessageRequest = {\n      ...request,\n      version: this.chatConfig.version,\n      promptPackage: this.internalConfig.promptPackage,\n      locationOverride: this.chatConfig.locationOverride,\n    };\n    const rawResponse = await this.httpService.post(\n      this.endpoints.chat,\n      queryParams,\n      body,\n      this.chatConfig.apiKey\n    );\n    const jsonResponse: ApiResponse = await rawResponse.json();\n    if (!rawResponse.ok) {\n      const validationResult = ApiResponseValidator.validate(\n        jsonResponse,\n        rawResponse.status\n      );\n      return validationResult\n        ? Promise.reject(validationResult)\n        : Promise.reject(\n            new ApiError(\n              \"An error occurred while processing request to Chat API.\"\n            )\n          );\n    }\n    return this.createMessageResponse(jsonResponse);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  private createMessageResponse(data: any): MessageResponse {\n    return {\n      conversationId: data.response.conversationId,\n      message: data.response.message,\n      notes: data.response.notes,\n      integrationDetails: data.response.integrationDetails,\n    };\n  }\n\n  async streamNextMessage(request: MessageRequest): Promise<StreamResponse> {\n    const queryParams: QueryParams = { v: defaultApiVersion };\n    const body: ApiMessageRequest = {\n      ...request,\n      version: this.chatConfig.version,\n      promptPackage: this.internalConfig.promptPackage,\n    };\n    const rawResponse = await this.httpService.post(\n      this.endpoints.chatStream,\n      queryParams,\n      body,\n      this.chatConfig.apiKey\n    );\n    return new StreamResponse(rawResponse);\n  }\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAkBA;;;;AAIG;MACU,YAAY,CAAA;AACf,IAAA,UAAU,CAAa;AACvB,IAAA,WAAW,CAAc;AACzB,IAAA,SAAS,CAAY;AACrB,IAAA,cAAc,CAAiB;IAEvC,WAAY,CAAA,UAAsB,EAAE,cAAA,GAAiC,EAAE,EAAA;AACrE,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,SAAS;YACZ,UAAU,CAAC,SAAS,IAAI,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;KACtC;IAED,MAAM,cAAc,CAAC,OAAuB,EAAA;AAC1C,QAAA,MAAM,WAAW,GAAgB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC;AAC1D,QAAA,MAAM,IAAI,GAAsB;AAC9B,YAAA,GAAG,OAAO;AACV,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;AAChC,YAAA,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa;AAChD,YAAA,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB;SACnD,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,EACnB,WAAW,EACX,IAAI,EACJ,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAC;AACF,QAAA,MAAM,YAAY,GAAgB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;AAC3D,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;AACnB,YAAA,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,QAAQ,CACpD,YAAY,EACZ,WAAW,CAAC,MAAM,CACnB,CAAC;AACF,YAAA,OAAO,gBAAgB;AACrB,kBAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC;kBAChC,OAAO,CAAC,MAAM,CACZ,IAAI,QAAQ,CACV,yDAAyD,CAC1D,CACF,CAAC;AACP,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;KACjD;;AAGO,IAAA,qBAAqB,CAAC,IAAS,EAAA;QACrC,OAAO;AACL,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc;AAC5C,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;AAC9B,YAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC1B,YAAA,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB;SACrD,CAAC;KACH;IAED,MAAM,iBAAiB,CAAC,OAAuB,EAAA;AAC7C,QAAA,MAAM,WAAW,GAAgB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC;AAC1D,QAAA,MAAM,IAAI,GAAsB;AAC9B,YAAA,GAAG,OAAO;AACV,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;AAChC,YAAA,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa;SACjD,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAC7C,IAAI,CAAC,SAAS,CAAC,UAAU,EACzB,WAAW,EACX,IAAI,EACJ,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAC;AACF,QAAA,OAAO,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;KACxC;AACF;;;;"}