@opens/gateways 1.14.0 → 1.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -19,6 +19,7 @@ import { ListContactHistoryRequest, ContactHistoryResponse } from './call-report
19
19
  export { ContactHistoryIndex, ContactHistorySortOrder, ContactInteractionResponse, InteractionCallStepResponse, InteractionChatStepResponse, InteractionMemberResponse, InteractionOrganizationResponse } from './call-report/contracts/index.mjs';
20
20
  import { GetCommentHistoryRequest, CommentHistoryPage, CasePermissions, UpdateCasePermissionsRequest, GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './cases/contracts/index.mjs';
21
21
  export { CasePermissionsValue, CommentHistoryChangeType, CommentHistoryCursor, CommentHistoryEntry } from './cases/contracts/index.mjs';
22
+ export { Event } from './rh/contracts/index.mjs';
22
23
 
23
24
  /**
24
25
  * Gateway for interacting with the Customer Service API.
@@ -478,6 +479,15 @@ declare class CasesGateway {
478
479
  getCaseFeedByActions(payload: GetCaseFeedByActionsRequest): Promise<CaseFeedByActionItem[]>;
479
480
  }
480
481
 
482
+ /**
483
+ * Gateway for interacting with the RH API.
484
+ */
485
+ declare class RhGateway {
486
+ private readonly httpClient;
487
+ private readonly baseUrl;
488
+ constructor(httpClient: AxiosInstance, baseUrl: string);
489
+ }
490
+
481
491
  /**
482
492
  * Maps service identifiers to their corresponding gateway types.
483
493
  * Used by the `gateway()` function to infer the correct return type
@@ -497,6 +507,7 @@ type GatewayMap = {
497
507
  'chat-webservice': ChatWebserviceGateway;
498
508
  'call-report': CallReportGateway;
499
509
  cases: CasesGateway;
510
+ rh: RhGateway;
500
511
  };
501
512
  /**
502
513
  * Parameters required to configure the SDK client.
@@ -539,6 +550,9 @@ interface GatewayClientParams {
539
550
  cases?: {
540
551
  baseUrl: string;
541
552
  };
553
+ rh?: {
554
+ baseUrl: string;
555
+ };
542
556
  };
543
557
  }
544
558
 
@@ -553,6 +567,7 @@ declare const SERVICE_GATEWAYS: {
553
567
  readonly CHAT_WEBSERVICE: "chat-webservice";
554
568
  readonly CALL_REPORT: "call-report";
555
569
  readonly CASES: "cases";
570
+ readonly RH: "rh";
556
571
  };
557
572
  type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];
558
573
 
package/dist/index.d.ts CHANGED
@@ -19,6 +19,7 @@ import { ListContactHistoryRequest, ContactHistoryResponse } from './call-report
19
19
  export { ContactHistoryIndex, ContactHistorySortOrder, ContactInteractionResponse, InteractionCallStepResponse, InteractionChatStepResponse, InteractionMemberResponse, InteractionOrganizationResponse } from './call-report/contracts/index.js';
20
20
  import { GetCommentHistoryRequest, CommentHistoryPage, CasePermissions, UpdateCasePermissionsRequest, GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './cases/contracts/index.js';
21
21
  export { CasePermissionsValue, CommentHistoryChangeType, CommentHistoryCursor, CommentHistoryEntry } from './cases/contracts/index.js';
22
+ export { Event } from './rh/contracts/index.js';
22
23
 
23
24
  /**
24
25
  * Gateway for interacting with the Customer Service API.
@@ -478,6 +479,15 @@ declare class CasesGateway {
478
479
  getCaseFeedByActions(payload: GetCaseFeedByActionsRequest): Promise<CaseFeedByActionItem[]>;
479
480
  }
480
481
 
482
+ /**
483
+ * Gateway for interacting with the RH API.
484
+ */
485
+ declare class RhGateway {
486
+ private readonly httpClient;
487
+ private readonly baseUrl;
488
+ constructor(httpClient: AxiosInstance, baseUrl: string);
489
+ }
490
+
481
491
  /**
482
492
  * Maps service identifiers to their corresponding gateway types.
483
493
  * Used by the `gateway()` function to infer the correct return type
@@ -497,6 +507,7 @@ type GatewayMap = {
497
507
  'chat-webservice': ChatWebserviceGateway;
498
508
  'call-report': CallReportGateway;
499
509
  cases: CasesGateway;
510
+ rh: RhGateway;
500
511
  };
501
512
  /**
502
513
  * Parameters required to configure the SDK client.
@@ -539,6 +550,9 @@ interface GatewayClientParams {
539
550
  cases?: {
540
551
  baseUrl: string;
541
552
  };
553
+ rh?: {
554
+ baseUrl: string;
555
+ };
542
556
  };
543
557
  }
544
558
 
@@ -553,6 +567,7 @@ declare const SERVICE_GATEWAYS: {
553
567
  readonly CHAT_WEBSERVICE: "chat-webservice";
554
568
  readonly CALL_REPORT: "call-report";
555
569
  readonly CASES: "cases";
570
+ readonly RH: "rh";
556
571
  };
557
572
  type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];
558
573
 
package/dist/index.js CHANGED
@@ -827,6 +827,16 @@ var CasesGateway = class {
827
827
  }
828
828
  };
829
829
 
830
+ // src/rh/index.ts
831
+ var RhGateway = class {
832
+ constructor(httpClient, baseUrl) {
833
+ this.httpClient = httpClient;
834
+ this.baseUrl = baseUrl;
835
+ }
836
+ httpClient;
837
+ baseUrl;
838
+ };
839
+
830
840
  // src/@common/client.ts
831
841
  var import_axios = __toESM(require("axios"));
832
842
  var SDKGateways = class {
@@ -840,7 +850,8 @@ var SDKGateways = class {
840
850
  chatWebservice;
841
851
  callReport;
842
852
  cases;
843
- constructor(customerService, chatConfig, campaigns, chatAdapter, assets, contactList, integrations, chatWebservice, callReport, cases) {
853
+ rh;
854
+ constructor(customerService, chatConfig, campaigns, chatAdapter, assets, contactList, integrations, chatWebservice, callReport, cases, rh) {
844
855
  this.customerService = customerService;
845
856
  this.chatConfig = chatConfig;
846
857
  this.campaigns = campaigns;
@@ -851,6 +862,7 @@ var SDKGateways = class {
851
862
  this.chatWebservice = chatWebservice;
852
863
  this.callReport = callReport;
853
864
  this.cases = cases;
865
+ this.rh = rh;
854
866
  }
855
867
  };
856
868
  function createClient(params) {
@@ -869,6 +881,7 @@ function createClient(params) {
869
881
  const chatWebservice = params.services.chatWebservice ? new ChatWebserviceGateway(httpClient, params.services.chatWebservice.baseUrl) : null;
870
882
  const callReport = params.services.callReport ? new CallReportGateway(httpClient, params.services.callReport.baseUrl) : null;
871
883
  const cases = params.services.cases ? new CasesGateway(httpClient, params.services.cases.baseUrl) : null;
884
+ const rh = params.services.rh ? new RhGateway(httpClient, params.services.rh.baseUrl) : null;
872
885
  return new SDKGateways(
873
886
  customerService,
874
887
  chatConfig,
@@ -879,7 +892,8 @@ function createClient(params) {
879
892
  integrations,
880
893
  chatWebservice,
881
894
  callReport,
882
- cases
895
+ cases,
896
+ rh
883
897
  );
884
898
  }
885
899
 
@@ -894,7 +908,8 @@ var SERVICE_GATEWAYS = {
894
908
  INTEGRATIONS: "integrations",
895
909
  CHAT_WEBSERVICE: "chat-webservice",
896
910
  CALL_REPORT: "call-report",
897
- CASES: "cases"
911
+ CASES: "cases",
912
+ RH: "rh"
898
913
  };
899
914
 
900
915
  // src/index.ts
@@ -954,6 +969,10 @@ function gateway(service) {
954
969
  if (!sdk.client.cases)
955
970
  throw new Error(`Service 'cases' is not configured. Provide its baseUrl in configure().`);
956
971
  return sdk.client.cases;
972
+ case SERVICE_GATEWAYS.RH:
973
+ if (!sdk.client.rh)
974
+ throw new Error(`Service 'rh' is not configured. Provide its baseUrl in configure().`);
975
+ return sdk.client.rh;
957
976
  default:
958
977
  throw new Error(`Unknown service gateway: ${service}`);
959
978
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/customer-service/index.ts","../src/chat-config/index.ts","../src/campaigns/index.ts","../src/chat-adapter/index.ts","../src/assets/index.ts","../src/contact-list/index.ts","../src/integrations/index.ts","../src/chat-webservice/index.ts","../src/call-report/index.ts","../src/cases/index.ts","../src/@common/client.ts","../src/@common/enums.ts"],"sourcesContent":["import { createClient, SDKGatewaysInterface, GatewayClientParams, GatewayMap } from './@common/client';\nimport { SERVICE_GATEWAYS } from './@common/enums';\n\nexport { SERVICE_GATEWAYS };\nexport type { SERVICE_GATEWAYS as SERVICE_GATEWAYS_TYPE } from './@common/enums';\n\nclass SDK {\n client: SDKGatewaysInterface | null = null;\n\n configure(params: GatewayClientParams) {\n this.client = createClient(params);\n }\n}\nconst sdk = new SDK();\n\n/**\n * Initializes the SDK with the required configuration parameters.\n * Must be called before using {@link gateway}.\n */\nexport const configure = (params: GatewayClientParams) => {\n sdk.configure(params);\n};\n\n/**\n * Returns the gateway instance for the specified service.\n *\n * @typeParam T - A service identifier key from {@link GatewayMap}.\n * @param service - The service identifier (e.g. `SERVICE_GATEWAYS.CUSTOMER_SERVICE`).\n * @returns The corresponding gateway instance with all its methods.\n * @throws {Error} If the SDK has not been configured via {@link configure}.\n * @throws {Error} If an unknown service identifier is provided.\n *\n * @example\n * ```ts\n * configure({ axiosClient, apiToken: '...', services: { customerService: { baseUrl: '...' } } });\n * const customer = gateway('customer-service');\n * const company = await customer.getCompanyById('123');\n * ```\n */\nexport function gateway<T extends keyof GatewayMap>(service: T): GatewayMap[T];\nexport function gateway(service: SERVICE_GATEWAYS) {\n if (!sdk.client)\n throw new Error(\n 'SDK not configured. Please call configure() with the appropriate parameters before using the SDK.',\n );\n\n switch (service) {\n case SERVICE_GATEWAYS.CUSTOMER_SERVICE:\n if (!sdk.client.customerService)\n throw new Error(`Service 'customer-service' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.customerService;\n case SERVICE_GATEWAYS.CHAT_CONFIG:\n if (!sdk.client.chatConfig)\n throw new Error(`Service 'chat-config' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatConfig;\n case SERVICE_GATEWAYS.CAMPAIGNS:\n if (!sdk.client.campaigns)\n throw new Error(`Service 'campaigns' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.campaigns;\n case SERVICE_GATEWAYS.CHAT_ADAPTER:\n if (!sdk.client.chatAdapter)\n throw new Error(`Service 'chat-adapter' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatAdapter;\n case SERVICE_GATEWAYS.ASSETS:\n if (!sdk.client.assets)\n throw new Error(`Service 'assets' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.assets;\n case SERVICE_GATEWAYS.CONTACT_LIST:\n if (!sdk.client.contactList)\n throw new Error(`Service 'contact-list' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.contactList;\n case SERVICE_GATEWAYS.INTEGRATIONS:\n if (!sdk.client.integrations)\n throw new Error(`Service 'integrations' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.integrations;\n case SERVICE_GATEWAYS.CHAT_WEBSERVICE:\n if (!sdk.client.chatWebservice)\n throw new Error(`Service 'chat-webservice' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatWebservice;\n case SERVICE_GATEWAYS.CALL_REPORT:\n if (!sdk.client.callReport)\n throw new Error(`Service 'call-report' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.callReport;\n case SERVICE_GATEWAYS.CASES:\n if (!sdk.client.cases)\n throw new Error(`Service 'cases' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.cases;\n default:\n throw new Error(`Unknown service gateway: ${service}`);\n }\n}\n\nexport * from './campaigns/contracts';\nexport * from './chat-config/contracts';\nexport * from './customer-service/contracts';\nexport * from './chat-adapter/contracts';\nexport * from './assets/contracts';\nexport * from './contact-list/contracts';\nexport * from './integrations/contracts';\nexport * from './chat-webservice/contracts';\nexport * from './call-report/contracts';\nexport * from './cases/contracts';\n","import type { AxiosInstance } from 'axios';\nimport type { CompanyResponse } from './contracts/company';\nimport type {\n WorkGroupListResponse,\n WorkGroupMembersResponse,\n WorkGroupResponse,\n} from './contracts/work-group';\nimport type {\n GetAllUsersParams,\n GetAllUsersResponse,\n GetManagedUsersResponse,\n} from './contracts/user';\n\n/**\n * Gateway for interacting with the Customer Service API.\n */\nexport class CustomerServiceGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves a company by its unique identifier.\n * @param companyId - The unique identifier of the company.\n * @returns The company data wrapped in a {@link CompanyResponse}.\n */\n async getCompanyById(companyId: string): Promise<CompanyResponse> {\n const { data } = await this.httpClient.get<CompanyResponse>(`${this.baseUrl}/companies/search/${companyId}`);\n return data;\n }\n\n /**\n * Retrieves all work groups for a company.\n * @param companyId - The unique identifier of the company.\n * @returns The work groups for the given company.\n */\n async getWorkGroups(companyId: string): Promise<WorkGroupListResponse> {\n const { data } = await this.httpClient.get<WorkGroupListResponse>(\n `${this.baseUrl}/companies/work-groups`,\n { params: { company_id: companyId } },\n );\n return data;\n }\n\n /**\n * Retrieves a work group by its unique identifier.\n * @param workGroupId - The unique identifier of the work group.\n * @param companyId - The unique identifier of the company (optional, sent as query parameter).\n * @returns The work group data wrapped in a {@link WorkGroupResponse}.\n */\n async getWorkGroupById(workGroupId: string, companyId?: string): Promise<WorkGroupResponse> {\n const params = companyId ? { company_id: companyId } : undefined;\n const { data } = await this.httpClient.get<WorkGroupResponse>(\n `${this.baseUrl}/companies/work-groups/${workGroupId}`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves the members of a work group by its identifier.\n * @param groupId - The unique identifier of the work group.\n * @param companyId - The unique identifier of the company (optional, sent as query parameter).\n * @param profile - Filter members by profile (optional).\n * @returns The members of the work group.\n */\n async getWorkGroupMembers(\n groupId: string,\n companyId?: string,\n profile?: string[],\n ): Promise<WorkGroupMembersResponse> {\n const params: { company_id?: string; profile?: string[] } = {};\n if (companyId) params.company_id = companyId;\n if (profile) params.profile = profile;\n const { data } = await this.httpClient.get<WorkGroupMembersResponse>(\n `${this.baseUrl}/bonds/work-groups/${groupId}`,\n { params },\n );\n return data;\n }\n\n async getAllUsers(params?: GetAllUsersParams): Promise<GetAllUsersResponse> {\n const { data } = await this.httpClient.get<GetAllUsersResponse>(\n `${this.baseUrl}/companies/users`,\n { params },\n );\n return data;\n }\n\n async getManagedUsers(managerId: string): Promise<GetManagedUsersResponse> {\n const { data } = await this.httpClient.get<GetManagedUsersResponse>(\n `${this.baseUrl}/users/managed/${managerId}`,\n );\n return data;\n }\n}\n\nexport type { CompanyResponse, CompanyData } from './contracts/company';\nexport type {\n WorkGroup,\n WorkGroupMember,\n WorkGroupMembersResponse,\n WorkGroupListResponse,\n WorkGroupResponse,\n} from './contracts/work-group';\nexport type {\n User,\n GetAllUsersParams,\n GetAllUsersResponse,\n ManagedUser,\n GetManagedUsersResponse,\n} from './contracts/user';","import type { AxiosInstance } from 'axios';\nimport type {\n GetProviderConfigurationsParams,\n GetProviderDisplayInfoParams,\n ProviderConfigurationsResponse,\n ProviderDisplayInfoResponse,\n ProviderListResponse,\n} from './contracts/provider';\nimport type { ConfigListByProviderResponse, GetConfigsByProviderParams } from './contracts/config';\nimport type {\n GetServiceGroupsParams,\n Queue,\n QueueListResponse,\n QueueMember,\n GetMemberQueuesRequest,\n ServiceGroupsResponse,\n} from './contracts/queues';\nimport type { MetaTemplateConfigResponse, MetaTemplateConfigsResponse } from './contracts/meta-template';\nimport type {\n FindOrCreateQueueRuleRequest,\n GetRootRulesRequest,\n RootRulesResponse,\n Rule,\n QueueRule,\n} from './contracts/rule';\n\n/**\n * Gateway for interacting with the Chat Config API.\n */\nexport class ChatConfigGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves all available providers.\n * @returns The list of providers.\n */\n async getProviders(): Promise<ProviderListResponse> {\n const { data } = await this.httpClient.get<ProviderListResponse>(`${this.baseUrl}/providers`);\n return data;\n }\n\n /**\n * Retrieves provider configurations filtered by configuration IDs.\n * @param params - Query parameters containing one or more configuration IDs.\n * @returns The provider configurations matching the given IDs.\n */\n async getProviderConfigurations(params?: GetProviderConfigurationsParams): Promise<ProviderConfigurationsResponse> {\n const url = `${this.baseUrl}/providers/configurations`;\n const { data } = await this.httpClient.get<ProviderConfigurationsResponse>(url, { params: params });\n return data;\n }\n\n /**\n * Retrieves normalized display info for a provider configuration.\n * Always returns the same shape across providers (`id`, `provider`, `name`, `channel`).\n * @param params - Query parameters with `provider` and `configId`.\n * @returns The display info for the given configuration.\n */\n async getProviderDisplayInfo(params: GetProviderDisplayInfoParams): Promise<ProviderDisplayInfoResponse> {\n const { data } = await this.httpClient.get<ProviderDisplayInfoResponse>(\n `${this.baseUrl}/providers/configs/display-info`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves configurations filtered by provider.\n * @param providerId - The unique identifier of the provider.\n * @param params - Optional query parameters for filtering configurations.\n * @returns The configurations for the given provider.\n */\n async getConfigsByProvider(\n providerId: string,\n params?: GetConfigsByProviderParams,\n ): Promise<ConfigListByProviderResponse> {\n const { data } = await this.httpClient.get<ConfigListByProviderResponse>(\n `${this.baseUrl}/config/provider/${providerId}`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves a queue by its ID.\n * @param queueId - The unique identifier of the queue.\n * @returns The queue data.\n */\n async getQueueById(queueId: string): Promise<Queue> {\n const { data } = await this.httpClient.get<Queue>(`${this.baseUrl}/queues/${queueId}`);\n return data;\n }\n\n async getQueues(): Promise<Queue[]> {\n const { data } = await this.httpClient.get<Queue[]>(`${this.baseUrl}/queues`);\n return data;\n }\n\n /**\n * Lists queue memberships for a member.\n * @param params - The member identifier and optional association filter.\n * @returns The queue memberships for the given member.\n */\n async getMemberQueues(params: GetMemberQueuesRequest): Promise<QueueMember[]> {\n const { data } = await this.httpClient.get<QueueMember[]>(`${this.baseUrl}/queue-members`, { params });\n return data;\n }\n\n /**\n * Retrieves service groups filtered by service group IDs.\n * @param params - Query parameters containing one or more service group IDs.\n * @returns The service groups matching the given IDs.\n */\n async getServiceGroups(params?: GetServiceGroupsParams): Promise<ServiceGroupsResponse> {\n const url = `${this.baseUrl}/service-groups`;\n const { data } = await this.httpClient.get<ServiceGroupsResponse>(url, { params: params });\n return data;\n }\n\n /**\n * Retrieves a Meta template configuration by its ID.\n * @param templateId - The unique identifier of the template.\n * @returns The Meta template configuration.\n */\n async getMetaTemplateById(templateId: string): Promise<MetaTemplateConfigResponse> {\n const { data } = await this.httpClient.get<MetaTemplateConfigResponse>(\n `${this.baseUrl}/meta-templates-config/${templateId}`,\n );\n return data;\n }\n\n /**\n * Retrieves template configurations associated with a configuration ID.\n * @param configId - The configuration identifier.\n * @returns The list of template configurations.\n */\n async getTemplateConfigsByConfigId(configId: string): Promise<MetaTemplateConfigsResponse> {\n const { data } = await this.httpClient.get<MetaTemplateConfigsResponse>(\n `${this.baseUrl}/meta-templates-config/config/${configId}`,\n );\n return data;\n }\n\n /**\n * Finds an existing queue rule or creates a new one if it does not exist.\n * @param payload - The payload containing companyId, queueId, and configId.\n * @returns The found or created queue rule.\n */\n async findOrCreateQueueRule(payload: FindOrCreateQueueRuleRequest): Promise<QueueRule> {\n const { data } = await this.httpClient.put<QueueRule>(`${this.baseUrl}/rules/queue/find-or-create`, payload);\n return data;\n }\n\n /**\n * @param params - The company and pagination parameters.\n * @returns The paginated initial service rules.\n */\n async getRootRules(params: GetRootRulesRequest): Promise<RootRulesResponse> {\n const { data } = await this.httpClient.get<RootRulesResponse>(`${this.baseUrl}/rules/paginated`, {\n params: {\n archiveStatus: 'unarchived',\n companyId: params.companyId,\n offset: params.offset,\n limit: params.limit,\n name: params?.name,\n isRoot: true,\n },\n });\n return data;\n }\n}\n\nexport type {\n GetServiceGroupsParams,\n Queue,\n QueueMember,\n DistributionType,\n QueueListResponse,\n ServiceGroup,\n ServiceGroupsResponse,\n} from './contracts/queues';\nexport type {\n GetProviderConfigurationsParams,\n GetProviderDisplayInfoParams,\n ProviderConfiguration,\n ProviderConfigurationsResponse,\n ProviderDisplayInfoResponse,\n ProviderListResponse,\n Provider,\n ProviderName,\n WhatsAppProviderSettings,\n WidgetProviderSettings,\n} from './contracts/provider';\nexport type {\n ConfigListByProviderResponse,\n Config,\n ConfigProvider,\n GetConfigsByProviderParams,\n} from './contracts/config';\nexport type {\n MetaTemplateButton,\n MetaTemplateConfigResponse,\n MetaTemplateConfigsResponse,\n} from './contracts/meta-template';\nexport type { FindOrCreateQueueRuleRequest, QueueRule, RootRulesResponse, Rule } from './contracts/rule';\n","import type { AxiosInstance } from 'axios';\nimport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\n CreateCampaignRequest,\n PatchCampaignRequest,\n CampaignUser,\n} from './contracts/campaign';\nimport type {\n CampaignContactPaginatedResponse,\n CampaignContactQueryParams,\n CampaignContactResponse,\n CreateCampaignContactRequest,\n PatchCampaignContactRequest,\n} from './contracts/campaign-contacts';\nimport type {\n CampaignContactsDashboardData,\n CampaignContactsDashboardQueryParams,\n} from './contracts/campaign-contacts-dashboard';\nimport type {\n CampaignWorkGroup,\n CampaignWorkGroupPaginatedResponse,\n CampaignWorkGroupQueryParams,\n CreateCampaignWorkGroupRequest,\n} from './contracts/work-group';\nimport type { CampaignAccessResponse } from './contracts/access';\nimport type {\n CampaignCompanyPaginatedResponse,\n CampaignCompanyQueryParams,\n CampaignCompanyResponse,\n EnableCampaignCompanyRequest,\n} from './contracts/campaign-company';\n\n/**\n * Gateway for interacting with the Campaigns API.\n */\nexport class CampaignsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves a paginated list of campaigns.\n * @param query - Optional query parameters for filtering and pagination.\n * @returns The paginated campaigns response.\n */\n async find(query?: CampaignQueryParams): Promise<CampaignPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignPaginatedResponse>(`${this.baseUrl}/campaigns`, {\n params: query,\n });\n return data;\n }\n\n /**\n * Retrieves a campaign by its unique identifier.\n * @param id - The unique identifier of the campaign.\n * @returns The campaign data.\n */\n async get(id: string): Promise<Campaign> {\n const { data } = await this.httpClient.get<Campaign>(`${this.baseUrl}/campaigns/${id}`);\n return data;\n }\n\n /**\n * Creates a new campaign.\n * @param payload - The campaign data to create.\n * @returns The created campaign.\n */\n async create(payload: CreateCampaignRequest): Promise<Campaign> {\n const { data } = await this.httpClient.post<Campaign>(`${this.baseUrl}/campaigns`, payload);\n return data;\n }\n\n /**\n * Partially updates an existing campaign.\n * @param id - The unique identifier of the campaign.\n * @param payload - The fields to update.\n * @returns The updated campaign.\n */\n async patch(id: string, payload: PatchCampaignRequest): Promise<Campaign> {\n const { data } = await this.httpClient.patch<Campaign>(`${this.baseUrl}/campaigns/${id}`, payload);\n return data;\n }\n\n /**\n * Removes a campaign by its unique identifier.\n * @param id - The unique identifier of the campaign.\n * @returns The removed campaign.\n */\n async remove(id: string): Promise<Campaign> {\n const { data } = await this.httpClient.delete<Campaign>(`${this.baseUrl}/campaigns/${id}`);\n return data;\n }\n\n /**\n * Retrieves a paginated list of campaign contacts.\n * @param query - Optional query parameters for filtering and pagination.\n * @returns The paginated campaign contacts response.\n */\n async findCampaignContacts(query?: CampaignContactQueryParams): Promise<CampaignContactPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignContactPaginatedResponse>(`${this.baseUrl}/campaign-contacts`, {\n params: query,\n });\n return data;\n }\n\n /**\n * Retrieves a campaign contact by its unique identifier.\n * @param id - The unique identifier of the campaign contact.\n * @returns The campaign contact data.\n */\n async getCampaignContacts(id: string): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.get<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts/${id}`);\n return data;\n }\n\n /**\n * Creates a new campaign contact.\n * @param payload - The campaign contact data to create.\n * @returns The created campaign contact.\n */\n async createCampaignContact(payload: CreateCampaignContactRequest): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.post<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts`, payload);\n return data;\n }\n\n /**\n * Adds multiple contacts to a campaign in a single request.\n * @param payload - The list of campaign contacts to create.\n * @returns The created campaign contacts.\n */\n async addContactsToCampaign(payload: CreateCampaignContactRequest[]): Promise<CampaignContactResponse[]> {\n const { data } = await this.httpClient.post<CampaignContactResponse[]>(\n `${this.baseUrl}/campaign-contacts`,\n payload,\n );\n return data;\n }\n\n /**\n * Partially updates an existing campaign contact.\n * @param id - The unique identifier of the campaign contact.\n * @param payload - The fields to update.\n * @returns The updated campaign contact.\n */\n async patchCampaignContact(id: string, payload: PatchCampaignContactRequest): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.patch<CampaignContactResponse>(\n `${this.baseUrl}/campaign-contacts/${id}`,\n payload,\n );\n return data;\n }\n\n /**\n * Removes a campaign contact by its unique identifier.\n * @param id - The unique identifier of the campaign contact.\n * @returns The removed campaign contact.\n */\n async removeCampaignContact(id: string): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.delete<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts/${id}`);\n return data;\n }\n\n async getContactsDashboardData(\n query: CampaignContactsDashboardQueryParams,\n ): Promise<CampaignContactsDashboardData> {\n const { data } = await this.httpClient.get<CampaignContactsDashboardData>(\n `${this.baseUrl}/campaign-contacts-dashboard`,\n {\n params: query,\n },\n );\n return data;\n }\n\n async getUsers() {\n const { data } = await this.httpClient.get<CampaignUser[]>(`${this.baseUrl}/users`);\n return data;\n }\n\n async listWorkGroups(query?: CampaignWorkGroupQueryParams): Promise<CampaignWorkGroupPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignWorkGroupPaginatedResponse>(`${this.baseUrl}/work-groups`, {\n params: query,\n });\n return data;\n }\n\n async createWorkGroup(payload: CreateCampaignWorkGroupRequest): Promise<CampaignWorkGroup> {\n const { data } = await this.httpClient.post<CampaignWorkGroup>(`${this.baseUrl}/work-groups`, payload);\n return data;\n }\n\n async deleteWorkGroup(id: string): Promise<CampaignWorkGroup> {\n const { data } = await this.httpClient.delete<CampaignWorkGroup>(`${this.baseUrl}/work-groups/${id}`);\n return data;\n }\n\n /**\n * Lists company installations of the Campaigns module.\n * @param query - Optional query parameters (e.g. companyId, enabled).\n * @returns The paginated list of campaign company installations.\n */\n async findCampaignCompanies(query?: CampaignCompanyQueryParams): Promise<CampaignCompanyPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignCompanyPaginatedResponse>(\n `${this.baseUrl}/campaign-companies`,\n { params: query },\n );\n return data;\n }\n\n /**\n * Retrieves the Campaigns module installation for a given company.\n * @param companyId - The company identifier.\n * @returns The campaign company installation, or null when the module is not installed.\n */\n async getCampaignCompany(companyId: string): Promise<CampaignCompanyResponse | null> {\n try {\n const { data } = await this.httpClient.get<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies/${companyId}`,\n );\n return data;\n } catch (error) {\n if ((error as { response?: { status?: number } })?.response?.status === 404) {\n return null;\n }\n throw error;\n }\n }\n\n /**\n * Enables the Campaigns module for a given company.\n * @param payload - The enable request payload (companyId, optional enabledByUserId).\n * @returns The created campaign company installation.\n */\n async enableCampaignCompany(payload: EnableCampaignCompanyRequest): Promise<CampaignCompanyResponse> {\n const { data } = await this.httpClient.post<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies`,\n payload,\n );\n return data;\n }\n\n /**\n * Disables the Campaigns module for a given company by removing the installation record.\n * @param id - The campaign company installation id.\n * @returns The removed campaign company installation.\n */\n async disableCampaignCompany(id: string): Promise<CampaignCompanyResponse> {\n const { data } = await this.httpClient.delete<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies/${id}`,\n );\n return data;\n }\n\n /**\n * Checks whether the current caller has access to the Campaigns module.\n * @returns The access verdict for the authenticated user.\n */\n async getMyAccess(): Promise<CampaignAccessResponse> {\n const { data } = await this.httpClient.get<CampaignAccessResponse>(\n `${this.baseUrl}/campaigns-access`,\n );\n return data;\n }\n}\n\nexport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\n CampaignRetryConfig,\n CampaignStatus,\n CampaignProvider,\n WhatsAppPayload,\n WhatsAppTemplateComponent,\n CampaignContactFilter,\n CampaignSchedule,\n CreateCampaignRequest,\n PatchCampaignRequest,\n CampaignUser,\n} from './contracts/campaign';\nexport type {\n CampaignContactCampaignStatus,\n CampaignContactDispatchStatus,\n CampaignContactLikeQueryOperators,\n CampaignContactPaginatedResponse,\n CampaignContactQueryOperators,\n CampaignContactQueryParams,\n CampaignContactQueryValue,\n CampaignContactResponse,\n CampaignContactSortDirection,\n CampaignContactSortParams,\n CreateCampaignContactRequest,\n PatchCampaignContactRequest,\n} from './contracts/campaign-contacts';\nexport type {\n CampaignContactsDashboardChannelPerformance,\n CampaignContactsDashboardData,\n CampaignContactsDashboardExactQueryOperators,\n CampaignContactsDashboardEvolutionItem,\n CampaignContactsDashboardFunnelItem,\n CampaignContactsDashboardInterval,\n CampaignContactsDashboardMetrics,\n CampaignContactsDashboardQueryParams,\n CampaignContactsDashboardQueryValue,\n CampaignContactsDashboardRangeQueryOperators,\n CampaignContactsDashboardStatusDistribution,\n CampaignContactsDashboardStatusMetrics,\n CampaignContactsDashboardSummary,\n CampaignContactsDashboardTopCampaign,\n} from './contracts/campaign-contacts-dashboard';\nexport type {\n CampaignWorkGroup,\n CampaignWorkGroupPaginatedResponse,\n CampaignWorkGroupQueryParams,\n CreateCampaignWorkGroupRequest,\n} from './contracts/work-group';\nexport type { CampaignAccessResponse, CampaignAccessReason } from './contracts/access';\nexport type {\n CampaignCompanyPaginatedResponse,\n CampaignCompanyQueryParams,\n CampaignCompanyResponse,\n EnableCampaignCompanyRequest,\n} from './contracts/campaign-company';\n","import type { AxiosInstance } from 'axios';\nimport type { GetConfigTemplatesResponse, GetConfigTemplatesParams } from './contracts/chat-adapter';\n\n/**\n * Gateway for interacting with the Chat Adapter API.\n */\nexport class ChatAdapterGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves message templates associated with a configuration.\n * @param configId - The unique identifier of the configuration.\n * @param params - Optional query parameters for filtering and pagination.\n * @returns A promise that resolves to the template list response.\n */\n async getConfigTemplates(configId: string, params?: GetConfigTemplatesParams): Promise<GetConfigTemplatesResponse> {\n const { data } = await this.httpClient.get<GetConfigTemplatesResponse>(\n `${this.baseUrl}/message-templates/${configId}`,\n { params },\n );\n return data;\n }\n}\n\nexport type {\n GetConfigTemplatesResponse,\n GetConfigTemplatesParams,\n MessageTemplate,\n MessageTemplateComponent,\n ConfigTemplatesPaging,\n} from './contracts/chat-adapter';\n","import type { AxiosInstance } from 'axios';\nimport type { GetPresignedUrlRequest, UploadPresignedUrlResponse, AudioConvertResponse, GetAttachmentByIdRequest, AttachmentByIdResponse } from './contracts/assets';\n\n/**\n * Gateway for interacting with the Assets API.\n */\nexport class AssetsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n /**\n * Retrieves a presigned URL to upload a file to the Assets API.\n * @param params - The configuration options and parameters for the presigned URL.\n * @returns The presigned URL details wrapped in a {@link UploadPresignedUrlResponse}.\n */\n async getPresignedUrl(params: GetPresignedUrlRequest): Promise<UploadPresignedUrlResponse> {\n const { data } = await this.httpClient.get<UploadPresignedUrlResponse>(`${this.baseUrl}/uploads/presigned-url`, {\n params,\n });\n return data;\n }\n\n /**\n * Converts an audio file to M4A format via the Assets API.\n * @param params - The audio file to convert.\n * @param params.file - The audio file to upload for conversion.\n * @returns The converted audio response with base64-encoded data, mimetype, extension and filename.\n */\n async convertAudioToM4A(formData: any): Promise<AudioConvertResponse> {\n const { data } = await this.httpClient.post<AudioConvertResponse>(\n `${this.baseUrl}/whatsapp/audio-convert`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n },\n );\n return data;\n }\n\n /**\n * Fetches an attachment by its file ID or storage key.\n *\n * When `key` is provided, the path is built from the key directly and no\n * `x-bucket-provider` header is sent. Otherwise, `fileId` and `provider` are\n * used to build the path and the provider header respectively.\n *\n * @param params - The parameters identifying the attachment.\n * @returns A signed URL to access the attachment.\n */\n async getAttachmentById(params: GetAttachmentByIdRequest): Promise<AttachmentByIdResponse> {\n const path = params.key\n ? `/uploads/${encodeURIComponent(params.key)}`\n : `/uploads/${encodeURIComponent(params.fileId!)}`;\n\n const axiosParams: Record<string, string> = {};\n\n if (params.download) axiosParams.download = 'true';\n if (params.filename) axiosParams.filename = params.filename;\n const headers: Record<string, string> = {};\n if (!params.key && params.provider) headers['x-bucket-provider'] = params.provider!;\n\n const { data } = await this.httpClient.get<AttachmentByIdResponse>(`${this.baseUrl}${path}`, {\n params: axiosParams,\n headers,\n });\n return data;\n }\n}\n\nexport type {\n GetPresignedUrlRequest,\n UploadPresignedUrlResponse,\n IUploadPresignedUrlResponse,\n AudioConvertResponse,\n GetAttachmentByIdRequest,\n AttachmentByIdResponse,\n} from './contracts/assets';\n","import type { AxiosInstance } from 'axios';\nimport type {\n ContactPhoneSearchResponse,\n GetContactPhonesParams,\n ContactCategoryResponse,\n} from './contracts/contact-phone';\n\n/**\n * Gateway for interacting with the Contact List API.\n */\nexport class ContactListGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Searches for contact phones with optional filtering and pagination.\n * @param params - The query parameters for the search.\n * @returns The paginated contact phones response.\n */\n async getContactsPhones(params: GetContactPhonesParams): Promise<ContactPhoneSearchResponse> {\n const { data } = await this.httpClient.get<ContactPhoneSearchResponse>(\n `${this.baseUrl}/contact/phone/search`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves all contact categories.\n * @returns An array of contact categories.\n */\n async getCategoryList(): Promise<ContactCategoryResponse[]> {\n const { data } = await this.httpClient.get<ContactCategoryResponse[]>(\n `${this.baseUrl}/contact/category`,\n );\n return data;\n }\n}\n\nexport type {\n ContactPhoneSearchResponse,\n GetContactPhonesParams,\n ContactPhoneResponse,\n ContactCategoryResponse,\n} from './contracts/contact-phone';\n","import type { AxiosInstance } from 'axios';\nimport type {\n CreateIntegrationActionRequest,\n CreateWebhookRequest,\n CreateIntegrationFieldRequest,\n CreateIntegrationPartnerRequest,\n DeleteIntegrationActionParams,\n DeleteIntegrationFieldParams,\n DeleteIntegrationPartnerParams,\n GetIntegrationHooksCatalogRequest,\n GetWebhooksByCompanyRequest,\n GetIntegrationPartnersByCompanyRequest,\n HookCatalogItem,\n IntegrationAction,\n IntegrationField,\n IntegrationPartner,\n UpdateIntegrationActionParams,\n UpdateIntegrationActionRequest,\n UpdateIntegrationFieldParams,\n UpdateIntegrationFieldRequest,\n} from './contracts';\n\n/**\n * Gateway for interacting with the Integrations API.\n */\nexport class IntegrationsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves all integration partners configured for a company.\n * @param companyId - The company identifier.\n * @returns The integration partners configured for the company.\n */\n async getPartnersByCompany({ companyId, name }: GetIntegrationPartnersByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/partner/company/${companyId}`, {\n params: name ? { name } : undefined,\n });\n return data;\n }\n\n /** Retrieves the webhooks scenario for a company. */\n async getWebhooksByCompany(params: GetWebhooksByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/webhooks`, {\n params,\n });\n return data;\n }\n\n /**\n * Retrieves the hook catalog, optionally scoped by module.\n * @param module - The optional module identifier used by the Integrations API filter.\n * @returns The hook catalog items, filtered by module when provided.\n */\n async getHooksCatalog({ module }: GetIntegrationHooksCatalogRequest = {}): Promise<HookCatalogItem[]> {\n const { data } = await this.httpClient.get<HookCatalogItem[]>(`${this.baseUrl}/hooks`, {\n params: module ? { module } : undefined,\n });\n return data;\n }\n\n /**\n * Creates an integration partner.\n * @param payload - The partner creation payload.\n * @returns The created integration partner.\n */\n async createPartner(payload: CreateIntegrationPartnerRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/partner`, payload);\n return data;\n }\n\n /** Creates a webhook. */\n async createWebhook(payload: CreateWebhookRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/webhooks`, payload);\n return data;\n }\n\n /**\n * Deletes an integration partner.\n * @param partnerId - The partner identifier.\n * @returns A promise that resolves when the partner is deleted.\n */\n async deletePartner({ partnerId }: DeleteIntegrationPartnerParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/partner/${partnerId}`);\n }\n\n /**\n * Creates an integration action.\n * @param payload - The action creation payload.\n * @returns The created integration action.\n */\n async createAction(payload: CreateIntegrationActionRequest): Promise<IntegrationAction> {\n const { data } = await this.httpClient.post<IntegrationAction>(`${this.baseUrl}/action`, {\n ...payload,\n actionName: payload.actionName ?? payload.hook,\n });\n return data;\n }\n\n /**\n * Updates an integration action.\n * @param actionId - The action identifier.\n * @param payload - The action update payload.\n * @returns The updated integration action.\n */\n async updateAction({ actionId, payload }: UpdateIntegrationActionParams): Promise<IntegrationAction> {\n const { data } = await this.httpClient.patch<IntegrationAction>(`${this.baseUrl}/action/${actionId}`, payload);\n return data;\n }\n\n /**\n * Creates an integration action field/header.\n * @param payload - The field creation payload.\n * @returns The created integration field.\n */\n async createField(payload: CreateIntegrationFieldRequest): Promise<IntegrationField> {\n const { data } = await this.httpClient.post<IntegrationField>(`${this.baseUrl}/field`, payload);\n return data;\n }\n\n /**\n * Updates an integration action field/header.\n * @param fieldId - The field identifier.\n * @param payload - The field update payload.\n * @returns The updated integration field response.\n */\n async updateField({ fieldId, payload }: UpdateIntegrationFieldParams): Promise<IntegrationField | number[]> {\n const { data } = await this.httpClient.put<IntegrationField | number[]>(`${this.baseUrl}/field/${fieldId}`, payload);\n return data;\n }\n\n /**\n * Deletes an integration action field/header.\n * @param fieldId - The field identifier.\n * @returns A promise that resolves when the field is deleted.\n */\n async deleteField({ fieldId }: DeleteIntegrationFieldParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/field/${fieldId}`);\n }\n\n /**\n * Deletes an integration action.\n * @param actionId - The action identifier.\n * @returns A promise that resolves when the action is deleted.\n */\n async deleteAction({ actionId }: DeleteIntegrationActionParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/action/${actionId}`);\n }\n}\n\nexport type {\n CreateIntegrationActionRequest,\n CreateWebhookRequest,\n CreateIntegrationFieldRequest,\n CreateIntegrationPartnerRequest,\n DeleteIntegrationActionParams,\n DeleteIntegrationFieldParams,\n DeleteIntegrationPartnerParams,\n GetIntegrationHooksCatalogRequest,\n GetWebhooksByCompanyRequest,\n GetIntegrationPartnersByCompanyRequest,\n HookCatalogItem,\n IntegrationAction,\n IntegrationField,\n IntegrationPartner,\n UpdateIntegrationActionParams,\n UpdateIntegrationActionRequest,\n UpdateIntegrationFieldParams,\n UpdateIntegrationFieldRequest,\n} from './contracts';\n","import type { AxiosInstance } from 'axios';\nimport type {\n CancelInvitationRequest,\n ListInvitationsRequest,\n ReplyInvitationRequest,\n InvitationResponse,\n ListLiveUserRoomsRequest,\n LiveUserRoomResponse,\n GetRoomByIdRequest,\n RoomResponse,\n} from './contracts';\n\n/**\n * Gateway for interacting with the Chat Webservice API.\n */\nexport class ChatWebserviceGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Lists chat invitations for a user within a company.\n * @param params - The user, company, and invitation status filters.\n * @returns The matching chat invitations.\n */\n async listInvitations(params: ListInvitationsRequest): Promise<InvitationResponse[]> {\n const { data } = await this.httpClient.get<InvitationResponse[]>(`${this.baseUrl}/invitations`, { params });\n return data;\n }\n\n /**\n * Replies to a chat invitation.\n * @param payload - The invitation identifier to reply to.\n * @returns The updated chat invitations.\n */\n async replyInvitation(payload: ReplyInvitationRequest): Promise<InvitationResponse[]> {\n const { data } = await this.httpClient.put<InvitationResponse[]>(`${this.baseUrl}/invitations/reply`, payload);\n return data;\n }\n\n /**\n * Cancels a chat invitation for a room.\n * @param roomId - The chat room identifier.\n * @param payload - The delegator identifier used to cancel the invitation.\n */\n async cancelInvitation(roomId: number, payload: CancelInvitationRequest): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/invitations/chat/${roomId}`, {\n data: payload,\n });\n }\n\n /**\n * Lists live rooms assigned to a user.\n * @param params - The recipient, company, and open-status filters.\n * @returns The live room entries for the user.\n */\n async listLiveUserRooms(params: ListLiveUserRoomsRequest): Promise<LiveUserRoomResponse[]> {\n const { data } = await this.httpClient.get<LiveUserRoomResponse[]>(`${this.baseUrl}/member/rooms/live`, { params });\n return data;\n }\n\n /**\n * Retrieves a chat room by its identifier.\n * @param id - The unique identifier of the room.\n * @param params - Optional query parameters for scoping and member inclusion.\n * @returns The chat room data.\n */\n async getRoomById(id: number, params: GetRoomByIdRequest = {}): Promise<RoomResponse> {\n const { data } = await this.httpClient.get<RoomResponse>(`${this.baseUrl}/room/${id}`, { params });\n return data;\n }\n}\n\nexport type {\n CancelInvitationRequest,\n GetRoomByIdRequest,\n InvitationResponse,\n ListInvitationsRequest,\n ListLiveUserRoomsRequest,\n LiveUserRoomResponse,\n ReplyInvitationRequest,\n RoomActiveDates,\n RoomMemberResponse,\n RoomResponse,\n RoomTagResponse,\n} from './contracts';\n","import type { AxiosInstance } from 'axios';\nimport type { ContactHistoryResponse, ListContactHistoryRequest } from './contracts/contact-history';\n\n/**\n * Gateway for interacting with the Call Report API.\n */\nexport class CallReportGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Lists contact interaction history across chat and CDR indexes.\n * @param params - Optional filters, pagination, and index selection.\n * @returns The paginated contact history response.\n */\n async listContactHistory(params: ListContactHistoryRequest = {}): Promise<ContactHistoryResponse> {\n const { data } = await this.httpClient.get<ContactHistoryResponse>(`${this.baseUrl}/history/index/multi`, {\n params,\n });\n return data;\n }\n}\n\nexport type {\n ContactHistoryIndex,\n ContactHistoryResponse,\n ContactHistorySortOrder,\n ContactInteractionResponse,\n InteractionCallStepResponse,\n InteractionChatStepResponse,\n InteractionMemberResponse,\n InteractionOrganizationResponse,\n ListContactHistoryRequest,\n} from './contracts/contact-history';\n","import type { AxiosInstance } from 'axios';\nimport type { IntegrationPartner } from '../integrations/contracts';\nimport type {\n CasePermissions,\n CommentHistoryCursor,\n CommentHistoryPage,\n GetCommentHistoryRequest,\n UpdateCasePermissionsRequest,\n} from './contracts';\nimport type { GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './contracts/case-feed-by-actions';\n\n/** Request parameters for retrieving the webhooks scenario for a company. */\nexport interface GetWebhooksByCompanyRequest {\n companyId: string;\n}\n\n/** Request payload for creating a webhooks scenario. */\nexport interface CreateWebhookRequest {\n companyId: string;\n baseUrl: string;\n}\n\n/**\n * Gateway for interacting with the Cases API.\n */\nexport class CasesGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /** Retrieves the webhooks scenario for a company. */\n async getWebhooksByCompany(params: GetWebhooksByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/webhooks`, {\n params,\n });\n return data;\n }\n\n /** Creates a webhook. */\n async createWebhook(payload: CreateWebhookRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/webhooks`, payload);\n return data;\n }\n\n /** Retrieves one chronological page of the edit/delete history of a case comment. */\n async getCommentHistory(params: GetCommentHistoryRequest): Promise<CommentHistoryPage> {\n const query: { limit?: number; cursor?: CommentHistoryCursor } = {};\n if (params.limit !== undefined) query.limit = params.limit;\n if (params.cursor !== undefined) query.cursor = params.cursor;\n\n const { data } = await this.httpClient.get<CommentHistoryPage>(\n `${this.baseUrl}/comment/history/${params.commentId}`,\n { params: query },\n );\n return data;\n }\n\n /** Retrieves the Cases permission configuration for the current company. */\n async getCasePermissions(): Promise<CasePermissions> {\n const { data } = await this.httpClient.get<CasePermissions>(`${this.baseUrl}/case-settings/permissions`);\n return data;\n }\n\n /** Updates the Cases permission configuration for the current company. */\n async updateCasePermissions(payload: UpdateCasePermissionsRequest): Promise<CasePermissions> {\n const { data } = await this.httpClient.patch<CasePermissions>(\n `${this.baseUrl}/case-settings/permissions`,\n payload,\n );\n return data;\n }\n\n /**\n * Retrieves case feed entries for a batch of action IDs.\n * @param payload - The action type and list of action IDs to look up.\n * @returns Array of case feed items linking each action to a case.\n */\n async getCaseFeedByActions(payload: GetCaseFeedByActionsRequest): Promise<CaseFeedByActionItem[]> {\n const { data } = await this.httpClient.post<CaseFeedByActionItem[]>(\n `${this.baseUrl}/cases-feed/by-actions`,\n payload,\n );\n return data;\n }\n}\n\nexport type {\n CommentHistoryEntry,\n CommentHistoryChangeType,\n CommentHistoryCursor,\n CommentHistoryPage,\n GetCommentHistoryRequest,\n} from './contracts/comment-history';\nexport type { CasePermissions, CasePermissionsValue, UpdateCasePermissionsRequest } from './contracts/case-permissions';\nexport type { GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './contracts/case-feed-by-actions';\n","import { CustomerServiceGateway } from '../customer-service';\nimport { ChatConfigGateway } from '../chat-config';\nimport { CampaignsGateway } from '../campaigns';\nimport { ChatAdapterGateway } from '../chat-adapter';\nimport { AssetsGateway } from '../assets';\nimport { ContactListGateway } from '../contact-list';\nimport { IntegrationsGateway } from '../integrations';\nimport { ChatWebserviceGateway } from '../chat-webservice';\nimport { CallReportGateway } from '../call-report';\nimport { CasesGateway } from '../cases';\nimport axios, { AxiosInstance } from 'axios';\n\n/**\n * Maps service identifiers to their corresponding gateway types.\n * Used by the `gateway()` function to infer the correct return type\n * based on the service name passed as argument.\n *\n * When adding a new service, add an entry here with the service\n * identifier as the key and the gateway class as the value.\n */\nexport type GatewayMap = {\n 'customer-service': CustomerServiceGateway;\n 'chat-config': ChatConfigGateway;\n campaigns: CampaignsGateway;\n 'chat-adapter': ChatAdapterGateway;\n assets: AssetsGateway;\n 'contact-list': ContactListGateway;\n integrations: IntegrationsGateway;\n 'chat-webservice': ChatWebserviceGateway;\n 'call-report': CallReportGateway;\n cases: CasesGateway;\n};\n\nexport interface SDKGatewaysInterface {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n contactList: ContactListGateway | null;\n integrations: IntegrationsGateway | null;\n chatWebservice: ChatWebserviceGateway | null;\n callReport: CallReportGateway | null;\n cases: CasesGateway | null;\n}\n\nclass SDKGateways {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n contactList: ContactListGateway | null;\n integrations: IntegrationsGateway | null;\n chatWebservice: ChatWebserviceGateway | null;\n callReport: CallReportGateway | null;\n cases: CasesGateway | null;\n constructor(\n customerService: CustomerServiceGateway | null,\n chatConfig: ChatConfigGateway | null,\n campaigns: CampaignsGateway | null,\n chatAdapter: ChatAdapterGateway | null,\n assets: AssetsGateway | null,\n contactList: ContactListGateway | null,\n integrations: IntegrationsGateway | null,\n chatWebservice: ChatWebserviceGateway | null,\n callReport: CallReportGateway | null,\n cases: CasesGateway | null,\n ) {\n this.customerService = customerService;\n this.chatConfig = chatConfig;\n this.campaigns = campaigns;\n this.chatAdapter = chatAdapter;\n this.assets = assets;\n this.contactList = contactList;\n this.integrations = integrations;\n this.chatWebservice = chatWebservice;\n this.callReport = callReport;\n this.cases = cases;\n }\n}\n\n/**\n * Parameters required to configure the SDK client.\n * Each service configuration is optional, only provide the services you need.\n */\nexport interface GatewayClientParams {\n /** An Axios instance used as the HTTP client for all gateway requests (optional). */\n axiosClient?: AxiosInstance;\n /** API token used for authentication across all services. */\n apiToken: string;\n /** Configuration for each service gateway. Only the services you configure will be available. */\n services: {\n customerService?: {\n baseUrl: string;\n };\n chatConfig?: {\n baseUrl: string;\n };\n campaigns?: {\n baseUrl: string;\n };\n chatAdapter?: {\n baseUrl: string;\n };\n assets?: {\n baseUrl: string;\n };\n contactList?: {\n baseUrl: string;\n };\n integrations?: {\n baseUrl: string;\n };\n chatWebservice?: {\n baseUrl: string;\n };\n callReport?: {\n baseUrl: string;\n };\n cases?: {\n baseUrl: string;\n };\n };\n}\n\n/**\n * Creates an SDKGateways instance with all service gateways initialized\n * using the provided configuration parameters.\n * Services without configuration will be set to null and will throw\n * an error if accessed via `gateway()`.\n */\nexport function createClient(params: GatewayClientParams) {\n const httpClient =\n params.axiosClient ||\n axios.create({\n headers: {\n Authorization: `Bearer ${params.apiToken}`,\n },\n });\n const customerService = params.services.customerService\n ? new CustomerServiceGateway(httpClient, params.services.customerService.baseUrl)\n : null;\n const chatConfig = params.services.chatConfig\n ? new ChatConfigGateway(httpClient, params.services.chatConfig.baseUrl)\n : null;\n const campaigns = params.services.campaigns\n ? new CampaignsGateway(httpClient, params.services.campaigns.baseUrl)\n : null;\n const chatAdapter = params.services.chatAdapter\n ? new ChatAdapterGateway(httpClient, params.services.chatAdapter.baseUrl)\n : null;\n const assets = params.services.assets ? new AssetsGateway(httpClient, params.services.assets.baseUrl) : null;\n const contactList = params.services.contactList\n ? new ContactListGateway(httpClient, params.services.contactList.baseUrl)\n : null;\n const integrations = params.services.integrations\n ? new IntegrationsGateway(httpClient, params.services.integrations.baseUrl)\n : null;\n const chatWebservice = params.services.chatWebservice\n ? new ChatWebserviceGateway(httpClient, params.services.chatWebservice.baseUrl)\n : null;\n const callReport = params.services.callReport\n ? new CallReportGateway(httpClient, params.services.callReport.baseUrl)\n : null;\n const cases = params.services.cases ? new CasesGateway(httpClient, params.services.cases.baseUrl) : null;\n return new SDKGateways(\n customerService,\n chatConfig,\n campaigns,\n chatAdapter,\n assets,\n contactList,\n integrations,\n chatWebservice,\n callReport,\n cases,\n );\n}\n","export const SERVICE_GATEWAYS = {\n CUSTOMER_SERVICE: 'customer-service',\n CHAT_CONFIG: 'chat-config',\n CAMPAIGNS: 'campaigns',\n CHAT_ADAPTER: 'chat-adapter',\n ASSETS: 'assets',\n CONTACT_LIST: 'contact-list',\n INTEGRATIONS: 'integrations',\n CHAT_WEBSERVICE: 'chat-webservice',\n CALL_REPORT: 'call-report',\n CASES: 'cases',\n} as const;\n\nexport type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];\n"],"mappings":"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","names":["module","axios"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/customer-service/index.ts","../src/chat-config/index.ts","../src/campaigns/index.ts","../src/chat-adapter/index.ts","../src/assets/index.ts","../src/contact-list/index.ts","../src/integrations/index.ts","../src/chat-webservice/index.ts","../src/call-report/index.ts","../src/cases/index.ts","../src/rh/index.ts","../src/@common/client.ts","../src/@common/enums.ts"],"sourcesContent":["import { createClient, SDKGatewaysInterface, GatewayClientParams, GatewayMap } from './@common/client';\nimport { SERVICE_GATEWAYS } from './@common/enums';\n\nexport { SERVICE_GATEWAYS };\nexport type { SERVICE_GATEWAYS as SERVICE_GATEWAYS_TYPE } from './@common/enums';\n\nclass SDK {\n client: SDKGatewaysInterface | null = null;\n\n configure(params: GatewayClientParams) {\n this.client = createClient(params);\n }\n}\nconst sdk = new SDK();\n\n/**\n * Initializes the SDK with the required configuration parameters.\n * Must be called before using {@link gateway}.\n */\nexport const configure = (params: GatewayClientParams) => {\n sdk.configure(params);\n};\n\n/**\n * Returns the gateway instance for the specified service.\n *\n * @typeParam T - A service identifier key from {@link GatewayMap}.\n * @param service - The service identifier (e.g. `SERVICE_GATEWAYS.CUSTOMER_SERVICE`).\n * @returns The corresponding gateway instance with all its methods.\n * @throws {Error} If the SDK has not been configured via {@link configure}.\n * @throws {Error} If an unknown service identifier is provided.\n *\n * @example\n * ```ts\n * configure({ axiosClient, apiToken: '...', services: { customerService: { baseUrl: '...' } } });\n * const customer = gateway('customer-service');\n * const company = await customer.getCompanyById('123');\n * ```\n */\nexport function gateway<T extends keyof GatewayMap>(service: T): GatewayMap[T];\nexport function gateway(service: SERVICE_GATEWAYS) {\n if (!sdk.client)\n throw new Error(\n 'SDK not configured. Please call configure() with the appropriate parameters before using the SDK.',\n );\n\n switch (service) {\n case SERVICE_GATEWAYS.CUSTOMER_SERVICE:\n if (!sdk.client.customerService)\n throw new Error(`Service 'customer-service' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.customerService;\n case SERVICE_GATEWAYS.CHAT_CONFIG:\n if (!sdk.client.chatConfig)\n throw new Error(`Service 'chat-config' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatConfig;\n case SERVICE_GATEWAYS.CAMPAIGNS:\n if (!sdk.client.campaigns)\n throw new Error(`Service 'campaigns' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.campaigns;\n case SERVICE_GATEWAYS.CHAT_ADAPTER:\n if (!sdk.client.chatAdapter)\n throw new Error(`Service 'chat-adapter' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatAdapter;\n case SERVICE_GATEWAYS.ASSETS:\n if (!sdk.client.assets)\n throw new Error(`Service 'assets' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.assets;\n case SERVICE_GATEWAYS.CONTACT_LIST:\n if (!sdk.client.contactList)\n throw new Error(`Service 'contact-list' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.contactList;\n case SERVICE_GATEWAYS.INTEGRATIONS:\n if (!sdk.client.integrations)\n throw new Error(`Service 'integrations' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.integrations;\n case SERVICE_GATEWAYS.CHAT_WEBSERVICE:\n if (!sdk.client.chatWebservice)\n throw new Error(`Service 'chat-webservice' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatWebservice;\n case SERVICE_GATEWAYS.CALL_REPORT:\n if (!sdk.client.callReport)\n throw new Error(`Service 'call-report' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.callReport;\n case SERVICE_GATEWAYS.CASES:\n if (!sdk.client.cases)\n throw new Error(`Service 'cases' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.cases;\n case SERVICE_GATEWAYS.RH:\n if (!sdk.client.rh)\n throw new Error(`Service 'rh' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.rh;\n default:\n throw new Error(`Unknown service gateway: ${service}`);\n }\n}\n\nexport * from './campaigns/contracts';\nexport * from './chat-config/contracts';\nexport * from './customer-service/contracts';\nexport * from './chat-adapter/contracts';\nexport * from './assets/contracts';\nexport * from './contact-list/contracts';\nexport * from './integrations/contracts';\nexport * from './chat-webservice/contracts';\nexport * from './call-report/contracts';\nexport * from './cases/contracts';\nexport * from './rh/contracts';\n","import type { AxiosInstance } from 'axios';\nimport type { CompanyResponse } from './contracts/company';\nimport type {\n WorkGroupListResponse,\n WorkGroupMembersResponse,\n WorkGroupResponse,\n} from './contracts/work-group';\nimport type {\n GetAllUsersParams,\n GetAllUsersResponse,\n GetManagedUsersResponse,\n} from './contracts/user';\n\n/**\n * Gateway for interacting with the Customer Service API.\n */\nexport class CustomerServiceGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves a company by its unique identifier.\n * @param companyId - The unique identifier of the company.\n * @returns The company data wrapped in a {@link CompanyResponse}.\n */\n async getCompanyById(companyId: string): Promise<CompanyResponse> {\n const { data } = await this.httpClient.get<CompanyResponse>(`${this.baseUrl}/companies/search/${companyId}`);\n return data;\n }\n\n /**\n * Retrieves all work groups for a company.\n * @param companyId - The unique identifier of the company.\n * @returns The work groups for the given company.\n */\n async getWorkGroups(companyId: string): Promise<WorkGroupListResponse> {\n const { data } = await this.httpClient.get<WorkGroupListResponse>(\n `${this.baseUrl}/companies/work-groups`,\n { params: { company_id: companyId } },\n );\n return data;\n }\n\n /**\n * Retrieves a work group by its unique identifier.\n * @param workGroupId - The unique identifier of the work group.\n * @param companyId - The unique identifier of the company (optional, sent as query parameter).\n * @returns The work group data wrapped in a {@link WorkGroupResponse}.\n */\n async getWorkGroupById(workGroupId: string, companyId?: string): Promise<WorkGroupResponse> {\n const params = companyId ? { company_id: companyId } : undefined;\n const { data } = await this.httpClient.get<WorkGroupResponse>(\n `${this.baseUrl}/companies/work-groups/${workGroupId}`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves the members of a work group by its identifier.\n * @param groupId - The unique identifier of the work group.\n * @param companyId - The unique identifier of the company (optional, sent as query parameter).\n * @param profile - Filter members by profile (optional).\n * @returns The members of the work group.\n */\n async getWorkGroupMembers(\n groupId: string,\n companyId?: string,\n profile?: string[],\n ): Promise<WorkGroupMembersResponse> {\n const params: { company_id?: string; profile?: string[] } = {};\n if (companyId) params.company_id = companyId;\n if (profile) params.profile = profile;\n const { data } = await this.httpClient.get<WorkGroupMembersResponse>(\n `${this.baseUrl}/bonds/work-groups/${groupId}`,\n { params },\n );\n return data;\n }\n\n async getAllUsers(params?: GetAllUsersParams): Promise<GetAllUsersResponse> {\n const { data } = await this.httpClient.get<GetAllUsersResponse>(\n `${this.baseUrl}/companies/users`,\n { params },\n );\n return data;\n }\n\n async getManagedUsers(managerId: string): Promise<GetManagedUsersResponse> {\n const { data } = await this.httpClient.get<GetManagedUsersResponse>(\n `${this.baseUrl}/users/managed/${managerId}`,\n );\n return data;\n }\n}\n\nexport type { CompanyResponse, CompanyData } from './contracts/company';\nexport type {\n WorkGroup,\n WorkGroupMember,\n WorkGroupMembersResponse,\n WorkGroupListResponse,\n WorkGroupResponse,\n} from './contracts/work-group';\nexport type {\n User,\n GetAllUsersParams,\n GetAllUsersResponse,\n ManagedUser,\n GetManagedUsersResponse,\n} from './contracts/user';","import type { AxiosInstance } from 'axios';\nimport type {\n GetProviderConfigurationsParams,\n GetProviderDisplayInfoParams,\n ProviderConfigurationsResponse,\n ProviderDisplayInfoResponse,\n ProviderListResponse,\n} from './contracts/provider';\nimport type { ConfigListByProviderResponse, GetConfigsByProviderParams } from './contracts/config';\nimport type {\n GetServiceGroupsParams,\n Queue,\n QueueListResponse,\n QueueMember,\n GetMemberQueuesRequest,\n ServiceGroupsResponse,\n} from './contracts/queues';\nimport type { MetaTemplateConfigResponse, MetaTemplateConfigsResponse } from './contracts/meta-template';\nimport type {\n FindOrCreateQueueRuleRequest,\n GetRootRulesRequest,\n RootRulesResponse,\n Rule,\n QueueRule,\n} from './contracts/rule';\n\n/**\n * Gateway for interacting with the Chat Config API.\n */\nexport class ChatConfigGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves all available providers.\n * @returns The list of providers.\n */\n async getProviders(): Promise<ProviderListResponse> {\n const { data } = await this.httpClient.get<ProviderListResponse>(`${this.baseUrl}/providers`);\n return data;\n }\n\n /**\n * Retrieves provider configurations filtered by configuration IDs.\n * @param params - Query parameters containing one or more configuration IDs.\n * @returns The provider configurations matching the given IDs.\n */\n async getProviderConfigurations(params?: GetProviderConfigurationsParams): Promise<ProviderConfigurationsResponse> {\n const url = `${this.baseUrl}/providers/configurations`;\n const { data } = await this.httpClient.get<ProviderConfigurationsResponse>(url, { params: params });\n return data;\n }\n\n /**\n * Retrieves normalized display info for a provider configuration.\n * Always returns the same shape across providers (`id`, `provider`, `name`, `channel`).\n * @param params - Query parameters with `provider` and `configId`.\n * @returns The display info for the given configuration.\n */\n async getProviderDisplayInfo(params: GetProviderDisplayInfoParams): Promise<ProviderDisplayInfoResponse> {\n const { data } = await this.httpClient.get<ProviderDisplayInfoResponse>(\n `${this.baseUrl}/providers/configs/display-info`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves configurations filtered by provider.\n * @param providerId - The unique identifier of the provider.\n * @param params - Optional query parameters for filtering configurations.\n * @returns The configurations for the given provider.\n */\n async getConfigsByProvider(\n providerId: string,\n params?: GetConfigsByProviderParams,\n ): Promise<ConfigListByProviderResponse> {\n const { data } = await this.httpClient.get<ConfigListByProviderResponse>(\n `${this.baseUrl}/config/provider/${providerId}`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves a queue by its ID.\n * @param queueId - The unique identifier of the queue.\n * @returns The queue data.\n */\n async getQueueById(queueId: string): Promise<Queue> {\n const { data } = await this.httpClient.get<Queue>(`${this.baseUrl}/queues/${queueId}`);\n return data;\n }\n\n async getQueues(): Promise<Queue[]> {\n const { data } = await this.httpClient.get<Queue[]>(`${this.baseUrl}/queues`);\n return data;\n }\n\n /**\n * Lists queue memberships for a member.\n * @param params - The member identifier and optional association filter.\n * @returns The queue memberships for the given member.\n */\n async getMemberQueues(params: GetMemberQueuesRequest): Promise<QueueMember[]> {\n const { data } = await this.httpClient.get<QueueMember[]>(`${this.baseUrl}/queue-members`, { params });\n return data;\n }\n\n /**\n * Retrieves service groups filtered by service group IDs.\n * @param params - Query parameters containing one or more service group IDs.\n * @returns The service groups matching the given IDs.\n */\n async getServiceGroups(params?: GetServiceGroupsParams): Promise<ServiceGroupsResponse> {\n const url = `${this.baseUrl}/service-groups`;\n const { data } = await this.httpClient.get<ServiceGroupsResponse>(url, { params: params });\n return data;\n }\n\n /**\n * Retrieves a Meta template configuration by its ID.\n * @param templateId - The unique identifier of the template.\n * @returns The Meta template configuration.\n */\n async getMetaTemplateById(templateId: string): Promise<MetaTemplateConfigResponse> {\n const { data } = await this.httpClient.get<MetaTemplateConfigResponse>(\n `${this.baseUrl}/meta-templates-config/${templateId}`,\n );\n return data;\n }\n\n /**\n * Retrieves template configurations associated with a configuration ID.\n * @param configId - The configuration identifier.\n * @returns The list of template configurations.\n */\n async getTemplateConfigsByConfigId(configId: string): Promise<MetaTemplateConfigsResponse> {\n const { data } = await this.httpClient.get<MetaTemplateConfigsResponse>(\n `${this.baseUrl}/meta-templates-config/config/${configId}`,\n );\n return data;\n }\n\n /**\n * Finds an existing queue rule or creates a new one if it does not exist.\n * @param payload - The payload containing companyId, queueId, and configId.\n * @returns The found or created queue rule.\n */\n async findOrCreateQueueRule(payload: FindOrCreateQueueRuleRequest): Promise<QueueRule> {\n const { data } = await this.httpClient.put<QueueRule>(`${this.baseUrl}/rules/queue/find-or-create`, payload);\n return data;\n }\n\n /**\n * @param params - The company and pagination parameters.\n * @returns The paginated initial service rules.\n */\n async getRootRules(params: GetRootRulesRequest): Promise<RootRulesResponse> {\n const { data } = await this.httpClient.get<RootRulesResponse>(`${this.baseUrl}/rules/paginated`, {\n params: {\n archiveStatus: 'unarchived',\n companyId: params.companyId,\n offset: params.offset,\n limit: params.limit,\n name: params?.name,\n isRoot: true,\n },\n });\n return data;\n }\n}\n\nexport type {\n GetServiceGroupsParams,\n Queue,\n QueueMember,\n DistributionType,\n QueueListResponse,\n ServiceGroup,\n ServiceGroupsResponse,\n} from './contracts/queues';\nexport type {\n GetProviderConfigurationsParams,\n GetProviderDisplayInfoParams,\n ProviderConfiguration,\n ProviderConfigurationsResponse,\n ProviderDisplayInfoResponse,\n ProviderListResponse,\n Provider,\n ProviderName,\n WhatsAppProviderSettings,\n WidgetProviderSettings,\n} from './contracts/provider';\nexport type {\n ConfigListByProviderResponse,\n Config,\n ConfigProvider,\n GetConfigsByProviderParams,\n} from './contracts/config';\nexport type {\n MetaTemplateButton,\n MetaTemplateConfigResponse,\n MetaTemplateConfigsResponse,\n} from './contracts/meta-template';\nexport type { FindOrCreateQueueRuleRequest, QueueRule, RootRulesResponse, Rule } from './contracts/rule';\n","import type { AxiosInstance } from 'axios';\nimport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\n CreateCampaignRequest,\n PatchCampaignRequest,\n CampaignUser,\n} from './contracts/campaign';\nimport type {\n CampaignContactPaginatedResponse,\n CampaignContactQueryParams,\n CampaignContactResponse,\n CreateCampaignContactRequest,\n PatchCampaignContactRequest,\n} from './contracts/campaign-contacts';\nimport type {\n CampaignContactsDashboardData,\n CampaignContactsDashboardQueryParams,\n} from './contracts/campaign-contacts-dashboard';\nimport type {\n CampaignWorkGroup,\n CampaignWorkGroupPaginatedResponse,\n CampaignWorkGroupQueryParams,\n CreateCampaignWorkGroupRequest,\n} from './contracts/work-group';\nimport type { CampaignAccessResponse } from './contracts/access';\nimport type {\n CampaignCompanyPaginatedResponse,\n CampaignCompanyQueryParams,\n CampaignCompanyResponse,\n EnableCampaignCompanyRequest,\n} from './contracts/campaign-company';\n\n/**\n * Gateway for interacting with the Campaigns API.\n */\nexport class CampaignsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves a paginated list of campaigns.\n * @param query - Optional query parameters for filtering and pagination.\n * @returns The paginated campaigns response.\n */\n async find(query?: CampaignQueryParams): Promise<CampaignPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignPaginatedResponse>(`${this.baseUrl}/campaigns`, {\n params: query,\n });\n return data;\n }\n\n /**\n * Retrieves a campaign by its unique identifier.\n * @param id - The unique identifier of the campaign.\n * @returns The campaign data.\n */\n async get(id: string): Promise<Campaign> {\n const { data } = await this.httpClient.get<Campaign>(`${this.baseUrl}/campaigns/${id}`);\n return data;\n }\n\n /**\n * Creates a new campaign.\n * @param payload - The campaign data to create.\n * @returns The created campaign.\n */\n async create(payload: CreateCampaignRequest): Promise<Campaign> {\n const { data } = await this.httpClient.post<Campaign>(`${this.baseUrl}/campaigns`, payload);\n return data;\n }\n\n /**\n * Partially updates an existing campaign.\n * @param id - The unique identifier of the campaign.\n * @param payload - The fields to update.\n * @returns The updated campaign.\n */\n async patch(id: string, payload: PatchCampaignRequest): Promise<Campaign> {\n const { data } = await this.httpClient.patch<Campaign>(`${this.baseUrl}/campaigns/${id}`, payload);\n return data;\n }\n\n /**\n * Removes a campaign by its unique identifier.\n * @param id - The unique identifier of the campaign.\n * @returns The removed campaign.\n */\n async remove(id: string): Promise<Campaign> {\n const { data } = await this.httpClient.delete<Campaign>(`${this.baseUrl}/campaigns/${id}`);\n return data;\n }\n\n /**\n * Retrieves a paginated list of campaign contacts.\n * @param query - Optional query parameters for filtering and pagination.\n * @returns The paginated campaign contacts response.\n */\n async findCampaignContacts(query?: CampaignContactQueryParams): Promise<CampaignContactPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignContactPaginatedResponse>(`${this.baseUrl}/campaign-contacts`, {\n params: query,\n });\n return data;\n }\n\n /**\n * Retrieves a campaign contact by its unique identifier.\n * @param id - The unique identifier of the campaign contact.\n * @returns The campaign contact data.\n */\n async getCampaignContacts(id: string): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.get<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts/${id}`);\n return data;\n }\n\n /**\n * Creates a new campaign contact.\n * @param payload - The campaign contact data to create.\n * @returns The created campaign contact.\n */\n async createCampaignContact(payload: CreateCampaignContactRequest): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.post<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts`, payload);\n return data;\n }\n\n /**\n * Adds multiple contacts to a campaign in a single request.\n * @param payload - The list of campaign contacts to create.\n * @returns The created campaign contacts.\n */\n async addContactsToCampaign(payload: CreateCampaignContactRequest[]): Promise<CampaignContactResponse[]> {\n const { data } = await this.httpClient.post<CampaignContactResponse[]>(\n `${this.baseUrl}/campaign-contacts`,\n payload,\n );\n return data;\n }\n\n /**\n * Partially updates an existing campaign contact.\n * @param id - The unique identifier of the campaign contact.\n * @param payload - The fields to update.\n * @returns The updated campaign contact.\n */\n async patchCampaignContact(id: string, payload: PatchCampaignContactRequest): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.patch<CampaignContactResponse>(\n `${this.baseUrl}/campaign-contacts/${id}`,\n payload,\n );\n return data;\n }\n\n /**\n * Removes a campaign contact by its unique identifier.\n * @param id - The unique identifier of the campaign contact.\n * @returns The removed campaign contact.\n */\n async removeCampaignContact(id: string): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.delete<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts/${id}`);\n return data;\n }\n\n async getContactsDashboardData(\n query: CampaignContactsDashboardQueryParams,\n ): Promise<CampaignContactsDashboardData> {\n const { data } = await this.httpClient.get<CampaignContactsDashboardData>(\n `${this.baseUrl}/campaign-contacts-dashboard`,\n {\n params: query,\n },\n );\n return data;\n }\n\n async getUsers() {\n const { data } = await this.httpClient.get<CampaignUser[]>(`${this.baseUrl}/users`);\n return data;\n }\n\n async listWorkGroups(query?: CampaignWorkGroupQueryParams): Promise<CampaignWorkGroupPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignWorkGroupPaginatedResponse>(`${this.baseUrl}/work-groups`, {\n params: query,\n });\n return data;\n }\n\n async createWorkGroup(payload: CreateCampaignWorkGroupRequest): Promise<CampaignWorkGroup> {\n const { data } = await this.httpClient.post<CampaignWorkGroup>(`${this.baseUrl}/work-groups`, payload);\n return data;\n }\n\n async deleteWorkGroup(id: string): Promise<CampaignWorkGroup> {\n const { data } = await this.httpClient.delete<CampaignWorkGroup>(`${this.baseUrl}/work-groups/${id}`);\n return data;\n }\n\n /**\n * Lists company installations of the Campaigns module.\n * @param query - Optional query parameters (e.g. companyId, enabled).\n * @returns The paginated list of campaign company installations.\n */\n async findCampaignCompanies(query?: CampaignCompanyQueryParams): Promise<CampaignCompanyPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignCompanyPaginatedResponse>(\n `${this.baseUrl}/campaign-companies`,\n { params: query },\n );\n return data;\n }\n\n /**\n * Retrieves the Campaigns module installation for a given company.\n * @param companyId - The company identifier.\n * @returns The campaign company installation, or null when the module is not installed.\n */\n async getCampaignCompany(companyId: string): Promise<CampaignCompanyResponse | null> {\n try {\n const { data } = await this.httpClient.get<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies/${companyId}`,\n );\n return data;\n } catch (error) {\n if ((error as { response?: { status?: number } })?.response?.status === 404) {\n return null;\n }\n throw error;\n }\n }\n\n /**\n * Enables the Campaigns module for a given company.\n * @param payload - The enable request payload (companyId, optional enabledByUserId).\n * @returns The created campaign company installation.\n */\n async enableCampaignCompany(payload: EnableCampaignCompanyRequest): Promise<CampaignCompanyResponse> {\n const { data } = await this.httpClient.post<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies`,\n payload,\n );\n return data;\n }\n\n /**\n * Disables the Campaigns module for a given company by removing the installation record.\n * @param id - The campaign company installation id.\n * @returns The removed campaign company installation.\n */\n async disableCampaignCompany(id: string): Promise<CampaignCompanyResponse> {\n const { data } = await this.httpClient.delete<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies/${id}`,\n );\n return data;\n }\n\n /**\n * Checks whether the current caller has access to the Campaigns module.\n * @returns The access verdict for the authenticated user.\n */\n async getMyAccess(): Promise<CampaignAccessResponse> {\n const { data } = await this.httpClient.get<CampaignAccessResponse>(\n `${this.baseUrl}/campaigns-access`,\n );\n return data;\n }\n}\n\nexport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\n CampaignRetryConfig,\n CampaignStatus,\n CampaignProvider,\n WhatsAppPayload,\n WhatsAppTemplateComponent,\n CampaignContactFilter,\n CampaignSchedule,\n CreateCampaignRequest,\n PatchCampaignRequest,\n CampaignUser,\n} from './contracts/campaign';\nexport type {\n CampaignContactCampaignStatus,\n CampaignContactDispatchStatus,\n CampaignContactLikeQueryOperators,\n CampaignContactPaginatedResponse,\n CampaignContactQueryOperators,\n CampaignContactQueryParams,\n CampaignContactQueryValue,\n CampaignContactResponse,\n CampaignContactSortDirection,\n CampaignContactSortParams,\n CreateCampaignContactRequest,\n PatchCampaignContactRequest,\n} from './contracts/campaign-contacts';\nexport type {\n CampaignContactsDashboardChannelPerformance,\n CampaignContactsDashboardData,\n CampaignContactsDashboardExactQueryOperators,\n CampaignContactsDashboardEvolutionItem,\n CampaignContactsDashboardFunnelItem,\n CampaignContactsDashboardInterval,\n CampaignContactsDashboardMetrics,\n CampaignContactsDashboardQueryParams,\n CampaignContactsDashboardQueryValue,\n CampaignContactsDashboardRangeQueryOperators,\n CampaignContactsDashboardStatusDistribution,\n CampaignContactsDashboardStatusMetrics,\n CampaignContactsDashboardSummary,\n CampaignContactsDashboardTopCampaign,\n} from './contracts/campaign-contacts-dashboard';\nexport type {\n CampaignWorkGroup,\n CampaignWorkGroupPaginatedResponse,\n CampaignWorkGroupQueryParams,\n CreateCampaignWorkGroupRequest,\n} from './contracts/work-group';\nexport type { CampaignAccessResponse, CampaignAccessReason } from './contracts/access';\nexport type {\n CampaignCompanyPaginatedResponse,\n CampaignCompanyQueryParams,\n CampaignCompanyResponse,\n EnableCampaignCompanyRequest,\n} from './contracts/campaign-company';\n","import type { AxiosInstance } from 'axios';\nimport type { GetConfigTemplatesResponse, GetConfigTemplatesParams } from './contracts/chat-adapter';\n\n/**\n * Gateway for interacting with the Chat Adapter API.\n */\nexport class ChatAdapterGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves message templates associated with a configuration.\n * @param configId - The unique identifier of the configuration.\n * @param params - Optional query parameters for filtering and pagination.\n * @returns A promise that resolves to the template list response.\n */\n async getConfigTemplates(configId: string, params?: GetConfigTemplatesParams): Promise<GetConfigTemplatesResponse> {\n const { data } = await this.httpClient.get<GetConfigTemplatesResponse>(\n `${this.baseUrl}/message-templates/${configId}`,\n { params },\n );\n return data;\n }\n}\n\nexport type {\n GetConfigTemplatesResponse,\n GetConfigTemplatesParams,\n MessageTemplate,\n MessageTemplateComponent,\n ConfigTemplatesPaging,\n} from './contracts/chat-adapter';\n","import type { AxiosInstance } from 'axios';\nimport type { GetPresignedUrlRequest, UploadPresignedUrlResponse, AudioConvertResponse, GetAttachmentByIdRequest, AttachmentByIdResponse } from './contracts/assets';\n\n/**\n * Gateway for interacting with the Assets API.\n */\nexport class AssetsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n /**\n * Retrieves a presigned URL to upload a file to the Assets API.\n * @param params - The configuration options and parameters for the presigned URL.\n * @returns The presigned URL details wrapped in a {@link UploadPresignedUrlResponse}.\n */\n async getPresignedUrl(params: GetPresignedUrlRequest): Promise<UploadPresignedUrlResponse> {\n const { data } = await this.httpClient.get<UploadPresignedUrlResponse>(`${this.baseUrl}/uploads/presigned-url`, {\n params,\n });\n return data;\n }\n\n /**\n * Converts an audio file to M4A format via the Assets API.\n * @param params - The audio file to convert.\n * @param params.file - The audio file to upload for conversion.\n * @returns The converted audio response with base64-encoded data, mimetype, extension and filename.\n */\n async convertAudioToM4A(formData: any): Promise<AudioConvertResponse> {\n const { data } = await this.httpClient.post<AudioConvertResponse>(\n `${this.baseUrl}/whatsapp/audio-convert`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n },\n );\n return data;\n }\n\n /**\n * Fetches an attachment by its file ID or storage key.\n *\n * When `key` is provided, the path is built from the key directly and no\n * `x-bucket-provider` header is sent. Otherwise, `fileId` and `provider` are\n * used to build the path and the provider header respectively.\n *\n * @param params - The parameters identifying the attachment.\n * @returns A signed URL to access the attachment.\n */\n async getAttachmentById(params: GetAttachmentByIdRequest): Promise<AttachmentByIdResponse> {\n const path = params.key\n ? `/uploads/${encodeURIComponent(params.key)}`\n : `/uploads/${encodeURIComponent(params.fileId!)}`;\n\n const axiosParams: Record<string, string> = {};\n\n if (params.download) axiosParams.download = 'true';\n if (params.filename) axiosParams.filename = params.filename;\n const headers: Record<string, string> = {};\n if (!params.key && params.provider) headers['x-bucket-provider'] = params.provider!;\n\n const { data } = await this.httpClient.get<AttachmentByIdResponse>(`${this.baseUrl}${path}`, {\n params: axiosParams,\n headers,\n });\n return data;\n }\n}\n\nexport type {\n GetPresignedUrlRequest,\n UploadPresignedUrlResponse,\n IUploadPresignedUrlResponse,\n AudioConvertResponse,\n GetAttachmentByIdRequest,\n AttachmentByIdResponse,\n} from './contracts/assets';\n","import type { AxiosInstance } from 'axios';\nimport type {\n ContactPhoneSearchResponse,\n GetContactPhonesParams,\n ContactCategoryResponse,\n} from './contracts/contact-phone';\n\n/**\n * Gateway for interacting with the Contact List API.\n */\nexport class ContactListGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Searches for contact phones with optional filtering and pagination.\n * @param params - The query parameters for the search.\n * @returns The paginated contact phones response.\n */\n async getContactsPhones(params: GetContactPhonesParams): Promise<ContactPhoneSearchResponse> {\n const { data } = await this.httpClient.get<ContactPhoneSearchResponse>(\n `${this.baseUrl}/contact/phone/search`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves all contact categories.\n * @returns An array of contact categories.\n */\n async getCategoryList(): Promise<ContactCategoryResponse[]> {\n const { data } = await this.httpClient.get<ContactCategoryResponse[]>(\n `${this.baseUrl}/contact/category`,\n );\n return data;\n }\n}\n\nexport type {\n ContactPhoneSearchResponse,\n GetContactPhonesParams,\n ContactPhoneResponse,\n ContactCategoryResponse,\n} from './contracts/contact-phone';\n","import type { AxiosInstance } from 'axios';\nimport type {\n CreateIntegrationActionRequest,\n CreateWebhookRequest,\n CreateIntegrationFieldRequest,\n CreateIntegrationPartnerRequest,\n DeleteIntegrationActionParams,\n DeleteIntegrationFieldParams,\n DeleteIntegrationPartnerParams,\n GetIntegrationHooksCatalogRequest,\n GetWebhooksByCompanyRequest,\n GetIntegrationPartnersByCompanyRequest,\n HookCatalogItem,\n IntegrationAction,\n IntegrationField,\n IntegrationPartner,\n UpdateIntegrationActionParams,\n UpdateIntegrationActionRequest,\n UpdateIntegrationFieldParams,\n UpdateIntegrationFieldRequest,\n} from './contracts';\n\n/**\n * Gateway for interacting with the Integrations API.\n */\nexport class IntegrationsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves all integration partners configured for a company.\n * @param companyId - The company identifier.\n * @returns The integration partners configured for the company.\n */\n async getPartnersByCompany({ companyId, name }: GetIntegrationPartnersByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/partner/company/${companyId}`, {\n params: name ? { name } : undefined,\n });\n return data;\n }\n\n /** Retrieves the webhooks scenario for a company. */\n async getWebhooksByCompany(params: GetWebhooksByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/webhooks`, {\n params,\n });\n return data;\n }\n\n /**\n * Retrieves the hook catalog, optionally scoped by module.\n * @param module - The optional module identifier used by the Integrations API filter.\n * @returns The hook catalog items, filtered by module when provided.\n */\n async getHooksCatalog({ module }: GetIntegrationHooksCatalogRequest = {}): Promise<HookCatalogItem[]> {\n const { data } = await this.httpClient.get<HookCatalogItem[]>(`${this.baseUrl}/hooks`, {\n params: module ? { module } : undefined,\n });\n return data;\n }\n\n /**\n * Creates an integration partner.\n * @param payload - The partner creation payload.\n * @returns The created integration partner.\n */\n async createPartner(payload: CreateIntegrationPartnerRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/partner`, payload);\n return data;\n }\n\n /** Creates a webhook. */\n async createWebhook(payload: CreateWebhookRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/webhooks`, payload);\n return data;\n }\n\n /**\n * Deletes an integration partner.\n * @param partnerId - The partner identifier.\n * @returns A promise that resolves when the partner is deleted.\n */\n async deletePartner({ partnerId }: DeleteIntegrationPartnerParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/partner/${partnerId}`);\n }\n\n /**\n * Creates an integration action.\n * @param payload - The action creation payload.\n * @returns The created integration action.\n */\n async createAction(payload: CreateIntegrationActionRequest): Promise<IntegrationAction> {\n const { data } = await this.httpClient.post<IntegrationAction>(`${this.baseUrl}/action`, {\n ...payload,\n actionName: payload.actionName ?? payload.hook,\n });\n return data;\n }\n\n /**\n * Updates an integration action.\n * @param actionId - The action identifier.\n * @param payload - The action update payload.\n * @returns The updated integration action.\n */\n async updateAction({ actionId, payload }: UpdateIntegrationActionParams): Promise<IntegrationAction> {\n const { data } = await this.httpClient.patch<IntegrationAction>(`${this.baseUrl}/action/${actionId}`, payload);\n return data;\n }\n\n /**\n * Creates an integration action field/header.\n * @param payload - The field creation payload.\n * @returns The created integration field.\n */\n async createField(payload: CreateIntegrationFieldRequest): Promise<IntegrationField> {\n const { data } = await this.httpClient.post<IntegrationField>(`${this.baseUrl}/field`, payload);\n return data;\n }\n\n /**\n * Updates an integration action field/header.\n * @param fieldId - The field identifier.\n * @param payload - The field update payload.\n * @returns The updated integration field response.\n */\n async updateField({ fieldId, payload }: UpdateIntegrationFieldParams): Promise<IntegrationField | number[]> {\n const { data } = await this.httpClient.put<IntegrationField | number[]>(`${this.baseUrl}/field/${fieldId}`, payload);\n return data;\n }\n\n /**\n * Deletes an integration action field/header.\n * @param fieldId - The field identifier.\n * @returns A promise that resolves when the field is deleted.\n */\n async deleteField({ fieldId }: DeleteIntegrationFieldParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/field/${fieldId}`);\n }\n\n /**\n * Deletes an integration action.\n * @param actionId - The action identifier.\n * @returns A promise that resolves when the action is deleted.\n */\n async deleteAction({ actionId }: DeleteIntegrationActionParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/action/${actionId}`);\n }\n}\n\nexport type {\n CreateIntegrationActionRequest,\n CreateWebhookRequest,\n CreateIntegrationFieldRequest,\n CreateIntegrationPartnerRequest,\n DeleteIntegrationActionParams,\n DeleteIntegrationFieldParams,\n DeleteIntegrationPartnerParams,\n GetIntegrationHooksCatalogRequest,\n GetWebhooksByCompanyRequest,\n GetIntegrationPartnersByCompanyRequest,\n HookCatalogItem,\n IntegrationAction,\n IntegrationField,\n IntegrationPartner,\n UpdateIntegrationActionParams,\n UpdateIntegrationActionRequest,\n UpdateIntegrationFieldParams,\n UpdateIntegrationFieldRequest,\n} from './contracts';\n","import type { AxiosInstance } from 'axios';\nimport type {\n CancelInvitationRequest,\n ListInvitationsRequest,\n ReplyInvitationRequest,\n InvitationResponse,\n ListLiveUserRoomsRequest,\n LiveUserRoomResponse,\n GetRoomByIdRequest,\n RoomResponse,\n} from './contracts';\n\n/**\n * Gateway for interacting with the Chat Webservice API.\n */\nexport class ChatWebserviceGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Lists chat invitations for a user within a company.\n * @param params - The user, company, and invitation status filters.\n * @returns The matching chat invitations.\n */\n async listInvitations(params: ListInvitationsRequest): Promise<InvitationResponse[]> {\n const { data } = await this.httpClient.get<InvitationResponse[]>(`${this.baseUrl}/invitations`, { params });\n return data;\n }\n\n /**\n * Replies to a chat invitation.\n * @param payload - The invitation identifier to reply to.\n * @returns The updated chat invitations.\n */\n async replyInvitation(payload: ReplyInvitationRequest): Promise<InvitationResponse[]> {\n const { data } = await this.httpClient.put<InvitationResponse[]>(`${this.baseUrl}/invitations/reply`, payload);\n return data;\n }\n\n /**\n * Cancels a chat invitation for a room.\n * @param roomId - The chat room identifier.\n * @param payload - The delegator identifier used to cancel the invitation.\n */\n async cancelInvitation(roomId: number, payload: CancelInvitationRequest): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/invitations/chat/${roomId}`, {\n data: payload,\n });\n }\n\n /**\n * Lists live rooms assigned to a user.\n * @param params - The recipient, company, and open-status filters.\n * @returns The live room entries for the user.\n */\n async listLiveUserRooms(params: ListLiveUserRoomsRequest): Promise<LiveUserRoomResponse[]> {\n const { data } = await this.httpClient.get<LiveUserRoomResponse[]>(`${this.baseUrl}/member/rooms/live`, { params });\n return data;\n }\n\n /**\n * Retrieves a chat room by its identifier.\n * @param id - The unique identifier of the room.\n * @param params - Optional query parameters for scoping and member inclusion.\n * @returns The chat room data.\n */\n async getRoomById(id: number, params: GetRoomByIdRequest = {}): Promise<RoomResponse> {\n const { data } = await this.httpClient.get<RoomResponse>(`${this.baseUrl}/room/${id}`, { params });\n return data;\n }\n}\n\nexport type {\n CancelInvitationRequest,\n GetRoomByIdRequest,\n InvitationResponse,\n ListInvitationsRequest,\n ListLiveUserRoomsRequest,\n LiveUserRoomResponse,\n ReplyInvitationRequest,\n RoomActiveDates,\n RoomMemberResponse,\n RoomResponse,\n RoomTagResponse,\n} from './contracts';\n","import type { AxiosInstance } from 'axios';\nimport type { ContactHistoryResponse, ListContactHistoryRequest } from './contracts/contact-history';\n\n/**\n * Gateway for interacting with the Call Report API.\n */\nexport class CallReportGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Lists contact interaction history across chat and CDR indexes.\n * @param params - Optional filters, pagination, and index selection.\n * @returns The paginated contact history response.\n */\n async listContactHistory(params: ListContactHistoryRequest = {}): Promise<ContactHistoryResponse> {\n const { data } = await this.httpClient.get<ContactHistoryResponse>(`${this.baseUrl}/history/index/multi`, {\n params,\n });\n return data;\n }\n}\n\nexport type {\n ContactHistoryIndex,\n ContactHistoryResponse,\n ContactHistorySortOrder,\n ContactInteractionResponse,\n InteractionCallStepResponse,\n InteractionChatStepResponse,\n InteractionMemberResponse,\n InteractionOrganizationResponse,\n ListContactHistoryRequest,\n} from './contracts/contact-history';\n","import type { AxiosInstance } from 'axios';\nimport type { IntegrationPartner } from '../integrations/contracts';\nimport type {\n CasePermissions,\n CommentHistoryCursor,\n CommentHistoryPage,\n GetCommentHistoryRequest,\n UpdateCasePermissionsRequest,\n} from './contracts';\nimport type { GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './contracts/case-feed-by-actions';\n\n/** Request parameters for retrieving the webhooks scenario for a company. */\nexport interface GetWebhooksByCompanyRequest {\n companyId: string;\n}\n\n/** Request payload for creating a webhooks scenario. */\nexport interface CreateWebhookRequest {\n companyId: string;\n baseUrl: string;\n}\n\n/**\n * Gateway for interacting with the Cases API.\n */\nexport class CasesGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /** Retrieves the webhooks scenario for a company. */\n async getWebhooksByCompany(params: GetWebhooksByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/webhooks`, {\n params,\n });\n return data;\n }\n\n /** Creates a webhook. */\n async createWebhook(payload: CreateWebhookRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/webhooks`, payload);\n return data;\n }\n\n /** Retrieves one chronological page of the edit/delete history of a case comment. */\n async getCommentHistory(params: GetCommentHistoryRequest): Promise<CommentHistoryPage> {\n const query: { limit?: number; cursor?: CommentHistoryCursor } = {};\n if (params.limit !== undefined) query.limit = params.limit;\n if (params.cursor !== undefined) query.cursor = params.cursor;\n\n const { data } = await this.httpClient.get<CommentHistoryPage>(\n `${this.baseUrl}/comment/history/${params.commentId}`,\n { params: query },\n );\n return data;\n }\n\n /** Retrieves the Cases permission configuration for the current company. */\n async getCasePermissions(): Promise<CasePermissions> {\n const { data } = await this.httpClient.get<CasePermissions>(`${this.baseUrl}/case-settings/permissions`);\n return data;\n }\n\n /** Updates the Cases permission configuration for the current company. */\n async updateCasePermissions(payload: UpdateCasePermissionsRequest): Promise<CasePermissions> {\n const { data } = await this.httpClient.patch<CasePermissions>(\n `${this.baseUrl}/case-settings/permissions`,\n payload,\n );\n return data;\n }\n\n /**\n * Retrieves case feed entries for a batch of action IDs.\n * @param payload - The action type and list of action IDs to look up.\n * @returns Array of case feed items linking each action to a case.\n */\n async getCaseFeedByActions(payload: GetCaseFeedByActionsRequest): Promise<CaseFeedByActionItem[]> {\n const { data } = await this.httpClient.post<CaseFeedByActionItem[]>(\n `${this.baseUrl}/cases-feed/by-actions`,\n payload,\n );\n return data;\n }\n}\n\nexport type {\n CommentHistoryEntry,\n CommentHistoryChangeType,\n CommentHistoryCursor,\n CommentHistoryPage,\n GetCommentHistoryRequest,\n} from './contracts/comment-history';\nexport type { CasePermissions, CasePermissionsValue, UpdateCasePermissionsRequest } from './contracts/case-permissions';\nexport type { GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './contracts/case-feed-by-actions';\n","import type { AxiosInstance } from 'axios';\n\n/**\n * Gateway for interacting with the RH API.\n */\nexport class RhGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n}\n\nexport type { Event } from './contracts/event';\n","import { CustomerServiceGateway } from '../customer-service';\nimport { ChatConfigGateway } from '../chat-config';\nimport { CampaignsGateway } from '../campaigns';\nimport { ChatAdapterGateway } from '../chat-adapter';\nimport { AssetsGateway } from '../assets';\nimport { ContactListGateway } from '../contact-list';\nimport { IntegrationsGateway } from '../integrations';\nimport { ChatWebserviceGateway } from '../chat-webservice';\nimport { CallReportGateway } from '../call-report';\nimport { CasesGateway } from '../cases';\nimport { RhGateway } from '../rh';\nimport axios, { AxiosInstance } from 'axios';\n\n/**\n * Maps service identifiers to their corresponding gateway types.\n * Used by the `gateway()` function to infer the correct return type\n * based on the service name passed as argument.\n *\n * When adding a new service, add an entry here with the service\n * identifier as the key and the gateway class as the value.\n */\nexport type GatewayMap = {\n 'customer-service': CustomerServiceGateway;\n 'chat-config': ChatConfigGateway;\n campaigns: CampaignsGateway;\n 'chat-adapter': ChatAdapterGateway;\n assets: AssetsGateway;\n 'contact-list': ContactListGateway;\n integrations: IntegrationsGateway;\n 'chat-webservice': ChatWebserviceGateway;\n 'call-report': CallReportGateway;\n cases: CasesGateway;\n rh: RhGateway;\n};\n\nexport interface SDKGatewaysInterface {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n contactList: ContactListGateway | null;\n integrations: IntegrationsGateway | null;\n chatWebservice: ChatWebserviceGateway | null;\n callReport: CallReportGateway | null;\n cases: CasesGateway | null;\n rh: RhGateway | null;\n}\n\nclass SDKGateways {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n contactList: ContactListGateway | null;\n integrations: IntegrationsGateway | null;\n chatWebservice: ChatWebserviceGateway | null;\n callReport: CallReportGateway | null;\n cases: CasesGateway | null;\n rh: RhGateway | null;\n constructor(\n customerService: CustomerServiceGateway | null,\n chatConfig: ChatConfigGateway | null,\n campaigns: CampaignsGateway | null,\n chatAdapter: ChatAdapterGateway | null,\n assets: AssetsGateway | null,\n contactList: ContactListGateway | null,\n integrations: IntegrationsGateway | null,\n chatWebservice: ChatWebserviceGateway | null,\n callReport: CallReportGateway | null,\n cases: CasesGateway | null,\n rh: RhGateway | null,\n ) {\n this.customerService = customerService;\n this.chatConfig = chatConfig;\n this.campaigns = campaigns;\n this.chatAdapter = chatAdapter;\n this.assets = assets;\n this.contactList = contactList;\n this.integrations = integrations;\n this.chatWebservice = chatWebservice;\n this.callReport = callReport;\n this.cases = cases;\n this.rh = rh;\n }\n}\n\n/**\n * Parameters required to configure the SDK client.\n * Each service configuration is optional, only provide the services you need.\n */\nexport interface GatewayClientParams {\n /** An Axios instance used as the HTTP client for all gateway requests (optional). */\n axiosClient?: AxiosInstance;\n /** API token used for authentication across all services. */\n apiToken: string;\n /** Configuration for each service gateway. Only the services you configure will be available. */\n services: {\n customerService?: {\n baseUrl: string;\n };\n chatConfig?: {\n baseUrl: string;\n };\n campaigns?: {\n baseUrl: string;\n };\n chatAdapter?: {\n baseUrl: string;\n };\n assets?: {\n baseUrl: string;\n };\n contactList?: {\n baseUrl: string;\n };\n integrations?: {\n baseUrl: string;\n };\n chatWebservice?: {\n baseUrl: string;\n };\n callReport?: {\n baseUrl: string;\n };\n cases?: {\n baseUrl: string;\n };\n rh?: {\n baseUrl: string;\n };\n };\n}\n\n/**\n * Creates an SDKGateways instance with all service gateways initialized\n * using the provided configuration parameters.\n * Services without configuration will be set to null and will throw\n * an error if accessed via `gateway()`.\n */\nexport function createClient(params: GatewayClientParams) {\n const httpClient =\n params.axiosClient ||\n axios.create({\n headers: {\n Authorization: `Bearer ${params.apiToken}`,\n },\n });\n const customerService = params.services.customerService\n ? new CustomerServiceGateway(httpClient, params.services.customerService.baseUrl)\n : null;\n const chatConfig = params.services.chatConfig\n ? new ChatConfigGateway(httpClient, params.services.chatConfig.baseUrl)\n : null;\n const campaigns = params.services.campaigns\n ? new CampaignsGateway(httpClient, params.services.campaigns.baseUrl)\n : null;\n const chatAdapter = params.services.chatAdapter\n ? new ChatAdapterGateway(httpClient, params.services.chatAdapter.baseUrl)\n : null;\n const assets = params.services.assets ? new AssetsGateway(httpClient, params.services.assets.baseUrl) : null;\n const contactList = params.services.contactList\n ? new ContactListGateway(httpClient, params.services.contactList.baseUrl)\n : null;\n const integrations = params.services.integrations\n ? new IntegrationsGateway(httpClient, params.services.integrations.baseUrl)\n : null;\n const chatWebservice = params.services.chatWebservice\n ? new ChatWebserviceGateway(httpClient, params.services.chatWebservice.baseUrl)\n : null;\n const callReport = params.services.callReport\n ? new CallReportGateway(httpClient, params.services.callReport.baseUrl)\n : null;\n const cases = params.services.cases ? new CasesGateway(httpClient, params.services.cases.baseUrl) : null;\n const rh = params.services.rh ? new RhGateway(httpClient, params.services.rh.baseUrl) : null;\n return new SDKGateways(\n customerService,\n chatConfig,\n campaigns,\n chatAdapter,\n assets,\n contactList,\n integrations,\n chatWebservice,\n callReport,\n cases,\n rh,\n );\n}\n","export const SERVICE_GATEWAYS = {\n CUSTOMER_SERVICE: 'customer-service',\n CHAT_CONFIG: 'chat-config',\n CAMPAIGNS: 'campaigns',\n CHAT_ADAPTER: 'chat-adapter',\n ASSETS: 'assets',\n CONTACT_LIST: 'contact-list',\n INTEGRATIONS: 'integrations',\n CHAT_WEBSERVICE: 'chat-webservice',\n CALL_REPORT: 'call-report',\n CASES: 'cases',\n RH: 'rh',\n} as const;\n\nexport type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];\n"],"mappings":"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","names":["module","axios"]}
package/dist/index.mjs CHANGED
@@ -789,6 +789,16 @@ var CasesGateway = class {
789
789
  }
790
790
  };
791
791
 
792
+ // src/rh/index.ts
793
+ var RhGateway = class {
794
+ constructor(httpClient, baseUrl) {
795
+ this.httpClient = httpClient;
796
+ this.baseUrl = baseUrl;
797
+ }
798
+ httpClient;
799
+ baseUrl;
800
+ };
801
+
792
802
  // src/@common/client.ts
793
803
  import axios from "axios";
794
804
  var SDKGateways = class {
@@ -802,7 +812,8 @@ var SDKGateways = class {
802
812
  chatWebservice;
803
813
  callReport;
804
814
  cases;
805
- constructor(customerService, chatConfig, campaigns, chatAdapter, assets, contactList, integrations, chatWebservice, callReport, cases) {
815
+ rh;
816
+ constructor(customerService, chatConfig, campaigns, chatAdapter, assets, contactList, integrations, chatWebservice, callReport, cases, rh) {
806
817
  this.customerService = customerService;
807
818
  this.chatConfig = chatConfig;
808
819
  this.campaigns = campaigns;
@@ -813,6 +824,7 @@ var SDKGateways = class {
813
824
  this.chatWebservice = chatWebservice;
814
825
  this.callReport = callReport;
815
826
  this.cases = cases;
827
+ this.rh = rh;
816
828
  }
817
829
  };
818
830
  function createClient(params) {
@@ -831,6 +843,7 @@ function createClient(params) {
831
843
  const chatWebservice = params.services.chatWebservice ? new ChatWebserviceGateway(httpClient, params.services.chatWebservice.baseUrl) : null;
832
844
  const callReport = params.services.callReport ? new CallReportGateway(httpClient, params.services.callReport.baseUrl) : null;
833
845
  const cases = params.services.cases ? new CasesGateway(httpClient, params.services.cases.baseUrl) : null;
846
+ const rh = params.services.rh ? new RhGateway(httpClient, params.services.rh.baseUrl) : null;
834
847
  return new SDKGateways(
835
848
  customerService,
836
849
  chatConfig,
@@ -841,7 +854,8 @@ function createClient(params) {
841
854
  integrations,
842
855
  chatWebservice,
843
856
  callReport,
844
- cases
857
+ cases,
858
+ rh
845
859
  );
846
860
  }
847
861
 
@@ -856,7 +870,8 @@ var SERVICE_GATEWAYS = {
856
870
  INTEGRATIONS: "integrations",
857
871
  CHAT_WEBSERVICE: "chat-webservice",
858
872
  CALL_REPORT: "call-report",
859
- CASES: "cases"
873
+ CASES: "cases",
874
+ RH: "rh"
860
875
  };
861
876
 
862
877
  // src/index.ts
@@ -916,6 +931,10 @@ function gateway(service) {
916
931
  if (!sdk.client.cases)
917
932
  throw new Error(`Service 'cases' is not configured. Provide its baseUrl in configure().`);
918
933
  return sdk.client.cases;
934
+ case SERVICE_GATEWAYS.RH:
935
+ if (!sdk.client.rh)
936
+ throw new Error(`Service 'rh' is not configured. Provide its baseUrl in configure().`);
937
+ return sdk.client.rh;
919
938
  default:
920
939
  throw new Error(`Unknown service gateway: ${service}`);
921
940
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/customer-service/index.ts","../src/chat-config/index.ts","../src/campaigns/index.ts","../src/chat-adapter/index.ts","../src/assets/index.ts","../src/contact-list/index.ts","../src/integrations/index.ts","../src/chat-webservice/index.ts","../src/call-report/index.ts","../src/cases/index.ts","../src/@common/client.ts","../src/@common/enums.ts","../src/index.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios';\nimport type { CompanyResponse } from './contracts/company';\nimport type {\n WorkGroupListResponse,\n WorkGroupMembersResponse,\n WorkGroupResponse,\n} from './contracts/work-group';\nimport type {\n GetAllUsersParams,\n GetAllUsersResponse,\n GetManagedUsersResponse,\n} from './contracts/user';\n\n/**\n * Gateway for interacting with the Customer Service API.\n */\nexport class CustomerServiceGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves a company by its unique identifier.\n * @param companyId - The unique identifier of the company.\n * @returns The company data wrapped in a {@link CompanyResponse}.\n */\n async getCompanyById(companyId: string): Promise<CompanyResponse> {\n const { data } = await this.httpClient.get<CompanyResponse>(`${this.baseUrl}/companies/search/${companyId}`);\n return data;\n }\n\n /**\n * Retrieves all work groups for a company.\n * @param companyId - The unique identifier of the company.\n * @returns The work groups for the given company.\n */\n async getWorkGroups(companyId: string): Promise<WorkGroupListResponse> {\n const { data } = await this.httpClient.get<WorkGroupListResponse>(\n `${this.baseUrl}/companies/work-groups`,\n { params: { company_id: companyId } },\n );\n return data;\n }\n\n /**\n * Retrieves a work group by its unique identifier.\n * @param workGroupId - The unique identifier of the work group.\n * @param companyId - The unique identifier of the company (optional, sent as query parameter).\n * @returns The work group data wrapped in a {@link WorkGroupResponse}.\n */\n async getWorkGroupById(workGroupId: string, companyId?: string): Promise<WorkGroupResponse> {\n const params = companyId ? { company_id: companyId } : undefined;\n const { data } = await this.httpClient.get<WorkGroupResponse>(\n `${this.baseUrl}/companies/work-groups/${workGroupId}`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves the members of a work group by its identifier.\n * @param groupId - The unique identifier of the work group.\n * @param companyId - The unique identifier of the company (optional, sent as query parameter).\n * @param profile - Filter members by profile (optional).\n * @returns The members of the work group.\n */\n async getWorkGroupMembers(\n groupId: string,\n companyId?: string,\n profile?: string[],\n ): Promise<WorkGroupMembersResponse> {\n const params: { company_id?: string; profile?: string[] } = {};\n if (companyId) params.company_id = companyId;\n if (profile) params.profile = profile;\n const { data } = await this.httpClient.get<WorkGroupMembersResponse>(\n `${this.baseUrl}/bonds/work-groups/${groupId}`,\n { params },\n );\n return data;\n }\n\n async getAllUsers(params?: GetAllUsersParams): Promise<GetAllUsersResponse> {\n const { data } = await this.httpClient.get<GetAllUsersResponse>(\n `${this.baseUrl}/companies/users`,\n { params },\n );\n return data;\n }\n\n async getManagedUsers(managerId: string): Promise<GetManagedUsersResponse> {\n const { data } = await this.httpClient.get<GetManagedUsersResponse>(\n `${this.baseUrl}/users/managed/${managerId}`,\n );\n return data;\n }\n}\n\nexport type { CompanyResponse, CompanyData } from './contracts/company';\nexport type {\n WorkGroup,\n WorkGroupMember,\n WorkGroupMembersResponse,\n WorkGroupListResponse,\n WorkGroupResponse,\n} from './contracts/work-group';\nexport type {\n User,\n GetAllUsersParams,\n GetAllUsersResponse,\n ManagedUser,\n GetManagedUsersResponse,\n} from './contracts/user';","import type { AxiosInstance } from 'axios';\nimport type {\n GetProviderConfigurationsParams,\n GetProviderDisplayInfoParams,\n ProviderConfigurationsResponse,\n ProviderDisplayInfoResponse,\n ProviderListResponse,\n} from './contracts/provider';\nimport type { ConfigListByProviderResponse, GetConfigsByProviderParams } from './contracts/config';\nimport type {\n GetServiceGroupsParams,\n Queue,\n QueueListResponse,\n QueueMember,\n GetMemberQueuesRequest,\n ServiceGroupsResponse,\n} from './contracts/queues';\nimport type { MetaTemplateConfigResponse, MetaTemplateConfigsResponse } from './contracts/meta-template';\nimport type {\n FindOrCreateQueueRuleRequest,\n GetRootRulesRequest,\n RootRulesResponse,\n Rule,\n QueueRule,\n} from './contracts/rule';\n\n/**\n * Gateway for interacting with the Chat Config API.\n */\nexport class ChatConfigGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves all available providers.\n * @returns The list of providers.\n */\n async getProviders(): Promise<ProviderListResponse> {\n const { data } = await this.httpClient.get<ProviderListResponse>(`${this.baseUrl}/providers`);\n return data;\n }\n\n /**\n * Retrieves provider configurations filtered by configuration IDs.\n * @param params - Query parameters containing one or more configuration IDs.\n * @returns The provider configurations matching the given IDs.\n */\n async getProviderConfigurations(params?: GetProviderConfigurationsParams): Promise<ProviderConfigurationsResponse> {\n const url = `${this.baseUrl}/providers/configurations`;\n const { data } = await this.httpClient.get<ProviderConfigurationsResponse>(url, { params: params });\n return data;\n }\n\n /**\n * Retrieves normalized display info for a provider configuration.\n * Always returns the same shape across providers (`id`, `provider`, `name`, `channel`).\n * @param params - Query parameters with `provider` and `configId`.\n * @returns The display info for the given configuration.\n */\n async getProviderDisplayInfo(params: GetProviderDisplayInfoParams): Promise<ProviderDisplayInfoResponse> {\n const { data } = await this.httpClient.get<ProviderDisplayInfoResponse>(\n `${this.baseUrl}/providers/configs/display-info`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves configurations filtered by provider.\n * @param providerId - The unique identifier of the provider.\n * @param params - Optional query parameters for filtering configurations.\n * @returns The configurations for the given provider.\n */\n async getConfigsByProvider(\n providerId: string,\n params?: GetConfigsByProviderParams,\n ): Promise<ConfigListByProviderResponse> {\n const { data } = await this.httpClient.get<ConfigListByProviderResponse>(\n `${this.baseUrl}/config/provider/${providerId}`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves a queue by its ID.\n * @param queueId - The unique identifier of the queue.\n * @returns The queue data.\n */\n async getQueueById(queueId: string): Promise<Queue> {\n const { data } = await this.httpClient.get<Queue>(`${this.baseUrl}/queues/${queueId}`);\n return data;\n }\n\n async getQueues(): Promise<Queue[]> {\n const { data } = await this.httpClient.get<Queue[]>(`${this.baseUrl}/queues`);\n return data;\n }\n\n /**\n * Lists queue memberships for a member.\n * @param params - The member identifier and optional association filter.\n * @returns The queue memberships for the given member.\n */\n async getMemberQueues(params: GetMemberQueuesRequest): Promise<QueueMember[]> {\n const { data } = await this.httpClient.get<QueueMember[]>(`${this.baseUrl}/queue-members`, { params });\n return data;\n }\n\n /**\n * Retrieves service groups filtered by service group IDs.\n * @param params - Query parameters containing one or more service group IDs.\n * @returns The service groups matching the given IDs.\n */\n async getServiceGroups(params?: GetServiceGroupsParams): Promise<ServiceGroupsResponse> {\n const url = `${this.baseUrl}/service-groups`;\n const { data } = await this.httpClient.get<ServiceGroupsResponse>(url, { params: params });\n return data;\n }\n\n /**\n * Retrieves a Meta template configuration by its ID.\n * @param templateId - The unique identifier of the template.\n * @returns The Meta template configuration.\n */\n async getMetaTemplateById(templateId: string): Promise<MetaTemplateConfigResponse> {\n const { data } = await this.httpClient.get<MetaTemplateConfigResponse>(\n `${this.baseUrl}/meta-templates-config/${templateId}`,\n );\n return data;\n }\n\n /**\n * Retrieves template configurations associated with a configuration ID.\n * @param configId - The configuration identifier.\n * @returns The list of template configurations.\n */\n async getTemplateConfigsByConfigId(configId: string): Promise<MetaTemplateConfigsResponse> {\n const { data } = await this.httpClient.get<MetaTemplateConfigsResponse>(\n `${this.baseUrl}/meta-templates-config/config/${configId}`,\n );\n return data;\n }\n\n /**\n * Finds an existing queue rule or creates a new one if it does not exist.\n * @param payload - The payload containing companyId, queueId, and configId.\n * @returns The found or created queue rule.\n */\n async findOrCreateQueueRule(payload: FindOrCreateQueueRuleRequest): Promise<QueueRule> {\n const { data } = await this.httpClient.put<QueueRule>(`${this.baseUrl}/rules/queue/find-or-create`, payload);\n return data;\n }\n\n /**\n * @param params - The company and pagination parameters.\n * @returns The paginated initial service rules.\n */\n async getRootRules(params: GetRootRulesRequest): Promise<RootRulesResponse> {\n const { data } = await this.httpClient.get<RootRulesResponse>(`${this.baseUrl}/rules/paginated`, {\n params: {\n archiveStatus: 'unarchived',\n companyId: params.companyId,\n offset: params.offset,\n limit: params.limit,\n name: params?.name,\n isRoot: true,\n },\n });\n return data;\n }\n}\n\nexport type {\n GetServiceGroupsParams,\n Queue,\n QueueMember,\n DistributionType,\n QueueListResponse,\n ServiceGroup,\n ServiceGroupsResponse,\n} from './contracts/queues';\nexport type {\n GetProviderConfigurationsParams,\n GetProviderDisplayInfoParams,\n ProviderConfiguration,\n ProviderConfigurationsResponse,\n ProviderDisplayInfoResponse,\n ProviderListResponse,\n Provider,\n ProviderName,\n WhatsAppProviderSettings,\n WidgetProviderSettings,\n} from './contracts/provider';\nexport type {\n ConfigListByProviderResponse,\n Config,\n ConfigProvider,\n GetConfigsByProviderParams,\n} from './contracts/config';\nexport type {\n MetaTemplateButton,\n MetaTemplateConfigResponse,\n MetaTemplateConfigsResponse,\n} from './contracts/meta-template';\nexport type { FindOrCreateQueueRuleRequest, QueueRule, RootRulesResponse, Rule } from './contracts/rule';\n","import type { AxiosInstance } from 'axios';\nimport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\n CreateCampaignRequest,\n PatchCampaignRequest,\n CampaignUser,\n} from './contracts/campaign';\nimport type {\n CampaignContactPaginatedResponse,\n CampaignContactQueryParams,\n CampaignContactResponse,\n CreateCampaignContactRequest,\n PatchCampaignContactRequest,\n} from './contracts/campaign-contacts';\nimport type {\n CampaignContactsDashboardData,\n CampaignContactsDashboardQueryParams,\n} from './contracts/campaign-contacts-dashboard';\nimport type {\n CampaignWorkGroup,\n CampaignWorkGroupPaginatedResponse,\n CampaignWorkGroupQueryParams,\n CreateCampaignWorkGroupRequest,\n} from './contracts/work-group';\nimport type { CampaignAccessResponse } from './contracts/access';\nimport type {\n CampaignCompanyPaginatedResponse,\n CampaignCompanyQueryParams,\n CampaignCompanyResponse,\n EnableCampaignCompanyRequest,\n} from './contracts/campaign-company';\n\n/**\n * Gateway for interacting with the Campaigns API.\n */\nexport class CampaignsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves a paginated list of campaigns.\n * @param query - Optional query parameters for filtering and pagination.\n * @returns The paginated campaigns response.\n */\n async find(query?: CampaignQueryParams): Promise<CampaignPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignPaginatedResponse>(`${this.baseUrl}/campaigns`, {\n params: query,\n });\n return data;\n }\n\n /**\n * Retrieves a campaign by its unique identifier.\n * @param id - The unique identifier of the campaign.\n * @returns The campaign data.\n */\n async get(id: string): Promise<Campaign> {\n const { data } = await this.httpClient.get<Campaign>(`${this.baseUrl}/campaigns/${id}`);\n return data;\n }\n\n /**\n * Creates a new campaign.\n * @param payload - The campaign data to create.\n * @returns The created campaign.\n */\n async create(payload: CreateCampaignRequest): Promise<Campaign> {\n const { data } = await this.httpClient.post<Campaign>(`${this.baseUrl}/campaigns`, payload);\n return data;\n }\n\n /**\n * Partially updates an existing campaign.\n * @param id - The unique identifier of the campaign.\n * @param payload - The fields to update.\n * @returns The updated campaign.\n */\n async patch(id: string, payload: PatchCampaignRequest): Promise<Campaign> {\n const { data } = await this.httpClient.patch<Campaign>(`${this.baseUrl}/campaigns/${id}`, payload);\n return data;\n }\n\n /**\n * Removes a campaign by its unique identifier.\n * @param id - The unique identifier of the campaign.\n * @returns The removed campaign.\n */\n async remove(id: string): Promise<Campaign> {\n const { data } = await this.httpClient.delete<Campaign>(`${this.baseUrl}/campaigns/${id}`);\n return data;\n }\n\n /**\n * Retrieves a paginated list of campaign contacts.\n * @param query - Optional query parameters for filtering and pagination.\n * @returns The paginated campaign contacts response.\n */\n async findCampaignContacts(query?: CampaignContactQueryParams): Promise<CampaignContactPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignContactPaginatedResponse>(`${this.baseUrl}/campaign-contacts`, {\n params: query,\n });\n return data;\n }\n\n /**\n * Retrieves a campaign contact by its unique identifier.\n * @param id - The unique identifier of the campaign contact.\n * @returns The campaign contact data.\n */\n async getCampaignContacts(id: string): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.get<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts/${id}`);\n return data;\n }\n\n /**\n * Creates a new campaign contact.\n * @param payload - The campaign contact data to create.\n * @returns The created campaign contact.\n */\n async createCampaignContact(payload: CreateCampaignContactRequest): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.post<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts`, payload);\n return data;\n }\n\n /**\n * Adds multiple contacts to a campaign in a single request.\n * @param payload - The list of campaign contacts to create.\n * @returns The created campaign contacts.\n */\n async addContactsToCampaign(payload: CreateCampaignContactRequest[]): Promise<CampaignContactResponse[]> {\n const { data } = await this.httpClient.post<CampaignContactResponse[]>(\n `${this.baseUrl}/campaign-contacts`,\n payload,\n );\n return data;\n }\n\n /**\n * Partially updates an existing campaign contact.\n * @param id - The unique identifier of the campaign contact.\n * @param payload - The fields to update.\n * @returns The updated campaign contact.\n */\n async patchCampaignContact(id: string, payload: PatchCampaignContactRequest): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.patch<CampaignContactResponse>(\n `${this.baseUrl}/campaign-contacts/${id}`,\n payload,\n );\n return data;\n }\n\n /**\n * Removes a campaign contact by its unique identifier.\n * @param id - The unique identifier of the campaign contact.\n * @returns The removed campaign contact.\n */\n async removeCampaignContact(id: string): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.delete<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts/${id}`);\n return data;\n }\n\n async getContactsDashboardData(\n query: CampaignContactsDashboardQueryParams,\n ): Promise<CampaignContactsDashboardData> {\n const { data } = await this.httpClient.get<CampaignContactsDashboardData>(\n `${this.baseUrl}/campaign-contacts-dashboard`,\n {\n params: query,\n },\n );\n return data;\n }\n\n async getUsers() {\n const { data } = await this.httpClient.get<CampaignUser[]>(`${this.baseUrl}/users`);\n return data;\n }\n\n async listWorkGroups(query?: CampaignWorkGroupQueryParams): Promise<CampaignWorkGroupPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignWorkGroupPaginatedResponse>(`${this.baseUrl}/work-groups`, {\n params: query,\n });\n return data;\n }\n\n async createWorkGroup(payload: CreateCampaignWorkGroupRequest): Promise<CampaignWorkGroup> {\n const { data } = await this.httpClient.post<CampaignWorkGroup>(`${this.baseUrl}/work-groups`, payload);\n return data;\n }\n\n async deleteWorkGroup(id: string): Promise<CampaignWorkGroup> {\n const { data } = await this.httpClient.delete<CampaignWorkGroup>(`${this.baseUrl}/work-groups/${id}`);\n return data;\n }\n\n /**\n * Lists company installations of the Campaigns module.\n * @param query - Optional query parameters (e.g. companyId, enabled).\n * @returns The paginated list of campaign company installations.\n */\n async findCampaignCompanies(query?: CampaignCompanyQueryParams): Promise<CampaignCompanyPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignCompanyPaginatedResponse>(\n `${this.baseUrl}/campaign-companies`,\n { params: query },\n );\n return data;\n }\n\n /**\n * Retrieves the Campaigns module installation for a given company.\n * @param companyId - The company identifier.\n * @returns The campaign company installation, or null when the module is not installed.\n */\n async getCampaignCompany(companyId: string): Promise<CampaignCompanyResponse | null> {\n try {\n const { data } = await this.httpClient.get<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies/${companyId}`,\n );\n return data;\n } catch (error) {\n if ((error as { response?: { status?: number } })?.response?.status === 404) {\n return null;\n }\n throw error;\n }\n }\n\n /**\n * Enables the Campaigns module for a given company.\n * @param payload - The enable request payload (companyId, optional enabledByUserId).\n * @returns The created campaign company installation.\n */\n async enableCampaignCompany(payload: EnableCampaignCompanyRequest): Promise<CampaignCompanyResponse> {\n const { data } = await this.httpClient.post<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies`,\n payload,\n );\n return data;\n }\n\n /**\n * Disables the Campaigns module for a given company by removing the installation record.\n * @param id - The campaign company installation id.\n * @returns The removed campaign company installation.\n */\n async disableCampaignCompany(id: string): Promise<CampaignCompanyResponse> {\n const { data } = await this.httpClient.delete<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies/${id}`,\n );\n return data;\n }\n\n /**\n * Checks whether the current caller has access to the Campaigns module.\n * @returns The access verdict for the authenticated user.\n */\n async getMyAccess(): Promise<CampaignAccessResponse> {\n const { data } = await this.httpClient.get<CampaignAccessResponse>(\n `${this.baseUrl}/campaigns-access`,\n );\n return data;\n }\n}\n\nexport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\n CampaignRetryConfig,\n CampaignStatus,\n CampaignProvider,\n WhatsAppPayload,\n WhatsAppTemplateComponent,\n CampaignContactFilter,\n CampaignSchedule,\n CreateCampaignRequest,\n PatchCampaignRequest,\n CampaignUser,\n} from './contracts/campaign';\nexport type {\n CampaignContactCampaignStatus,\n CampaignContactDispatchStatus,\n CampaignContactLikeQueryOperators,\n CampaignContactPaginatedResponse,\n CampaignContactQueryOperators,\n CampaignContactQueryParams,\n CampaignContactQueryValue,\n CampaignContactResponse,\n CampaignContactSortDirection,\n CampaignContactSortParams,\n CreateCampaignContactRequest,\n PatchCampaignContactRequest,\n} from './contracts/campaign-contacts';\nexport type {\n CampaignContactsDashboardChannelPerformance,\n CampaignContactsDashboardData,\n CampaignContactsDashboardExactQueryOperators,\n CampaignContactsDashboardEvolutionItem,\n CampaignContactsDashboardFunnelItem,\n CampaignContactsDashboardInterval,\n CampaignContactsDashboardMetrics,\n CampaignContactsDashboardQueryParams,\n CampaignContactsDashboardQueryValue,\n CampaignContactsDashboardRangeQueryOperators,\n CampaignContactsDashboardStatusDistribution,\n CampaignContactsDashboardStatusMetrics,\n CampaignContactsDashboardSummary,\n CampaignContactsDashboardTopCampaign,\n} from './contracts/campaign-contacts-dashboard';\nexport type {\n CampaignWorkGroup,\n CampaignWorkGroupPaginatedResponse,\n CampaignWorkGroupQueryParams,\n CreateCampaignWorkGroupRequest,\n} from './contracts/work-group';\nexport type { CampaignAccessResponse, CampaignAccessReason } from './contracts/access';\nexport type {\n CampaignCompanyPaginatedResponse,\n CampaignCompanyQueryParams,\n CampaignCompanyResponse,\n EnableCampaignCompanyRequest,\n} from './contracts/campaign-company';\n","import type { AxiosInstance } from 'axios';\nimport type { GetConfigTemplatesResponse, GetConfigTemplatesParams } from './contracts/chat-adapter';\n\n/**\n * Gateway for interacting with the Chat Adapter API.\n */\nexport class ChatAdapterGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves message templates associated with a configuration.\n * @param configId - The unique identifier of the configuration.\n * @param params - Optional query parameters for filtering and pagination.\n * @returns A promise that resolves to the template list response.\n */\n async getConfigTemplates(configId: string, params?: GetConfigTemplatesParams): Promise<GetConfigTemplatesResponse> {\n const { data } = await this.httpClient.get<GetConfigTemplatesResponse>(\n `${this.baseUrl}/message-templates/${configId}`,\n { params },\n );\n return data;\n }\n}\n\nexport type {\n GetConfigTemplatesResponse,\n GetConfigTemplatesParams,\n MessageTemplate,\n MessageTemplateComponent,\n ConfigTemplatesPaging,\n} from './contracts/chat-adapter';\n","import type { AxiosInstance } from 'axios';\nimport type { GetPresignedUrlRequest, UploadPresignedUrlResponse, AudioConvertResponse, GetAttachmentByIdRequest, AttachmentByIdResponse } from './contracts/assets';\n\n/**\n * Gateway for interacting with the Assets API.\n */\nexport class AssetsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n /**\n * Retrieves a presigned URL to upload a file to the Assets API.\n * @param params - The configuration options and parameters for the presigned URL.\n * @returns The presigned URL details wrapped in a {@link UploadPresignedUrlResponse}.\n */\n async getPresignedUrl(params: GetPresignedUrlRequest): Promise<UploadPresignedUrlResponse> {\n const { data } = await this.httpClient.get<UploadPresignedUrlResponse>(`${this.baseUrl}/uploads/presigned-url`, {\n params,\n });\n return data;\n }\n\n /**\n * Converts an audio file to M4A format via the Assets API.\n * @param params - The audio file to convert.\n * @param params.file - The audio file to upload for conversion.\n * @returns The converted audio response with base64-encoded data, mimetype, extension and filename.\n */\n async convertAudioToM4A(formData: any): Promise<AudioConvertResponse> {\n const { data } = await this.httpClient.post<AudioConvertResponse>(\n `${this.baseUrl}/whatsapp/audio-convert`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n },\n );\n return data;\n }\n\n /**\n * Fetches an attachment by its file ID or storage key.\n *\n * When `key` is provided, the path is built from the key directly and no\n * `x-bucket-provider` header is sent. Otherwise, `fileId` and `provider` are\n * used to build the path and the provider header respectively.\n *\n * @param params - The parameters identifying the attachment.\n * @returns A signed URL to access the attachment.\n */\n async getAttachmentById(params: GetAttachmentByIdRequest): Promise<AttachmentByIdResponse> {\n const path = params.key\n ? `/uploads/${encodeURIComponent(params.key)}`\n : `/uploads/${encodeURIComponent(params.fileId!)}`;\n\n const axiosParams: Record<string, string> = {};\n\n if (params.download) axiosParams.download = 'true';\n if (params.filename) axiosParams.filename = params.filename;\n const headers: Record<string, string> = {};\n if (!params.key && params.provider) headers['x-bucket-provider'] = params.provider!;\n\n const { data } = await this.httpClient.get<AttachmentByIdResponse>(`${this.baseUrl}${path}`, {\n params: axiosParams,\n headers,\n });\n return data;\n }\n}\n\nexport type {\n GetPresignedUrlRequest,\n UploadPresignedUrlResponse,\n IUploadPresignedUrlResponse,\n AudioConvertResponse,\n GetAttachmentByIdRequest,\n AttachmentByIdResponse,\n} from './contracts/assets';\n","import type { AxiosInstance } from 'axios';\nimport type {\n ContactPhoneSearchResponse,\n GetContactPhonesParams,\n ContactCategoryResponse,\n} from './contracts/contact-phone';\n\n/**\n * Gateway for interacting with the Contact List API.\n */\nexport class ContactListGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Searches for contact phones with optional filtering and pagination.\n * @param params - The query parameters for the search.\n * @returns The paginated contact phones response.\n */\n async getContactsPhones(params: GetContactPhonesParams): Promise<ContactPhoneSearchResponse> {\n const { data } = await this.httpClient.get<ContactPhoneSearchResponse>(\n `${this.baseUrl}/contact/phone/search`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves all contact categories.\n * @returns An array of contact categories.\n */\n async getCategoryList(): Promise<ContactCategoryResponse[]> {\n const { data } = await this.httpClient.get<ContactCategoryResponse[]>(\n `${this.baseUrl}/contact/category`,\n );\n return data;\n }\n}\n\nexport type {\n ContactPhoneSearchResponse,\n GetContactPhonesParams,\n ContactPhoneResponse,\n ContactCategoryResponse,\n} from './contracts/contact-phone';\n","import type { AxiosInstance } from 'axios';\nimport type {\n CreateIntegrationActionRequest,\n CreateWebhookRequest,\n CreateIntegrationFieldRequest,\n CreateIntegrationPartnerRequest,\n DeleteIntegrationActionParams,\n DeleteIntegrationFieldParams,\n DeleteIntegrationPartnerParams,\n GetIntegrationHooksCatalogRequest,\n GetWebhooksByCompanyRequest,\n GetIntegrationPartnersByCompanyRequest,\n HookCatalogItem,\n IntegrationAction,\n IntegrationField,\n IntegrationPartner,\n UpdateIntegrationActionParams,\n UpdateIntegrationActionRequest,\n UpdateIntegrationFieldParams,\n UpdateIntegrationFieldRequest,\n} from './contracts';\n\n/**\n * Gateway for interacting with the Integrations API.\n */\nexport class IntegrationsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves all integration partners configured for a company.\n * @param companyId - The company identifier.\n * @returns The integration partners configured for the company.\n */\n async getPartnersByCompany({ companyId, name }: GetIntegrationPartnersByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/partner/company/${companyId}`, {\n params: name ? { name } : undefined,\n });\n return data;\n }\n\n /** Retrieves the webhooks scenario for a company. */\n async getWebhooksByCompany(params: GetWebhooksByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/webhooks`, {\n params,\n });\n return data;\n }\n\n /**\n * Retrieves the hook catalog, optionally scoped by module.\n * @param module - The optional module identifier used by the Integrations API filter.\n * @returns The hook catalog items, filtered by module when provided.\n */\n async getHooksCatalog({ module }: GetIntegrationHooksCatalogRequest = {}): Promise<HookCatalogItem[]> {\n const { data } = await this.httpClient.get<HookCatalogItem[]>(`${this.baseUrl}/hooks`, {\n params: module ? { module } : undefined,\n });\n return data;\n }\n\n /**\n * Creates an integration partner.\n * @param payload - The partner creation payload.\n * @returns The created integration partner.\n */\n async createPartner(payload: CreateIntegrationPartnerRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/partner`, payload);\n return data;\n }\n\n /** Creates a webhook. */\n async createWebhook(payload: CreateWebhookRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/webhooks`, payload);\n return data;\n }\n\n /**\n * Deletes an integration partner.\n * @param partnerId - The partner identifier.\n * @returns A promise that resolves when the partner is deleted.\n */\n async deletePartner({ partnerId }: DeleteIntegrationPartnerParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/partner/${partnerId}`);\n }\n\n /**\n * Creates an integration action.\n * @param payload - The action creation payload.\n * @returns The created integration action.\n */\n async createAction(payload: CreateIntegrationActionRequest): Promise<IntegrationAction> {\n const { data } = await this.httpClient.post<IntegrationAction>(`${this.baseUrl}/action`, {\n ...payload,\n actionName: payload.actionName ?? payload.hook,\n });\n return data;\n }\n\n /**\n * Updates an integration action.\n * @param actionId - The action identifier.\n * @param payload - The action update payload.\n * @returns The updated integration action.\n */\n async updateAction({ actionId, payload }: UpdateIntegrationActionParams): Promise<IntegrationAction> {\n const { data } = await this.httpClient.patch<IntegrationAction>(`${this.baseUrl}/action/${actionId}`, payload);\n return data;\n }\n\n /**\n * Creates an integration action field/header.\n * @param payload - The field creation payload.\n * @returns The created integration field.\n */\n async createField(payload: CreateIntegrationFieldRequest): Promise<IntegrationField> {\n const { data } = await this.httpClient.post<IntegrationField>(`${this.baseUrl}/field`, payload);\n return data;\n }\n\n /**\n * Updates an integration action field/header.\n * @param fieldId - The field identifier.\n * @param payload - The field update payload.\n * @returns The updated integration field response.\n */\n async updateField({ fieldId, payload }: UpdateIntegrationFieldParams): Promise<IntegrationField | number[]> {\n const { data } = await this.httpClient.put<IntegrationField | number[]>(`${this.baseUrl}/field/${fieldId}`, payload);\n return data;\n }\n\n /**\n * Deletes an integration action field/header.\n * @param fieldId - The field identifier.\n * @returns A promise that resolves when the field is deleted.\n */\n async deleteField({ fieldId }: DeleteIntegrationFieldParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/field/${fieldId}`);\n }\n\n /**\n * Deletes an integration action.\n * @param actionId - The action identifier.\n * @returns A promise that resolves when the action is deleted.\n */\n async deleteAction({ actionId }: DeleteIntegrationActionParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/action/${actionId}`);\n }\n}\n\nexport type {\n CreateIntegrationActionRequest,\n CreateWebhookRequest,\n CreateIntegrationFieldRequest,\n CreateIntegrationPartnerRequest,\n DeleteIntegrationActionParams,\n DeleteIntegrationFieldParams,\n DeleteIntegrationPartnerParams,\n GetIntegrationHooksCatalogRequest,\n GetWebhooksByCompanyRequest,\n GetIntegrationPartnersByCompanyRequest,\n HookCatalogItem,\n IntegrationAction,\n IntegrationField,\n IntegrationPartner,\n UpdateIntegrationActionParams,\n UpdateIntegrationActionRequest,\n UpdateIntegrationFieldParams,\n UpdateIntegrationFieldRequest,\n} from './contracts';\n","import type { AxiosInstance } from 'axios';\nimport type {\n CancelInvitationRequest,\n ListInvitationsRequest,\n ReplyInvitationRequest,\n InvitationResponse,\n ListLiveUserRoomsRequest,\n LiveUserRoomResponse,\n GetRoomByIdRequest,\n RoomResponse,\n} from './contracts';\n\n/**\n * Gateway for interacting with the Chat Webservice API.\n */\nexport class ChatWebserviceGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Lists chat invitations for a user within a company.\n * @param params - The user, company, and invitation status filters.\n * @returns The matching chat invitations.\n */\n async listInvitations(params: ListInvitationsRequest): Promise<InvitationResponse[]> {\n const { data } = await this.httpClient.get<InvitationResponse[]>(`${this.baseUrl}/invitations`, { params });\n return data;\n }\n\n /**\n * Replies to a chat invitation.\n * @param payload - The invitation identifier to reply to.\n * @returns The updated chat invitations.\n */\n async replyInvitation(payload: ReplyInvitationRequest): Promise<InvitationResponse[]> {\n const { data } = await this.httpClient.put<InvitationResponse[]>(`${this.baseUrl}/invitations/reply`, payload);\n return data;\n }\n\n /**\n * Cancels a chat invitation for a room.\n * @param roomId - The chat room identifier.\n * @param payload - The delegator identifier used to cancel the invitation.\n */\n async cancelInvitation(roomId: number, payload: CancelInvitationRequest): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/invitations/chat/${roomId}`, {\n data: payload,\n });\n }\n\n /**\n * Lists live rooms assigned to a user.\n * @param params - The recipient, company, and open-status filters.\n * @returns The live room entries for the user.\n */\n async listLiveUserRooms(params: ListLiveUserRoomsRequest): Promise<LiveUserRoomResponse[]> {\n const { data } = await this.httpClient.get<LiveUserRoomResponse[]>(`${this.baseUrl}/member/rooms/live`, { params });\n return data;\n }\n\n /**\n * Retrieves a chat room by its identifier.\n * @param id - The unique identifier of the room.\n * @param params - Optional query parameters for scoping and member inclusion.\n * @returns The chat room data.\n */\n async getRoomById(id: number, params: GetRoomByIdRequest = {}): Promise<RoomResponse> {\n const { data } = await this.httpClient.get<RoomResponse>(`${this.baseUrl}/room/${id}`, { params });\n return data;\n }\n}\n\nexport type {\n CancelInvitationRequest,\n GetRoomByIdRequest,\n InvitationResponse,\n ListInvitationsRequest,\n ListLiveUserRoomsRequest,\n LiveUserRoomResponse,\n ReplyInvitationRequest,\n RoomActiveDates,\n RoomMemberResponse,\n RoomResponse,\n RoomTagResponse,\n} from './contracts';\n","import type { AxiosInstance } from 'axios';\nimport type { ContactHistoryResponse, ListContactHistoryRequest } from './contracts/contact-history';\n\n/**\n * Gateway for interacting with the Call Report API.\n */\nexport class CallReportGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Lists contact interaction history across chat and CDR indexes.\n * @param params - Optional filters, pagination, and index selection.\n * @returns The paginated contact history response.\n */\n async listContactHistory(params: ListContactHistoryRequest = {}): Promise<ContactHistoryResponse> {\n const { data } = await this.httpClient.get<ContactHistoryResponse>(`${this.baseUrl}/history/index/multi`, {\n params,\n });\n return data;\n }\n}\n\nexport type {\n ContactHistoryIndex,\n ContactHistoryResponse,\n ContactHistorySortOrder,\n ContactInteractionResponse,\n InteractionCallStepResponse,\n InteractionChatStepResponse,\n InteractionMemberResponse,\n InteractionOrganizationResponse,\n ListContactHistoryRequest,\n} from './contracts/contact-history';\n","import type { AxiosInstance } from 'axios';\nimport type { IntegrationPartner } from '../integrations/contracts';\nimport type {\n CasePermissions,\n CommentHistoryCursor,\n CommentHistoryPage,\n GetCommentHistoryRequest,\n UpdateCasePermissionsRequest,\n} from './contracts';\nimport type { GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './contracts/case-feed-by-actions';\n\n/** Request parameters for retrieving the webhooks scenario for a company. */\nexport interface GetWebhooksByCompanyRequest {\n companyId: string;\n}\n\n/** Request payload for creating a webhooks scenario. */\nexport interface CreateWebhookRequest {\n companyId: string;\n baseUrl: string;\n}\n\n/**\n * Gateway for interacting with the Cases API.\n */\nexport class CasesGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /** Retrieves the webhooks scenario for a company. */\n async getWebhooksByCompany(params: GetWebhooksByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/webhooks`, {\n params,\n });\n return data;\n }\n\n /** Creates a webhook. */\n async createWebhook(payload: CreateWebhookRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/webhooks`, payload);\n return data;\n }\n\n /** Retrieves one chronological page of the edit/delete history of a case comment. */\n async getCommentHistory(params: GetCommentHistoryRequest): Promise<CommentHistoryPage> {\n const query: { limit?: number; cursor?: CommentHistoryCursor } = {};\n if (params.limit !== undefined) query.limit = params.limit;\n if (params.cursor !== undefined) query.cursor = params.cursor;\n\n const { data } = await this.httpClient.get<CommentHistoryPage>(\n `${this.baseUrl}/comment/history/${params.commentId}`,\n { params: query },\n );\n return data;\n }\n\n /** Retrieves the Cases permission configuration for the current company. */\n async getCasePermissions(): Promise<CasePermissions> {\n const { data } = await this.httpClient.get<CasePermissions>(`${this.baseUrl}/case-settings/permissions`);\n return data;\n }\n\n /** Updates the Cases permission configuration for the current company. */\n async updateCasePermissions(payload: UpdateCasePermissionsRequest): Promise<CasePermissions> {\n const { data } = await this.httpClient.patch<CasePermissions>(\n `${this.baseUrl}/case-settings/permissions`,\n payload,\n );\n return data;\n }\n\n /**\n * Retrieves case feed entries for a batch of action IDs.\n * @param payload - The action type and list of action IDs to look up.\n * @returns Array of case feed items linking each action to a case.\n */\n async getCaseFeedByActions(payload: GetCaseFeedByActionsRequest): Promise<CaseFeedByActionItem[]> {\n const { data } = await this.httpClient.post<CaseFeedByActionItem[]>(\n `${this.baseUrl}/cases-feed/by-actions`,\n payload,\n );\n return data;\n }\n}\n\nexport type {\n CommentHistoryEntry,\n CommentHistoryChangeType,\n CommentHistoryCursor,\n CommentHistoryPage,\n GetCommentHistoryRequest,\n} from './contracts/comment-history';\nexport type { CasePermissions, CasePermissionsValue, UpdateCasePermissionsRequest } from './contracts/case-permissions';\nexport type { GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './contracts/case-feed-by-actions';\n","import { CustomerServiceGateway } from '../customer-service';\nimport { ChatConfigGateway } from '../chat-config';\nimport { CampaignsGateway } from '../campaigns';\nimport { ChatAdapterGateway } from '../chat-adapter';\nimport { AssetsGateway } from '../assets';\nimport { ContactListGateway } from '../contact-list';\nimport { IntegrationsGateway } from '../integrations';\nimport { ChatWebserviceGateway } from '../chat-webservice';\nimport { CallReportGateway } from '../call-report';\nimport { CasesGateway } from '../cases';\nimport axios, { AxiosInstance } from 'axios';\n\n/**\n * Maps service identifiers to their corresponding gateway types.\n * Used by the `gateway()` function to infer the correct return type\n * based on the service name passed as argument.\n *\n * When adding a new service, add an entry here with the service\n * identifier as the key and the gateway class as the value.\n */\nexport type GatewayMap = {\n 'customer-service': CustomerServiceGateway;\n 'chat-config': ChatConfigGateway;\n campaigns: CampaignsGateway;\n 'chat-adapter': ChatAdapterGateway;\n assets: AssetsGateway;\n 'contact-list': ContactListGateway;\n integrations: IntegrationsGateway;\n 'chat-webservice': ChatWebserviceGateway;\n 'call-report': CallReportGateway;\n cases: CasesGateway;\n};\n\nexport interface SDKGatewaysInterface {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n contactList: ContactListGateway | null;\n integrations: IntegrationsGateway | null;\n chatWebservice: ChatWebserviceGateway | null;\n callReport: CallReportGateway | null;\n cases: CasesGateway | null;\n}\n\nclass SDKGateways {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n contactList: ContactListGateway | null;\n integrations: IntegrationsGateway | null;\n chatWebservice: ChatWebserviceGateway | null;\n callReport: CallReportGateway | null;\n cases: CasesGateway | null;\n constructor(\n customerService: CustomerServiceGateway | null,\n chatConfig: ChatConfigGateway | null,\n campaigns: CampaignsGateway | null,\n chatAdapter: ChatAdapterGateway | null,\n assets: AssetsGateway | null,\n contactList: ContactListGateway | null,\n integrations: IntegrationsGateway | null,\n chatWebservice: ChatWebserviceGateway | null,\n callReport: CallReportGateway | null,\n cases: CasesGateway | null,\n ) {\n this.customerService = customerService;\n this.chatConfig = chatConfig;\n this.campaigns = campaigns;\n this.chatAdapter = chatAdapter;\n this.assets = assets;\n this.contactList = contactList;\n this.integrations = integrations;\n this.chatWebservice = chatWebservice;\n this.callReport = callReport;\n this.cases = cases;\n }\n}\n\n/**\n * Parameters required to configure the SDK client.\n * Each service configuration is optional, only provide the services you need.\n */\nexport interface GatewayClientParams {\n /** An Axios instance used as the HTTP client for all gateway requests (optional). */\n axiosClient?: AxiosInstance;\n /** API token used for authentication across all services. */\n apiToken: string;\n /** Configuration for each service gateway. Only the services you configure will be available. */\n services: {\n customerService?: {\n baseUrl: string;\n };\n chatConfig?: {\n baseUrl: string;\n };\n campaigns?: {\n baseUrl: string;\n };\n chatAdapter?: {\n baseUrl: string;\n };\n assets?: {\n baseUrl: string;\n };\n contactList?: {\n baseUrl: string;\n };\n integrations?: {\n baseUrl: string;\n };\n chatWebservice?: {\n baseUrl: string;\n };\n callReport?: {\n baseUrl: string;\n };\n cases?: {\n baseUrl: string;\n };\n };\n}\n\n/**\n * Creates an SDKGateways instance with all service gateways initialized\n * using the provided configuration parameters.\n * Services without configuration will be set to null and will throw\n * an error if accessed via `gateway()`.\n */\nexport function createClient(params: GatewayClientParams) {\n const httpClient =\n params.axiosClient ||\n axios.create({\n headers: {\n Authorization: `Bearer ${params.apiToken}`,\n },\n });\n const customerService = params.services.customerService\n ? new CustomerServiceGateway(httpClient, params.services.customerService.baseUrl)\n : null;\n const chatConfig = params.services.chatConfig\n ? new ChatConfigGateway(httpClient, params.services.chatConfig.baseUrl)\n : null;\n const campaigns = params.services.campaigns\n ? new CampaignsGateway(httpClient, params.services.campaigns.baseUrl)\n : null;\n const chatAdapter = params.services.chatAdapter\n ? new ChatAdapterGateway(httpClient, params.services.chatAdapter.baseUrl)\n : null;\n const assets = params.services.assets ? new AssetsGateway(httpClient, params.services.assets.baseUrl) : null;\n const contactList = params.services.contactList\n ? new ContactListGateway(httpClient, params.services.contactList.baseUrl)\n : null;\n const integrations = params.services.integrations\n ? new IntegrationsGateway(httpClient, params.services.integrations.baseUrl)\n : null;\n const chatWebservice = params.services.chatWebservice\n ? new ChatWebserviceGateway(httpClient, params.services.chatWebservice.baseUrl)\n : null;\n const callReport = params.services.callReport\n ? new CallReportGateway(httpClient, params.services.callReport.baseUrl)\n : null;\n const cases = params.services.cases ? new CasesGateway(httpClient, params.services.cases.baseUrl) : null;\n return new SDKGateways(\n customerService,\n chatConfig,\n campaigns,\n chatAdapter,\n assets,\n contactList,\n integrations,\n chatWebservice,\n callReport,\n cases,\n );\n}\n","export const SERVICE_GATEWAYS = {\n CUSTOMER_SERVICE: 'customer-service',\n CHAT_CONFIG: 'chat-config',\n CAMPAIGNS: 'campaigns',\n CHAT_ADAPTER: 'chat-adapter',\n ASSETS: 'assets',\n CONTACT_LIST: 'contact-list',\n INTEGRATIONS: 'integrations',\n CHAT_WEBSERVICE: 'chat-webservice',\n CALL_REPORT: 'call-report',\n CASES: 'cases',\n} as const;\n\nexport type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];\n","import { createClient, SDKGatewaysInterface, GatewayClientParams, GatewayMap } from './@common/client';\nimport { SERVICE_GATEWAYS } from './@common/enums';\n\nexport { SERVICE_GATEWAYS };\nexport type { SERVICE_GATEWAYS as SERVICE_GATEWAYS_TYPE } from './@common/enums';\n\nclass SDK {\n client: SDKGatewaysInterface | null = null;\n\n configure(params: GatewayClientParams) {\n this.client = createClient(params);\n }\n}\nconst sdk = new SDK();\n\n/**\n * Initializes the SDK with the required configuration parameters.\n * Must be called before using {@link gateway}.\n */\nexport const configure = (params: GatewayClientParams) => {\n sdk.configure(params);\n};\n\n/**\n * Returns the gateway instance for the specified service.\n *\n * @typeParam T - A service identifier key from {@link GatewayMap}.\n * @param service - The service identifier (e.g. `SERVICE_GATEWAYS.CUSTOMER_SERVICE`).\n * @returns The corresponding gateway instance with all its methods.\n * @throws {Error} If the SDK has not been configured via {@link configure}.\n * @throws {Error} If an unknown service identifier is provided.\n *\n * @example\n * ```ts\n * configure({ axiosClient, apiToken: '...', services: { customerService: { baseUrl: '...' } } });\n * const customer = gateway('customer-service');\n * const company = await customer.getCompanyById('123');\n * ```\n */\nexport function gateway<T extends keyof GatewayMap>(service: T): GatewayMap[T];\nexport function gateway(service: SERVICE_GATEWAYS) {\n if (!sdk.client)\n throw new Error(\n 'SDK not configured. Please call configure() with the appropriate parameters before using the SDK.',\n );\n\n switch (service) {\n case SERVICE_GATEWAYS.CUSTOMER_SERVICE:\n if (!sdk.client.customerService)\n throw new Error(`Service 'customer-service' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.customerService;\n case SERVICE_GATEWAYS.CHAT_CONFIG:\n if (!sdk.client.chatConfig)\n throw new Error(`Service 'chat-config' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatConfig;\n case SERVICE_GATEWAYS.CAMPAIGNS:\n if (!sdk.client.campaigns)\n throw new Error(`Service 'campaigns' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.campaigns;\n case SERVICE_GATEWAYS.CHAT_ADAPTER:\n if (!sdk.client.chatAdapter)\n throw new Error(`Service 'chat-adapter' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatAdapter;\n case SERVICE_GATEWAYS.ASSETS:\n if (!sdk.client.assets)\n throw new Error(`Service 'assets' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.assets;\n case SERVICE_GATEWAYS.CONTACT_LIST:\n if (!sdk.client.contactList)\n throw new Error(`Service 'contact-list' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.contactList;\n case SERVICE_GATEWAYS.INTEGRATIONS:\n if (!sdk.client.integrations)\n throw new Error(`Service 'integrations' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.integrations;\n case SERVICE_GATEWAYS.CHAT_WEBSERVICE:\n if (!sdk.client.chatWebservice)\n throw new Error(`Service 'chat-webservice' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatWebservice;\n case SERVICE_GATEWAYS.CALL_REPORT:\n if (!sdk.client.callReport)\n throw new Error(`Service 'call-report' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.callReport;\n case SERVICE_GATEWAYS.CASES:\n if (!sdk.client.cases)\n throw new Error(`Service 'cases' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.cases;\n default:\n throw new Error(`Unknown service gateway: ${service}`);\n }\n}\n\nexport * from './campaigns/contracts';\nexport * from './chat-config/contracts';\nexport * from './customer-service/contracts';\nexport * from './chat-adapter/contracts';\nexport * from './assets/contracts';\nexport * from './contact-list/contracts';\nexport * from './integrations/contracts';\nexport * from './chat-webservice/contracts';\nexport * from './call-report/contracts';\nexport * from './cases/contracts';\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/customer-service/index.ts","../src/chat-config/index.ts","../src/campaigns/index.ts","../src/chat-adapter/index.ts","../src/assets/index.ts","../src/contact-list/index.ts","../src/integrations/index.ts","../src/chat-webservice/index.ts","../src/call-report/index.ts","../src/cases/index.ts","../src/rh/index.ts","../src/@common/client.ts","../src/@common/enums.ts","../src/index.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios';\nimport type { CompanyResponse } from './contracts/company';\nimport type {\n WorkGroupListResponse,\n WorkGroupMembersResponse,\n WorkGroupResponse,\n} from './contracts/work-group';\nimport type {\n GetAllUsersParams,\n GetAllUsersResponse,\n GetManagedUsersResponse,\n} from './contracts/user';\n\n/**\n * Gateway for interacting with the Customer Service API.\n */\nexport class CustomerServiceGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves a company by its unique identifier.\n * @param companyId - The unique identifier of the company.\n * @returns The company data wrapped in a {@link CompanyResponse}.\n */\n async getCompanyById(companyId: string): Promise<CompanyResponse> {\n const { data } = await this.httpClient.get<CompanyResponse>(`${this.baseUrl}/companies/search/${companyId}`);\n return data;\n }\n\n /**\n * Retrieves all work groups for a company.\n * @param companyId - The unique identifier of the company.\n * @returns The work groups for the given company.\n */\n async getWorkGroups(companyId: string): Promise<WorkGroupListResponse> {\n const { data } = await this.httpClient.get<WorkGroupListResponse>(\n `${this.baseUrl}/companies/work-groups`,\n { params: { company_id: companyId } },\n );\n return data;\n }\n\n /**\n * Retrieves a work group by its unique identifier.\n * @param workGroupId - The unique identifier of the work group.\n * @param companyId - The unique identifier of the company (optional, sent as query parameter).\n * @returns The work group data wrapped in a {@link WorkGroupResponse}.\n */\n async getWorkGroupById(workGroupId: string, companyId?: string): Promise<WorkGroupResponse> {\n const params = companyId ? { company_id: companyId } : undefined;\n const { data } = await this.httpClient.get<WorkGroupResponse>(\n `${this.baseUrl}/companies/work-groups/${workGroupId}`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves the members of a work group by its identifier.\n * @param groupId - The unique identifier of the work group.\n * @param companyId - The unique identifier of the company (optional, sent as query parameter).\n * @param profile - Filter members by profile (optional).\n * @returns The members of the work group.\n */\n async getWorkGroupMembers(\n groupId: string,\n companyId?: string,\n profile?: string[],\n ): Promise<WorkGroupMembersResponse> {\n const params: { company_id?: string; profile?: string[] } = {};\n if (companyId) params.company_id = companyId;\n if (profile) params.profile = profile;\n const { data } = await this.httpClient.get<WorkGroupMembersResponse>(\n `${this.baseUrl}/bonds/work-groups/${groupId}`,\n { params },\n );\n return data;\n }\n\n async getAllUsers(params?: GetAllUsersParams): Promise<GetAllUsersResponse> {\n const { data } = await this.httpClient.get<GetAllUsersResponse>(\n `${this.baseUrl}/companies/users`,\n { params },\n );\n return data;\n }\n\n async getManagedUsers(managerId: string): Promise<GetManagedUsersResponse> {\n const { data } = await this.httpClient.get<GetManagedUsersResponse>(\n `${this.baseUrl}/users/managed/${managerId}`,\n );\n return data;\n }\n}\n\nexport type { CompanyResponse, CompanyData } from './contracts/company';\nexport type {\n WorkGroup,\n WorkGroupMember,\n WorkGroupMembersResponse,\n WorkGroupListResponse,\n WorkGroupResponse,\n} from './contracts/work-group';\nexport type {\n User,\n GetAllUsersParams,\n GetAllUsersResponse,\n ManagedUser,\n GetManagedUsersResponse,\n} from './contracts/user';","import type { AxiosInstance } from 'axios';\nimport type {\n GetProviderConfigurationsParams,\n GetProviderDisplayInfoParams,\n ProviderConfigurationsResponse,\n ProviderDisplayInfoResponse,\n ProviderListResponse,\n} from './contracts/provider';\nimport type { ConfigListByProviderResponse, GetConfigsByProviderParams } from './contracts/config';\nimport type {\n GetServiceGroupsParams,\n Queue,\n QueueListResponse,\n QueueMember,\n GetMemberQueuesRequest,\n ServiceGroupsResponse,\n} from './contracts/queues';\nimport type { MetaTemplateConfigResponse, MetaTemplateConfigsResponse } from './contracts/meta-template';\nimport type {\n FindOrCreateQueueRuleRequest,\n GetRootRulesRequest,\n RootRulesResponse,\n Rule,\n QueueRule,\n} from './contracts/rule';\n\n/**\n * Gateway for interacting with the Chat Config API.\n */\nexport class ChatConfigGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves all available providers.\n * @returns The list of providers.\n */\n async getProviders(): Promise<ProviderListResponse> {\n const { data } = await this.httpClient.get<ProviderListResponse>(`${this.baseUrl}/providers`);\n return data;\n }\n\n /**\n * Retrieves provider configurations filtered by configuration IDs.\n * @param params - Query parameters containing one or more configuration IDs.\n * @returns The provider configurations matching the given IDs.\n */\n async getProviderConfigurations(params?: GetProviderConfigurationsParams): Promise<ProviderConfigurationsResponse> {\n const url = `${this.baseUrl}/providers/configurations`;\n const { data } = await this.httpClient.get<ProviderConfigurationsResponse>(url, { params: params });\n return data;\n }\n\n /**\n * Retrieves normalized display info for a provider configuration.\n * Always returns the same shape across providers (`id`, `provider`, `name`, `channel`).\n * @param params - Query parameters with `provider` and `configId`.\n * @returns The display info for the given configuration.\n */\n async getProviderDisplayInfo(params: GetProviderDisplayInfoParams): Promise<ProviderDisplayInfoResponse> {\n const { data } = await this.httpClient.get<ProviderDisplayInfoResponse>(\n `${this.baseUrl}/providers/configs/display-info`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves configurations filtered by provider.\n * @param providerId - The unique identifier of the provider.\n * @param params - Optional query parameters for filtering configurations.\n * @returns The configurations for the given provider.\n */\n async getConfigsByProvider(\n providerId: string,\n params?: GetConfigsByProviderParams,\n ): Promise<ConfigListByProviderResponse> {\n const { data } = await this.httpClient.get<ConfigListByProviderResponse>(\n `${this.baseUrl}/config/provider/${providerId}`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves a queue by its ID.\n * @param queueId - The unique identifier of the queue.\n * @returns The queue data.\n */\n async getQueueById(queueId: string): Promise<Queue> {\n const { data } = await this.httpClient.get<Queue>(`${this.baseUrl}/queues/${queueId}`);\n return data;\n }\n\n async getQueues(): Promise<Queue[]> {\n const { data } = await this.httpClient.get<Queue[]>(`${this.baseUrl}/queues`);\n return data;\n }\n\n /**\n * Lists queue memberships for a member.\n * @param params - The member identifier and optional association filter.\n * @returns The queue memberships for the given member.\n */\n async getMemberQueues(params: GetMemberQueuesRequest): Promise<QueueMember[]> {\n const { data } = await this.httpClient.get<QueueMember[]>(`${this.baseUrl}/queue-members`, { params });\n return data;\n }\n\n /**\n * Retrieves service groups filtered by service group IDs.\n * @param params - Query parameters containing one or more service group IDs.\n * @returns The service groups matching the given IDs.\n */\n async getServiceGroups(params?: GetServiceGroupsParams): Promise<ServiceGroupsResponse> {\n const url = `${this.baseUrl}/service-groups`;\n const { data } = await this.httpClient.get<ServiceGroupsResponse>(url, { params: params });\n return data;\n }\n\n /**\n * Retrieves a Meta template configuration by its ID.\n * @param templateId - The unique identifier of the template.\n * @returns The Meta template configuration.\n */\n async getMetaTemplateById(templateId: string): Promise<MetaTemplateConfigResponse> {\n const { data } = await this.httpClient.get<MetaTemplateConfigResponse>(\n `${this.baseUrl}/meta-templates-config/${templateId}`,\n );\n return data;\n }\n\n /**\n * Retrieves template configurations associated with a configuration ID.\n * @param configId - The configuration identifier.\n * @returns The list of template configurations.\n */\n async getTemplateConfigsByConfigId(configId: string): Promise<MetaTemplateConfigsResponse> {\n const { data } = await this.httpClient.get<MetaTemplateConfigsResponse>(\n `${this.baseUrl}/meta-templates-config/config/${configId}`,\n );\n return data;\n }\n\n /**\n * Finds an existing queue rule or creates a new one if it does not exist.\n * @param payload - The payload containing companyId, queueId, and configId.\n * @returns The found or created queue rule.\n */\n async findOrCreateQueueRule(payload: FindOrCreateQueueRuleRequest): Promise<QueueRule> {\n const { data } = await this.httpClient.put<QueueRule>(`${this.baseUrl}/rules/queue/find-or-create`, payload);\n return data;\n }\n\n /**\n * @param params - The company and pagination parameters.\n * @returns The paginated initial service rules.\n */\n async getRootRules(params: GetRootRulesRequest): Promise<RootRulesResponse> {\n const { data } = await this.httpClient.get<RootRulesResponse>(`${this.baseUrl}/rules/paginated`, {\n params: {\n archiveStatus: 'unarchived',\n companyId: params.companyId,\n offset: params.offset,\n limit: params.limit,\n name: params?.name,\n isRoot: true,\n },\n });\n return data;\n }\n}\n\nexport type {\n GetServiceGroupsParams,\n Queue,\n QueueMember,\n DistributionType,\n QueueListResponse,\n ServiceGroup,\n ServiceGroupsResponse,\n} from './contracts/queues';\nexport type {\n GetProviderConfigurationsParams,\n GetProviderDisplayInfoParams,\n ProviderConfiguration,\n ProviderConfigurationsResponse,\n ProviderDisplayInfoResponse,\n ProviderListResponse,\n Provider,\n ProviderName,\n WhatsAppProviderSettings,\n WidgetProviderSettings,\n} from './contracts/provider';\nexport type {\n ConfigListByProviderResponse,\n Config,\n ConfigProvider,\n GetConfigsByProviderParams,\n} from './contracts/config';\nexport type {\n MetaTemplateButton,\n MetaTemplateConfigResponse,\n MetaTemplateConfigsResponse,\n} from './contracts/meta-template';\nexport type { FindOrCreateQueueRuleRequest, QueueRule, RootRulesResponse, Rule } from './contracts/rule';\n","import type { AxiosInstance } from 'axios';\nimport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\n CreateCampaignRequest,\n PatchCampaignRequest,\n CampaignUser,\n} from './contracts/campaign';\nimport type {\n CampaignContactPaginatedResponse,\n CampaignContactQueryParams,\n CampaignContactResponse,\n CreateCampaignContactRequest,\n PatchCampaignContactRequest,\n} from './contracts/campaign-contacts';\nimport type {\n CampaignContactsDashboardData,\n CampaignContactsDashboardQueryParams,\n} from './contracts/campaign-contacts-dashboard';\nimport type {\n CampaignWorkGroup,\n CampaignWorkGroupPaginatedResponse,\n CampaignWorkGroupQueryParams,\n CreateCampaignWorkGroupRequest,\n} from './contracts/work-group';\nimport type { CampaignAccessResponse } from './contracts/access';\nimport type {\n CampaignCompanyPaginatedResponse,\n CampaignCompanyQueryParams,\n CampaignCompanyResponse,\n EnableCampaignCompanyRequest,\n} from './contracts/campaign-company';\n\n/**\n * Gateway for interacting with the Campaigns API.\n */\nexport class CampaignsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves a paginated list of campaigns.\n * @param query - Optional query parameters for filtering and pagination.\n * @returns The paginated campaigns response.\n */\n async find(query?: CampaignQueryParams): Promise<CampaignPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignPaginatedResponse>(`${this.baseUrl}/campaigns`, {\n params: query,\n });\n return data;\n }\n\n /**\n * Retrieves a campaign by its unique identifier.\n * @param id - The unique identifier of the campaign.\n * @returns The campaign data.\n */\n async get(id: string): Promise<Campaign> {\n const { data } = await this.httpClient.get<Campaign>(`${this.baseUrl}/campaigns/${id}`);\n return data;\n }\n\n /**\n * Creates a new campaign.\n * @param payload - The campaign data to create.\n * @returns The created campaign.\n */\n async create(payload: CreateCampaignRequest): Promise<Campaign> {\n const { data } = await this.httpClient.post<Campaign>(`${this.baseUrl}/campaigns`, payload);\n return data;\n }\n\n /**\n * Partially updates an existing campaign.\n * @param id - The unique identifier of the campaign.\n * @param payload - The fields to update.\n * @returns The updated campaign.\n */\n async patch(id: string, payload: PatchCampaignRequest): Promise<Campaign> {\n const { data } = await this.httpClient.patch<Campaign>(`${this.baseUrl}/campaigns/${id}`, payload);\n return data;\n }\n\n /**\n * Removes a campaign by its unique identifier.\n * @param id - The unique identifier of the campaign.\n * @returns The removed campaign.\n */\n async remove(id: string): Promise<Campaign> {\n const { data } = await this.httpClient.delete<Campaign>(`${this.baseUrl}/campaigns/${id}`);\n return data;\n }\n\n /**\n * Retrieves a paginated list of campaign contacts.\n * @param query - Optional query parameters for filtering and pagination.\n * @returns The paginated campaign contacts response.\n */\n async findCampaignContacts(query?: CampaignContactQueryParams): Promise<CampaignContactPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignContactPaginatedResponse>(`${this.baseUrl}/campaign-contacts`, {\n params: query,\n });\n return data;\n }\n\n /**\n * Retrieves a campaign contact by its unique identifier.\n * @param id - The unique identifier of the campaign contact.\n * @returns The campaign contact data.\n */\n async getCampaignContacts(id: string): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.get<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts/${id}`);\n return data;\n }\n\n /**\n * Creates a new campaign contact.\n * @param payload - The campaign contact data to create.\n * @returns The created campaign contact.\n */\n async createCampaignContact(payload: CreateCampaignContactRequest): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.post<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts`, payload);\n return data;\n }\n\n /**\n * Adds multiple contacts to a campaign in a single request.\n * @param payload - The list of campaign contacts to create.\n * @returns The created campaign contacts.\n */\n async addContactsToCampaign(payload: CreateCampaignContactRequest[]): Promise<CampaignContactResponse[]> {\n const { data } = await this.httpClient.post<CampaignContactResponse[]>(\n `${this.baseUrl}/campaign-contacts`,\n payload,\n );\n return data;\n }\n\n /**\n * Partially updates an existing campaign contact.\n * @param id - The unique identifier of the campaign contact.\n * @param payload - The fields to update.\n * @returns The updated campaign contact.\n */\n async patchCampaignContact(id: string, payload: PatchCampaignContactRequest): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.patch<CampaignContactResponse>(\n `${this.baseUrl}/campaign-contacts/${id}`,\n payload,\n );\n return data;\n }\n\n /**\n * Removes a campaign contact by its unique identifier.\n * @param id - The unique identifier of the campaign contact.\n * @returns The removed campaign contact.\n */\n async removeCampaignContact(id: string): Promise<CampaignContactResponse> {\n const { data } = await this.httpClient.delete<CampaignContactResponse>(`${this.baseUrl}/campaign-contacts/${id}`);\n return data;\n }\n\n async getContactsDashboardData(\n query: CampaignContactsDashboardQueryParams,\n ): Promise<CampaignContactsDashboardData> {\n const { data } = await this.httpClient.get<CampaignContactsDashboardData>(\n `${this.baseUrl}/campaign-contacts-dashboard`,\n {\n params: query,\n },\n );\n return data;\n }\n\n async getUsers() {\n const { data } = await this.httpClient.get<CampaignUser[]>(`${this.baseUrl}/users`);\n return data;\n }\n\n async listWorkGroups(query?: CampaignWorkGroupQueryParams): Promise<CampaignWorkGroupPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignWorkGroupPaginatedResponse>(`${this.baseUrl}/work-groups`, {\n params: query,\n });\n return data;\n }\n\n async createWorkGroup(payload: CreateCampaignWorkGroupRequest): Promise<CampaignWorkGroup> {\n const { data } = await this.httpClient.post<CampaignWorkGroup>(`${this.baseUrl}/work-groups`, payload);\n return data;\n }\n\n async deleteWorkGroup(id: string): Promise<CampaignWorkGroup> {\n const { data } = await this.httpClient.delete<CampaignWorkGroup>(`${this.baseUrl}/work-groups/${id}`);\n return data;\n }\n\n /**\n * Lists company installations of the Campaigns module.\n * @param query - Optional query parameters (e.g. companyId, enabled).\n * @returns The paginated list of campaign company installations.\n */\n async findCampaignCompanies(query?: CampaignCompanyQueryParams): Promise<CampaignCompanyPaginatedResponse> {\n const { data } = await this.httpClient.get<CampaignCompanyPaginatedResponse>(\n `${this.baseUrl}/campaign-companies`,\n { params: query },\n );\n return data;\n }\n\n /**\n * Retrieves the Campaigns module installation for a given company.\n * @param companyId - The company identifier.\n * @returns The campaign company installation, or null when the module is not installed.\n */\n async getCampaignCompany(companyId: string): Promise<CampaignCompanyResponse | null> {\n try {\n const { data } = await this.httpClient.get<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies/${companyId}`,\n );\n return data;\n } catch (error) {\n if ((error as { response?: { status?: number } })?.response?.status === 404) {\n return null;\n }\n throw error;\n }\n }\n\n /**\n * Enables the Campaigns module for a given company.\n * @param payload - The enable request payload (companyId, optional enabledByUserId).\n * @returns The created campaign company installation.\n */\n async enableCampaignCompany(payload: EnableCampaignCompanyRequest): Promise<CampaignCompanyResponse> {\n const { data } = await this.httpClient.post<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies`,\n payload,\n );\n return data;\n }\n\n /**\n * Disables the Campaigns module for a given company by removing the installation record.\n * @param id - The campaign company installation id.\n * @returns The removed campaign company installation.\n */\n async disableCampaignCompany(id: string): Promise<CampaignCompanyResponse> {\n const { data } = await this.httpClient.delete<CampaignCompanyResponse>(\n `${this.baseUrl}/campaign-companies/${id}`,\n );\n return data;\n }\n\n /**\n * Checks whether the current caller has access to the Campaigns module.\n * @returns The access verdict for the authenticated user.\n */\n async getMyAccess(): Promise<CampaignAccessResponse> {\n const { data } = await this.httpClient.get<CampaignAccessResponse>(\n `${this.baseUrl}/campaigns-access`,\n );\n return data;\n }\n}\n\nexport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\n CampaignRetryConfig,\n CampaignStatus,\n CampaignProvider,\n WhatsAppPayload,\n WhatsAppTemplateComponent,\n CampaignContactFilter,\n CampaignSchedule,\n CreateCampaignRequest,\n PatchCampaignRequest,\n CampaignUser,\n} from './contracts/campaign';\nexport type {\n CampaignContactCampaignStatus,\n CampaignContactDispatchStatus,\n CampaignContactLikeQueryOperators,\n CampaignContactPaginatedResponse,\n CampaignContactQueryOperators,\n CampaignContactQueryParams,\n CampaignContactQueryValue,\n CampaignContactResponse,\n CampaignContactSortDirection,\n CampaignContactSortParams,\n CreateCampaignContactRequest,\n PatchCampaignContactRequest,\n} from './contracts/campaign-contacts';\nexport type {\n CampaignContactsDashboardChannelPerformance,\n CampaignContactsDashboardData,\n CampaignContactsDashboardExactQueryOperators,\n CampaignContactsDashboardEvolutionItem,\n CampaignContactsDashboardFunnelItem,\n CampaignContactsDashboardInterval,\n CampaignContactsDashboardMetrics,\n CampaignContactsDashboardQueryParams,\n CampaignContactsDashboardQueryValue,\n CampaignContactsDashboardRangeQueryOperators,\n CampaignContactsDashboardStatusDistribution,\n CampaignContactsDashboardStatusMetrics,\n CampaignContactsDashboardSummary,\n CampaignContactsDashboardTopCampaign,\n} from './contracts/campaign-contacts-dashboard';\nexport type {\n CampaignWorkGroup,\n CampaignWorkGroupPaginatedResponse,\n CampaignWorkGroupQueryParams,\n CreateCampaignWorkGroupRequest,\n} from './contracts/work-group';\nexport type { CampaignAccessResponse, CampaignAccessReason } from './contracts/access';\nexport type {\n CampaignCompanyPaginatedResponse,\n CampaignCompanyQueryParams,\n CampaignCompanyResponse,\n EnableCampaignCompanyRequest,\n} from './contracts/campaign-company';\n","import type { AxiosInstance } from 'axios';\nimport type { GetConfigTemplatesResponse, GetConfigTemplatesParams } from './contracts/chat-adapter';\n\n/**\n * Gateway for interacting with the Chat Adapter API.\n */\nexport class ChatAdapterGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves message templates associated with a configuration.\n * @param configId - The unique identifier of the configuration.\n * @param params - Optional query parameters for filtering and pagination.\n * @returns A promise that resolves to the template list response.\n */\n async getConfigTemplates(configId: string, params?: GetConfigTemplatesParams): Promise<GetConfigTemplatesResponse> {\n const { data } = await this.httpClient.get<GetConfigTemplatesResponse>(\n `${this.baseUrl}/message-templates/${configId}`,\n { params },\n );\n return data;\n }\n}\n\nexport type {\n GetConfigTemplatesResponse,\n GetConfigTemplatesParams,\n MessageTemplate,\n MessageTemplateComponent,\n ConfigTemplatesPaging,\n} from './contracts/chat-adapter';\n","import type { AxiosInstance } from 'axios';\nimport type { GetPresignedUrlRequest, UploadPresignedUrlResponse, AudioConvertResponse, GetAttachmentByIdRequest, AttachmentByIdResponse } from './contracts/assets';\n\n/**\n * Gateway for interacting with the Assets API.\n */\nexport class AssetsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n /**\n * Retrieves a presigned URL to upload a file to the Assets API.\n * @param params - The configuration options and parameters for the presigned URL.\n * @returns The presigned URL details wrapped in a {@link UploadPresignedUrlResponse}.\n */\n async getPresignedUrl(params: GetPresignedUrlRequest): Promise<UploadPresignedUrlResponse> {\n const { data } = await this.httpClient.get<UploadPresignedUrlResponse>(`${this.baseUrl}/uploads/presigned-url`, {\n params,\n });\n return data;\n }\n\n /**\n * Converts an audio file to M4A format via the Assets API.\n * @param params - The audio file to convert.\n * @param params.file - The audio file to upload for conversion.\n * @returns The converted audio response with base64-encoded data, mimetype, extension and filename.\n */\n async convertAudioToM4A(formData: any): Promise<AudioConvertResponse> {\n const { data } = await this.httpClient.post<AudioConvertResponse>(\n `${this.baseUrl}/whatsapp/audio-convert`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n },\n );\n return data;\n }\n\n /**\n * Fetches an attachment by its file ID or storage key.\n *\n * When `key` is provided, the path is built from the key directly and no\n * `x-bucket-provider` header is sent. Otherwise, `fileId` and `provider` are\n * used to build the path and the provider header respectively.\n *\n * @param params - The parameters identifying the attachment.\n * @returns A signed URL to access the attachment.\n */\n async getAttachmentById(params: GetAttachmentByIdRequest): Promise<AttachmentByIdResponse> {\n const path = params.key\n ? `/uploads/${encodeURIComponent(params.key)}`\n : `/uploads/${encodeURIComponent(params.fileId!)}`;\n\n const axiosParams: Record<string, string> = {};\n\n if (params.download) axiosParams.download = 'true';\n if (params.filename) axiosParams.filename = params.filename;\n const headers: Record<string, string> = {};\n if (!params.key && params.provider) headers['x-bucket-provider'] = params.provider!;\n\n const { data } = await this.httpClient.get<AttachmentByIdResponse>(`${this.baseUrl}${path}`, {\n params: axiosParams,\n headers,\n });\n return data;\n }\n}\n\nexport type {\n GetPresignedUrlRequest,\n UploadPresignedUrlResponse,\n IUploadPresignedUrlResponse,\n AudioConvertResponse,\n GetAttachmentByIdRequest,\n AttachmentByIdResponse,\n} from './contracts/assets';\n","import type { AxiosInstance } from 'axios';\nimport type {\n ContactPhoneSearchResponse,\n GetContactPhonesParams,\n ContactCategoryResponse,\n} from './contracts/contact-phone';\n\n/**\n * Gateway for interacting with the Contact List API.\n */\nexport class ContactListGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Searches for contact phones with optional filtering and pagination.\n * @param params - The query parameters for the search.\n * @returns The paginated contact phones response.\n */\n async getContactsPhones(params: GetContactPhonesParams): Promise<ContactPhoneSearchResponse> {\n const { data } = await this.httpClient.get<ContactPhoneSearchResponse>(\n `${this.baseUrl}/contact/phone/search`,\n { params },\n );\n return data;\n }\n\n /**\n * Retrieves all contact categories.\n * @returns An array of contact categories.\n */\n async getCategoryList(): Promise<ContactCategoryResponse[]> {\n const { data } = await this.httpClient.get<ContactCategoryResponse[]>(\n `${this.baseUrl}/contact/category`,\n );\n return data;\n }\n}\n\nexport type {\n ContactPhoneSearchResponse,\n GetContactPhonesParams,\n ContactPhoneResponse,\n ContactCategoryResponse,\n} from './contracts/contact-phone';\n","import type { AxiosInstance } from 'axios';\nimport type {\n CreateIntegrationActionRequest,\n CreateWebhookRequest,\n CreateIntegrationFieldRequest,\n CreateIntegrationPartnerRequest,\n DeleteIntegrationActionParams,\n DeleteIntegrationFieldParams,\n DeleteIntegrationPartnerParams,\n GetIntegrationHooksCatalogRequest,\n GetWebhooksByCompanyRequest,\n GetIntegrationPartnersByCompanyRequest,\n HookCatalogItem,\n IntegrationAction,\n IntegrationField,\n IntegrationPartner,\n UpdateIntegrationActionParams,\n UpdateIntegrationActionRequest,\n UpdateIntegrationFieldParams,\n UpdateIntegrationFieldRequest,\n} from './contracts';\n\n/**\n * Gateway for interacting with the Integrations API.\n */\nexport class IntegrationsGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Retrieves all integration partners configured for a company.\n * @param companyId - The company identifier.\n * @returns The integration partners configured for the company.\n */\n async getPartnersByCompany({ companyId, name }: GetIntegrationPartnersByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/partner/company/${companyId}`, {\n params: name ? { name } : undefined,\n });\n return data;\n }\n\n /** Retrieves the webhooks scenario for a company. */\n async getWebhooksByCompany(params: GetWebhooksByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/webhooks`, {\n params,\n });\n return data;\n }\n\n /**\n * Retrieves the hook catalog, optionally scoped by module.\n * @param module - The optional module identifier used by the Integrations API filter.\n * @returns The hook catalog items, filtered by module when provided.\n */\n async getHooksCatalog({ module }: GetIntegrationHooksCatalogRequest = {}): Promise<HookCatalogItem[]> {\n const { data } = await this.httpClient.get<HookCatalogItem[]>(`${this.baseUrl}/hooks`, {\n params: module ? { module } : undefined,\n });\n return data;\n }\n\n /**\n * Creates an integration partner.\n * @param payload - The partner creation payload.\n * @returns The created integration partner.\n */\n async createPartner(payload: CreateIntegrationPartnerRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/partner`, payload);\n return data;\n }\n\n /** Creates a webhook. */\n async createWebhook(payload: CreateWebhookRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/webhooks`, payload);\n return data;\n }\n\n /**\n * Deletes an integration partner.\n * @param partnerId - The partner identifier.\n * @returns A promise that resolves when the partner is deleted.\n */\n async deletePartner({ partnerId }: DeleteIntegrationPartnerParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/partner/${partnerId}`);\n }\n\n /**\n * Creates an integration action.\n * @param payload - The action creation payload.\n * @returns The created integration action.\n */\n async createAction(payload: CreateIntegrationActionRequest): Promise<IntegrationAction> {\n const { data } = await this.httpClient.post<IntegrationAction>(`${this.baseUrl}/action`, {\n ...payload,\n actionName: payload.actionName ?? payload.hook,\n });\n return data;\n }\n\n /**\n * Updates an integration action.\n * @param actionId - The action identifier.\n * @param payload - The action update payload.\n * @returns The updated integration action.\n */\n async updateAction({ actionId, payload }: UpdateIntegrationActionParams): Promise<IntegrationAction> {\n const { data } = await this.httpClient.patch<IntegrationAction>(`${this.baseUrl}/action/${actionId}`, payload);\n return data;\n }\n\n /**\n * Creates an integration action field/header.\n * @param payload - The field creation payload.\n * @returns The created integration field.\n */\n async createField(payload: CreateIntegrationFieldRequest): Promise<IntegrationField> {\n const { data } = await this.httpClient.post<IntegrationField>(`${this.baseUrl}/field`, payload);\n return data;\n }\n\n /**\n * Updates an integration action field/header.\n * @param fieldId - The field identifier.\n * @param payload - The field update payload.\n * @returns The updated integration field response.\n */\n async updateField({ fieldId, payload }: UpdateIntegrationFieldParams): Promise<IntegrationField | number[]> {\n const { data } = await this.httpClient.put<IntegrationField | number[]>(`${this.baseUrl}/field/${fieldId}`, payload);\n return data;\n }\n\n /**\n * Deletes an integration action field/header.\n * @param fieldId - The field identifier.\n * @returns A promise that resolves when the field is deleted.\n */\n async deleteField({ fieldId }: DeleteIntegrationFieldParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/field/${fieldId}`);\n }\n\n /**\n * Deletes an integration action.\n * @param actionId - The action identifier.\n * @returns A promise that resolves when the action is deleted.\n */\n async deleteAction({ actionId }: DeleteIntegrationActionParams): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/action/${actionId}`);\n }\n}\n\nexport type {\n CreateIntegrationActionRequest,\n CreateWebhookRequest,\n CreateIntegrationFieldRequest,\n CreateIntegrationPartnerRequest,\n DeleteIntegrationActionParams,\n DeleteIntegrationFieldParams,\n DeleteIntegrationPartnerParams,\n GetIntegrationHooksCatalogRequest,\n GetWebhooksByCompanyRequest,\n GetIntegrationPartnersByCompanyRequest,\n HookCatalogItem,\n IntegrationAction,\n IntegrationField,\n IntegrationPartner,\n UpdateIntegrationActionParams,\n UpdateIntegrationActionRequest,\n UpdateIntegrationFieldParams,\n UpdateIntegrationFieldRequest,\n} from './contracts';\n","import type { AxiosInstance } from 'axios';\nimport type {\n CancelInvitationRequest,\n ListInvitationsRequest,\n ReplyInvitationRequest,\n InvitationResponse,\n ListLiveUserRoomsRequest,\n LiveUserRoomResponse,\n GetRoomByIdRequest,\n RoomResponse,\n} from './contracts';\n\n/**\n * Gateway for interacting with the Chat Webservice API.\n */\nexport class ChatWebserviceGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Lists chat invitations for a user within a company.\n * @param params - The user, company, and invitation status filters.\n * @returns The matching chat invitations.\n */\n async listInvitations(params: ListInvitationsRequest): Promise<InvitationResponse[]> {\n const { data } = await this.httpClient.get<InvitationResponse[]>(`${this.baseUrl}/invitations`, { params });\n return data;\n }\n\n /**\n * Replies to a chat invitation.\n * @param payload - The invitation identifier to reply to.\n * @returns The updated chat invitations.\n */\n async replyInvitation(payload: ReplyInvitationRequest): Promise<InvitationResponse[]> {\n const { data } = await this.httpClient.put<InvitationResponse[]>(`${this.baseUrl}/invitations/reply`, payload);\n return data;\n }\n\n /**\n * Cancels a chat invitation for a room.\n * @param roomId - The chat room identifier.\n * @param payload - The delegator identifier used to cancel the invitation.\n */\n async cancelInvitation(roomId: number, payload: CancelInvitationRequest): Promise<void> {\n await this.httpClient.delete(`${this.baseUrl}/invitations/chat/${roomId}`, {\n data: payload,\n });\n }\n\n /**\n * Lists live rooms assigned to a user.\n * @param params - The recipient, company, and open-status filters.\n * @returns The live room entries for the user.\n */\n async listLiveUserRooms(params: ListLiveUserRoomsRequest): Promise<LiveUserRoomResponse[]> {\n const { data } = await this.httpClient.get<LiveUserRoomResponse[]>(`${this.baseUrl}/member/rooms/live`, { params });\n return data;\n }\n\n /**\n * Retrieves a chat room by its identifier.\n * @param id - The unique identifier of the room.\n * @param params - Optional query parameters for scoping and member inclusion.\n * @returns The chat room data.\n */\n async getRoomById(id: number, params: GetRoomByIdRequest = {}): Promise<RoomResponse> {\n const { data } = await this.httpClient.get<RoomResponse>(`${this.baseUrl}/room/${id}`, { params });\n return data;\n }\n}\n\nexport type {\n CancelInvitationRequest,\n GetRoomByIdRequest,\n InvitationResponse,\n ListInvitationsRequest,\n ListLiveUserRoomsRequest,\n LiveUserRoomResponse,\n ReplyInvitationRequest,\n RoomActiveDates,\n RoomMemberResponse,\n RoomResponse,\n RoomTagResponse,\n} from './contracts';\n","import type { AxiosInstance } from 'axios';\nimport type { ContactHistoryResponse, ListContactHistoryRequest } from './contracts/contact-history';\n\n/**\n * Gateway for interacting with the Call Report API.\n */\nexport class CallReportGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /**\n * Lists contact interaction history across chat and CDR indexes.\n * @param params - Optional filters, pagination, and index selection.\n * @returns The paginated contact history response.\n */\n async listContactHistory(params: ListContactHistoryRequest = {}): Promise<ContactHistoryResponse> {\n const { data } = await this.httpClient.get<ContactHistoryResponse>(`${this.baseUrl}/history/index/multi`, {\n params,\n });\n return data;\n }\n}\n\nexport type {\n ContactHistoryIndex,\n ContactHistoryResponse,\n ContactHistorySortOrder,\n ContactInteractionResponse,\n InteractionCallStepResponse,\n InteractionChatStepResponse,\n InteractionMemberResponse,\n InteractionOrganizationResponse,\n ListContactHistoryRequest,\n} from './contracts/contact-history';\n","import type { AxiosInstance } from 'axios';\nimport type { IntegrationPartner } from '../integrations/contracts';\nimport type {\n CasePermissions,\n CommentHistoryCursor,\n CommentHistoryPage,\n GetCommentHistoryRequest,\n UpdateCasePermissionsRequest,\n} from './contracts';\nimport type { GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './contracts/case-feed-by-actions';\n\n/** Request parameters for retrieving the webhooks scenario for a company. */\nexport interface GetWebhooksByCompanyRequest {\n companyId: string;\n}\n\n/** Request payload for creating a webhooks scenario. */\nexport interface CreateWebhookRequest {\n companyId: string;\n baseUrl: string;\n}\n\n/**\n * Gateway for interacting with the Cases API.\n */\nexport class CasesGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n\n /** Retrieves the webhooks scenario for a company. */\n async getWebhooksByCompany(params: GetWebhooksByCompanyRequest): Promise<IntegrationPartner[]> {\n const { data } = await this.httpClient.get<IntegrationPartner[]>(`${this.baseUrl}/webhooks`, {\n params,\n });\n return data;\n }\n\n /** Creates a webhook. */\n async createWebhook(payload: CreateWebhookRequest): Promise<IntegrationPartner> {\n const { data } = await this.httpClient.post<IntegrationPartner>(`${this.baseUrl}/webhooks`, payload);\n return data;\n }\n\n /** Retrieves one chronological page of the edit/delete history of a case comment. */\n async getCommentHistory(params: GetCommentHistoryRequest): Promise<CommentHistoryPage> {\n const query: { limit?: number; cursor?: CommentHistoryCursor } = {};\n if (params.limit !== undefined) query.limit = params.limit;\n if (params.cursor !== undefined) query.cursor = params.cursor;\n\n const { data } = await this.httpClient.get<CommentHistoryPage>(\n `${this.baseUrl}/comment/history/${params.commentId}`,\n { params: query },\n );\n return data;\n }\n\n /** Retrieves the Cases permission configuration for the current company. */\n async getCasePermissions(): Promise<CasePermissions> {\n const { data } = await this.httpClient.get<CasePermissions>(`${this.baseUrl}/case-settings/permissions`);\n return data;\n }\n\n /** Updates the Cases permission configuration for the current company. */\n async updateCasePermissions(payload: UpdateCasePermissionsRequest): Promise<CasePermissions> {\n const { data } = await this.httpClient.patch<CasePermissions>(\n `${this.baseUrl}/case-settings/permissions`,\n payload,\n );\n return data;\n }\n\n /**\n * Retrieves case feed entries for a batch of action IDs.\n * @param payload - The action type and list of action IDs to look up.\n * @returns Array of case feed items linking each action to a case.\n */\n async getCaseFeedByActions(payload: GetCaseFeedByActionsRequest): Promise<CaseFeedByActionItem[]> {\n const { data } = await this.httpClient.post<CaseFeedByActionItem[]>(\n `${this.baseUrl}/cases-feed/by-actions`,\n payload,\n );\n return data;\n }\n}\n\nexport type {\n CommentHistoryEntry,\n CommentHistoryChangeType,\n CommentHistoryCursor,\n CommentHistoryPage,\n GetCommentHistoryRequest,\n} from './contracts/comment-history';\nexport type { CasePermissions, CasePermissionsValue, UpdateCasePermissionsRequest } from './contracts/case-permissions';\nexport type { GetCaseFeedByActionsRequest, CaseFeedByActionItem } from './contracts/case-feed-by-actions';\n","import type { AxiosInstance } from 'axios';\n\n/**\n * Gateway for interacting with the RH API.\n */\nexport class RhGateway {\n constructor(\n private readonly httpClient: AxiosInstance,\n private readonly baseUrl: string,\n ) {}\n}\n\nexport type { Event } from './contracts/event';\n","import { CustomerServiceGateway } from '../customer-service';\nimport { ChatConfigGateway } from '../chat-config';\nimport { CampaignsGateway } from '../campaigns';\nimport { ChatAdapterGateway } from '../chat-adapter';\nimport { AssetsGateway } from '../assets';\nimport { ContactListGateway } from '../contact-list';\nimport { IntegrationsGateway } from '../integrations';\nimport { ChatWebserviceGateway } from '../chat-webservice';\nimport { CallReportGateway } from '../call-report';\nimport { CasesGateway } from '../cases';\nimport { RhGateway } from '../rh';\nimport axios, { AxiosInstance } from 'axios';\n\n/**\n * Maps service identifiers to their corresponding gateway types.\n * Used by the `gateway()` function to infer the correct return type\n * based on the service name passed as argument.\n *\n * When adding a new service, add an entry here with the service\n * identifier as the key and the gateway class as the value.\n */\nexport type GatewayMap = {\n 'customer-service': CustomerServiceGateway;\n 'chat-config': ChatConfigGateway;\n campaigns: CampaignsGateway;\n 'chat-adapter': ChatAdapterGateway;\n assets: AssetsGateway;\n 'contact-list': ContactListGateway;\n integrations: IntegrationsGateway;\n 'chat-webservice': ChatWebserviceGateway;\n 'call-report': CallReportGateway;\n cases: CasesGateway;\n rh: RhGateway;\n};\n\nexport interface SDKGatewaysInterface {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n contactList: ContactListGateway | null;\n integrations: IntegrationsGateway | null;\n chatWebservice: ChatWebserviceGateway | null;\n callReport: CallReportGateway | null;\n cases: CasesGateway | null;\n rh: RhGateway | null;\n}\n\nclass SDKGateways {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n contactList: ContactListGateway | null;\n integrations: IntegrationsGateway | null;\n chatWebservice: ChatWebserviceGateway | null;\n callReport: CallReportGateway | null;\n cases: CasesGateway | null;\n rh: RhGateway | null;\n constructor(\n customerService: CustomerServiceGateway | null,\n chatConfig: ChatConfigGateway | null,\n campaigns: CampaignsGateway | null,\n chatAdapter: ChatAdapterGateway | null,\n assets: AssetsGateway | null,\n contactList: ContactListGateway | null,\n integrations: IntegrationsGateway | null,\n chatWebservice: ChatWebserviceGateway | null,\n callReport: CallReportGateway | null,\n cases: CasesGateway | null,\n rh: RhGateway | null,\n ) {\n this.customerService = customerService;\n this.chatConfig = chatConfig;\n this.campaigns = campaigns;\n this.chatAdapter = chatAdapter;\n this.assets = assets;\n this.contactList = contactList;\n this.integrations = integrations;\n this.chatWebservice = chatWebservice;\n this.callReport = callReport;\n this.cases = cases;\n this.rh = rh;\n }\n}\n\n/**\n * Parameters required to configure the SDK client.\n * Each service configuration is optional, only provide the services you need.\n */\nexport interface GatewayClientParams {\n /** An Axios instance used as the HTTP client for all gateway requests (optional). */\n axiosClient?: AxiosInstance;\n /** API token used for authentication across all services. */\n apiToken: string;\n /** Configuration for each service gateway. Only the services you configure will be available. */\n services: {\n customerService?: {\n baseUrl: string;\n };\n chatConfig?: {\n baseUrl: string;\n };\n campaigns?: {\n baseUrl: string;\n };\n chatAdapter?: {\n baseUrl: string;\n };\n assets?: {\n baseUrl: string;\n };\n contactList?: {\n baseUrl: string;\n };\n integrations?: {\n baseUrl: string;\n };\n chatWebservice?: {\n baseUrl: string;\n };\n callReport?: {\n baseUrl: string;\n };\n cases?: {\n baseUrl: string;\n };\n rh?: {\n baseUrl: string;\n };\n };\n}\n\n/**\n * Creates an SDKGateways instance with all service gateways initialized\n * using the provided configuration parameters.\n * Services without configuration will be set to null and will throw\n * an error if accessed via `gateway()`.\n */\nexport function createClient(params: GatewayClientParams) {\n const httpClient =\n params.axiosClient ||\n axios.create({\n headers: {\n Authorization: `Bearer ${params.apiToken}`,\n },\n });\n const customerService = params.services.customerService\n ? new CustomerServiceGateway(httpClient, params.services.customerService.baseUrl)\n : null;\n const chatConfig = params.services.chatConfig\n ? new ChatConfigGateway(httpClient, params.services.chatConfig.baseUrl)\n : null;\n const campaigns = params.services.campaigns\n ? new CampaignsGateway(httpClient, params.services.campaigns.baseUrl)\n : null;\n const chatAdapter = params.services.chatAdapter\n ? new ChatAdapterGateway(httpClient, params.services.chatAdapter.baseUrl)\n : null;\n const assets = params.services.assets ? new AssetsGateway(httpClient, params.services.assets.baseUrl) : null;\n const contactList = params.services.contactList\n ? new ContactListGateway(httpClient, params.services.contactList.baseUrl)\n : null;\n const integrations = params.services.integrations\n ? new IntegrationsGateway(httpClient, params.services.integrations.baseUrl)\n : null;\n const chatWebservice = params.services.chatWebservice\n ? new ChatWebserviceGateway(httpClient, params.services.chatWebservice.baseUrl)\n : null;\n const callReport = params.services.callReport\n ? new CallReportGateway(httpClient, params.services.callReport.baseUrl)\n : null;\n const cases = params.services.cases ? new CasesGateway(httpClient, params.services.cases.baseUrl) : null;\n const rh = params.services.rh ? new RhGateway(httpClient, params.services.rh.baseUrl) : null;\n return new SDKGateways(\n customerService,\n chatConfig,\n campaigns,\n chatAdapter,\n assets,\n contactList,\n integrations,\n chatWebservice,\n callReport,\n cases,\n rh,\n );\n}\n","export const SERVICE_GATEWAYS = {\n CUSTOMER_SERVICE: 'customer-service',\n CHAT_CONFIG: 'chat-config',\n CAMPAIGNS: 'campaigns',\n CHAT_ADAPTER: 'chat-adapter',\n ASSETS: 'assets',\n CONTACT_LIST: 'contact-list',\n INTEGRATIONS: 'integrations',\n CHAT_WEBSERVICE: 'chat-webservice',\n CALL_REPORT: 'call-report',\n CASES: 'cases',\n RH: 'rh',\n} as const;\n\nexport type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];\n","import { createClient, SDKGatewaysInterface, GatewayClientParams, GatewayMap } from './@common/client';\nimport { SERVICE_GATEWAYS } from './@common/enums';\n\nexport { SERVICE_GATEWAYS };\nexport type { SERVICE_GATEWAYS as SERVICE_GATEWAYS_TYPE } from './@common/enums';\n\nclass SDK {\n client: SDKGatewaysInterface | null = null;\n\n configure(params: GatewayClientParams) {\n this.client = createClient(params);\n }\n}\nconst sdk = new SDK();\n\n/**\n * Initializes the SDK with the required configuration parameters.\n * Must be called before using {@link gateway}.\n */\nexport const configure = (params: GatewayClientParams) => {\n sdk.configure(params);\n};\n\n/**\n * Returns the gateway instance for the specified service.\n *\n * @typeParam T - A service identifier key from {@link GatewayMap}.\n * @param service - The service identifier (e.g. `SERVICE_GATEWAYS.CUSTOMER_SERVICE`).\n * @returns The corresponding gateway instance with all its methods.\n * @throws {Error} If the SDK has not been configured via {@link configure}.\n * @throws {Error} If an unknown service identifier is provided.\n *\n * @example\n * ```ts\n * configure({ axiosClient, apiToken: '...', services: { customerService: { baseUrl: '...' } } });\n * const customer = gateway('customer-service');\n * const company = await customer.getCompanyById('123');\n * ```\n */\nexport function gateway<T extends keyof GatewayMap>(service: T): GatewayMap[T];\nexport function gateway(service: SERVICE_GATEWAYS) {\n if (!sdk.client)\n throw new Error(\n 'SDK not configured. Please call configure() with the appropriate parameters before using the SDK.',\n );\n\n switch (service) {\n case SERVICE_GATEWAYS.CUSTOMER_SERVICE:\n if (!sdk.client.customerService)\n throw new Error(`Service 'customer-service' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.customerService;\n case SERVICE_GATEWAYS.CHAT_CONFIG:\n if (!sdk.client.chatConfig)\n throw new Error(`Service 'chat-config' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatConfig;\n case SERVICE_GATEWAYS.CAMPAIGNS:\n if (!sdk.client.campaigns)\n throw new Error(`Service 'campaigns' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.campaigns;\n case SERVICE_GATEWAYS.CHAT_ADAPTER:\n if (!sdk.client.chatAdapter)\n throw new Error(`Service 'chat-adapter' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatAdapter;\n case SERVICE_GATEWAYS.ASSETS:\n if (!sdk.client.assets)\n throw new Error(`Service 'assets' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.assets;\n case SERVICE_GATEWAYS.CONTACT_LIST:\n if (!sdk.client.contactList)\n throw new Error(`Service 'contact-list' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.contactList;\n case SERVICE_GATEWAYS.INTEGRATIONS:\n if (!sdk.client.integrations)\n throw new Error(`Service 'integrations' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.integrations;\n case SERVICE_GATEWAYS.CHAT_WEBSERVICE:\n if (!sdk.client.chatWebservice)\n throw new Error(`Service 'chat-webservice' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.chatWebservice;\n case SERVICE_GATEWAYS.CALL_REPORT:\n if (!sdk.client.callReport)\n throw new Error(`Service 'call-report' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.callReport;\n case SERVICE_GATEWAYS.CASES:\n if (!sdk.client.cases)\n throw new Error(`Service 'cases' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.cases;\n case SERVICE_GATEWAYS.RH:\n if (!sdk.client.rh)\n throw new Error(`Service 'rh' is not configured. Provide its baseUrl in configure().`);\n return sdk.client.rh;\n default:\n throw new Error(`Unknown service gateway: ${service}`);\n }\n}\n\nexport * from './campaigns/contracts';\nexport * from './chat-config/contracts';\nexport * from './customer-service/contracts';\nexport * from './chat-adapter/contracts';\nexport * from './assets/contracts';\nexport * from './contact-list/contracts';\nexport * from './integrations/contracts';\nexport * from './chat-webservice/contracts';\nexport * from './call-report/contracts';\nexport * from './cases/contracts';\nexport * from './rh/contracts';\n"],"mappings":";AAgBO,IAAM,yBAAN,MAA6B;AAAA,EAClC,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,MAAM,eAAe,WAA6C;AAChE,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAqB,GAAG,KAAK,OAAO,qBAAqB,SAAS,EAAE;AAC3G,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAc,WAAmD;AACrE,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf,EAAE,QAAQ,EAAE,YAAY,UAAU,EAAE;AAAA,IACtC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,iBAAiB,aAAqB,WAAgD;AAC1F,UAAM,SAAS,YAAY,EAAE,YAAY,UAAU,IAAI;AACvD,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,0BAA0B,WAAW;AAAA,MACpD,EAAE,OAAO;AAAA,IACX;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,oBACJ,SACA,WACA,SACmC;AACnC,UAAM,SAAsD,CAAC;AAC7D,QAAI,UAAW,QAAO,aAAa;AACnC,QAAI,QAAS,QAAO,UAAU;AAC9B,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,sBAAsB,OAAO;AAAA,MAC5C,EAAE,OAAO;AAAA,IACX;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY,QAA0D;AAC1E,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf,EAAE,OAAO;AAAA,IACX;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBAAgB,WAAqD;AACzE,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,kBAAkB,SAAS;AAAA,IAC5C;AACA,WAAO;AAAA,EACT;AACF;;;ACnEO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnB,MAAM,eAA8C;AAClD,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA0B,GAAG,KAAK,OAAO,YAAY;AAC5F,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,0BAA0B,QAAmF;AACjH,UAAM,MAAM,GAAG,KAAK,OAAO;AAC3B,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAoC,KAAK,EAAE,OAAe,CAAC;AAClG,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,uBAAuB,QAA4E;AACvG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf,EAAE,OAAO;AAAA,IACX;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,qBACJ,YACA,QACuC;AACvC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,oBAAoB,UAAU;AAAA,MAC7C,EAAE,OAAO;AAAA,IACX;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,aAAa,SAAiC;AAClD,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAW,GAAG,KAAK,OAAO,WAAW,OAAO,EAAE;AACrF,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAA8B;AAClC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAa,GAAG,KAAK,OAAO,SAAS;AAC5E,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,gBAAgB,QAAwD;AAC5E,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAmB,GAAG,KAAK,OAAO,kBAAkB,EAAE,OAAO,CAAC;AACrG,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,iBAAiB,QAAiE;AACtF,UAAM,MAAM,GAAG,KAAK,OAAO;AAC3B,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA2B,KAAK,EAAE,OAAe,CAAC;AACzF,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,oBAAoB,YAAyD;AACjF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,0BAA0B,UAAU;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,6BAA6B,UAAwD;AACzF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,iCAAiC,QAAQ;AAAA,IAC1D;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAsB,SAA2D;AACrF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAe,GAAG,KAAK,OAAO,+BAA+B,OAAO;AAC3G,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAa,QAAyD;AAC1E,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAuB,GAAG,KAAK,OAAO,oBAAoB;AAAA,MAC/F,QAAQ;AAAA,QACN,eAAe;AAAA,QACf,WAAW,OAAO;AAAA,QAClB,QAAQ,OAAO;AAAA,QACf,OAAO,OAAO;AAAA,QACd,MAAM,QAAQ;AAAA,QACd,QAAQ;AAAA,MACV;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AACF;;;ACxIO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,MAAM,KAAK,OAAiE;AAC1E,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA+B,GAAG,KAAK,OAAO,cAAc;AAAA,MACjG,QAAQ;AAAA,IACV,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,IAAI,IAA+B;AACvC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAc,GAAG,KAAK,OAAO,cAAc,EAAE,EAAE;AACtF,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,OAAO,SAAmD;AAC9D,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,KAAe,GAAG,KAAK,OAAO,cAAc,OAAO;AAC1F,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,MAAM,IAAY,SAAkD;AACxE,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,MAAgB,GAAG,KAAK,OAAO,cAAc,EAAE,IAAI,OAAO;AACjG,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,OAAO,IAA+B;AAC1C,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,OAAiB,GAAG,KAAK,OAAO,cAAc,EAAE,EAAE;AACzF,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,qBAAqB,OAA+E;AACxG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAsC,GAAG,KAAK,OAAO,sBAAsB;AAAA,MAChH,QAAQ;AAAA,IACV,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,oBAAoB,IAA8C;AACtE,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA6B,GAAG,KAAK,OAAO,sBAAsB,EAAE,EAAE;AAC7G,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAsB,SAAyE;AACnG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,KAA8B,GAAG,KAAK,OAAO,sBAAsB,OAAO;AACjH,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAsB,SAA6E;AACvG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,qBAAqB,IAAY,SAAwE;AAC7G,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,sBAAsB,EAAE;AAAA,MACvC;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAsB,IAA8C;AACxE,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,OAAgC,GAAG,KAAK,OAAO,sBAAsB,EAAE,EAAE;AAChH,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,yBACJ,OACwC;AACxC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf;AAAA,QACE,QAAQ;AAAA,MACV;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,WAAW;AACf,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAoB,GAAG,KAAK,OAAO,QAAQ;AAClF,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,eAAe,OAAmF;AACtG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAwC,GAAG,KAAK,OAAO,gBAAgB;AAAA,MAC5G,QAAQ;AAAA,IACV,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBAAgB,SAAqE;AACzF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,KAAwB,GAAG,KAAK,OAAO,gBAAgB,OAAO;AACrG,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBAAgB,IAAwC;AAC5D,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,OAA0B,GAAG,KAAK,OAAO,gBAAgB,EAAE,EAAE;AACpG,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAsB,OAA+E;AACzG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf,EAAE,QAAQ,MAAM;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,mBAAmB,WAA4D;AACnF,QAAI;AACF,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,QACrC,GAAG,KAAK,OAAO,uBAAuB,SAAS;AAAA,MACjD;AACA,aAAO;AAAA,IACT,SAAS,OAAO;AACd,UAAK,OAA8C,UAAU,WAAW,KAAK;AAC3E,eAAO;AAAA,MACT;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAsB,SAAyE;AACnG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,uBAAuB,IAA8C;AACzE,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,uBAAuB,EAAE;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAA+C;AACnD,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,IACjB;AACA,WAAO;AAAA,EACT;AACF;;;ACpQO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASnB,MAAM,mBAAmB,UAAkB,QAAwE;AACjH,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,sBAAsB,QAAQ;AAAA,MAC7C,EAAE,OAAO;AAAA,IACX;AACA,WAAO;AAAA,EACT;AACF;;;ACnBO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnB,MAAM,gBAAgB,QAAqE;AACzF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAgC,GAAG,KAAK,OAAO,0BAA0B;AAAA,MAC9G;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,kBAAkB,UAA8C;AACpE,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,QACE,SAAS;AAAA,UACP,gBAAgB;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,kBAAkB,QAAmE;AACzF,UAAM,OAAO,OAAO,MAChB,YAAY,mBAAmB,OAAO,GAAG,CAAC,KAC1C,YAAY,mBAAmB,OAAO,MAAO,CAAC;AAElD,UAAM,cAAsC,CAAC;AAE7C,QAAI,OAAO,SAAU,aAAY,WAAW;AAC5C,QAAI,OAAO,SAAU,aAAY,WAAW,OAAO;AACnD,UAAM,UAAkC,CAAC;AACzC,QAAI,CAAC,OAAO,OAAO,OAAO,SAAU,SAAQ,mBAAmB,IAAI,OAAO;AAE1E,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA4B,GAAG,KAAK,OAAO,GAAG,IAAI,IAAI;AAAA,MAC3F,QAAQ;AAAA,MACR;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AACF;;;AC5DO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,MAAM,kBAAkB,QAAqE;AAC3F,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf,EAAE,OAAO;AAAA,IACX;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,kBAAsD;AAC1D,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,IACjB;AACA,WAAO;AAAA,EACT;AACF;;;ACdO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,MAAM,qBAAqB,EAAE,WAAW,KAAK,GAA0E;AACrH,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA0B,GAAG,KAAK,OAAO,oBAAoB,SAAS,IAAI;AAAA,MAC/G,QAAQ,OAAO,EAAE,KAAK,IAAI;AAAA,IAC5B,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,qBAAqB,QAAoE;AAC7F,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA0B,GAAG,KAAK,OAAO,aAAa;AAAA,MAC3F;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,gBAAgB,EAAE,OAAO,IAAuC,CAAC,GAA+B;AACpG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAuB,GAAG,KAAK,OAAO,UAAU;AAAA,MACrF,QAAQ,SAAS,EAAE,OAAO,IAAI;AAAA,IAChC,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAc,SAAuE;AACzF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,KAAyB,GAAG,KAAK,OAAO,YAAY,OAAO;AAClG,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,cAAc,SAA4D;AAC9E,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,KAAyB,GAAG,KAAK,OAAO,aAAa,OAAO;AACnG,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAc,EAAE,UAAU,GAAkD;AAChF,UAAM,KAAK,WAAW,OAAO,GAAG,KAAK,OAAO,YAAY,SAAS,EAAE;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,aAAa,SAAqE;AACtF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,KAAwB,GAAG,KAAK,OAAO,WAAW;AAAA,MACvF,GAAG;AAAA,MACH,YAAY,QAAQ,cAAc,QAAQ;AAAA,IAC5C,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,aAAa,EAAE,UAAU,QAAQ,GAA8D;AACnG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,MAAyB,GAAG,KAAK,OAAO,WAAW,QAAQ,IAAI,OAAO;AAC7G,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,YAAY,SAAmE;AACnF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,KAAuB,GAAG,KAAK,OAAO,UAAU,OAAO;AAC9F,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,YAAY,EAAE,SAAS,QAAQ,GAAuE;AAC1G,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAiC,GAAG,KAAK,OAAO,UAAU,OAAO,IAAI,OAAO;AACnH,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,YAAY,EAAE,QAAQ,GAAgD;AAC1E,UAAM,KAAK,WAAW,OAAO,GAAG,KAAK,OAAO,UAAU,OAAO,EAAE;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,aAAa,EAAE,SAAS,GAAiD;AAC7E,UAAM,KAAK,WAAW,OAAO,GAAG,KAAK,OAAO,WAAW,QAAQ,EAAE;AAAA,EACnE;AACF;;;ACvIO,IAAM,wBAAN,MAA4B;AAAA,EACjC,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,MAAM,gBAAgB,QAA+D;AACnF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA0B,GAAG,KAAK,OAAO,gBAAgB,EAAE,OAAO,CAAC;AAC1G,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,gBAAgB,SAAgE;AACpF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA0B,GAAG,KAAK,OAAO,sBAAsB,OAAO;AAC7G,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,iBAAiB,QAAgB,SAAiD;AACtF,UAAM,KAAK,WAAW,OAAO,GAAG,KAAK,OAAO,qBAAqB,MAAM,IAAI;AAAA,MACzE,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,kBAAkB,QAAmE;AACzF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA4B,GAAG,KAAK,OAAO,sBAAsB,EAAE,OAAO,CAAC;AAClH,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,YAAY,IAAY,SAA6B,CAAC,GAA0B;AACpF,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAkB,GAAG,KAAK,OAAO,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC;AACjG,WAAO;AAAA,EACT;AACF;;;AClEO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,MAAM,mBAAmB,SAAoC,CAAC,GAAoC;AAChG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA4B,GAAG,KAAK,OAAO,wBAAwB;AAAA,MACxG;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AACF;;;ACEO,IAAM,eAAN,MAAmB;AAAA,EACxB,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA;AAAA,EAInB,MAAM,qBAAqB,QAAoE;AAC7F,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAA0B,GAAG,KAAK,OAAO,aAAa;AAAA,MAC3F;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,cAAc,SAA4D;AAC9E,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,KAAyB,GAAG,KAAK,OAAO,aAAa,OAAO;AACnG,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,kBAAkB,QAA+D;AACrF,UAAM,QAA2D,CAAC;AAClE,QAAI,OAAO,UAAU,OAAW,OAAM,QAAQ,OAAO;AACrD,QAAI,OAAO,WAAW,OAAW,OAAM,SAAS,OAAO;AAEvD,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO,oBAAoB,OAAO,SAAS;AAAA,MACnD,EAAE,QAAQ,MAAM;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,qBAA+C;AACnD,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAqB,GAAG,KAAK,OAAO,4BAA4B;AACvG,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,sBAAsB,SAAiE;AAC3F,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,qBAAqB,SAAuE;AAChG,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,MACrC,GAAG,KAAK,OAAO;AAAA,MACf;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;;;AChFO,IAAM,YAAN,MAAgB;AAAA,EACrB,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAErB;;;ACCA,OAAO,WAA8B;AAsCrC,IAAM,cAAN,MAAkB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YACE,iBACA,YACA,WACA,aACA,QACA,aACA,cACA,gBACA,YACA,OACA,IACA;AACA,SAAK,kBAAkB;AACvB,SAAK,aAAa;AAClB,SAAK,YAAY;AACjB,SAAK,cAAc;AACnB,SAAK,SAAS;AACd,SAAK,cAAc;AACnB,SAAK,eAAe;AACpB,SAAK,iBAAiB;AACtB,SAAK,aAAa;AAClB,SAAK,QAAQ;AACb,SAAK,KAAK;AAAA,EACZ;AACF;AAuDO,SAAS,aAAa,QAA6B;AACxD,QAAM,aACJ,OAAO,eACP,MAAM,OAAO;AAAA,IACX,SAAS;AAAA,MACP,eAAe,UAAU,OAAO,QAAQ;AAAA,IAC1C;AAAA,EACF,CAAC;AACH,QAAM,kBAAkB,OAAO,SAAS,kBACpC,IAAI,uBAAuB,YAAY,OAAO,SAAS,gBAAgB,OAAO,IAC9E;AACJ,QAAM,aAAa,OAAO,SAAS,aAC/B,IAAI,kBAAkB,YAAY,OAAO,SAAS,WAAW,OAAO,IACpE;AACJ,QAAM,YAAY,OAAO,SAAS,YAC9B,IAAI,iBAAiB,YAAY,OAAO,SAAS,UAAU,OAAO,IAClE;AACJ,QAAM,cAAc,OAAO,SAAS,cAChC,IAAI,mBAAmB,YAAY,OAAO,SAAS,YAAY,OAAO,IACtE;AACJ,QAAM,SAAS,OAAO,SAAS,SAAS,IAAI,cAAc,YAAY,OAAO,SAAS,OAAO,OAAO,IAAI;AACxG,QAAM,cAAc,OAAO,SAAS,cAChC,IAAI,mBAAmB,YAAY,OAAO,SAAS,YAAY,OAAO,IACtE;AACJ,QAAM,eAAe,OAAO,SAAS,eACjC,IAAI,oBAAoB,YAAY,OAAO,SAAS,aAAa,OAAO,IACxE;AACJ,QAAM,iBAAiB,OAAO,SAAS,iBACnC,IAAI,sBAAsB,YAAY,OAAO,SAAS,eAAe,OAAO,IAC5E;AACJ,QAAM,aAAa,OAAO,SAAS,aAC/B,IAAI,kBAAkB,YAAY,OAAO,SAAS,WAAW,OAAO,IACpE;AACJ,QAAM,QAAQ,OAAO,SAAS,QAAQ,IAAI,aAAa,YAAY,OAAO,SAAS,MAAM,OAAO,IAAI;AACpG,QAAM,KAAK,OAAO,SAAS,KAAK,IAAI,UAAU,YAAY,OAAO,SAAS,GAAG,OAAO,IAAI;AACxF,SAAO,IAAI;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AC7LO,IAAM,mBAAmB;AAAA,EAC9B,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,WAAW;AAAA,EACX,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,OAAO;AAAA,EACP,IAAI;AACN;;;ACNA,IAAM,MAAN,MAAU;AAAA,EACR,SAAsC;AAAA,EAEtC,UAAU,QAA6B;AACrC,SAAK,SAAS,aAAa,MAAM;AAAA,EACnC;AACF;AACA,IAAM,MAAM,IAAI,IAAI;AAMb,IAAM,YAAY,CAAC,WAAgC;AACxD,MAAI,UAAU,MAAM;AACtB;AAmBO,SAAS,QAAQ,SAA2B;AACjD,MAAI,CAAC,IAAI;AACP,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAEF,UAAQ,SAAS;AAAA,IACf,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,mFAAmF;AACrG,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,8EAA8E;AAChG,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,4EAA4E;AAC9F,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,+EAA+E;AACjG,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,yEAAyE;AAC3F,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,+EAA+E;AACjG,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,+EAA+E;AACjG,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,kFAAkF;AACpG,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,8EAA8E;AAChG,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,wEAAwE;AAC1F,aAAO,IAAI,OAAO;AAAA,IACpB,KAAK,iBAAiB;AACpB,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,qEAAqE;AACvF,aAAO,IAAI,OAAO;AAAA,IACpB;AACE,YAAM,IAAI,MAAM,4BAA4B,OAAO,EAAE;AAAA,EACzD;AACF;","names":[]}
@@ -0,0 +1,19 @@
1
+ /** Event entity returned by the RH API. */
2
+ type Event = {
3
+ id: number;
4
+ eventType: string;
5
+ companyId: string;
6
+ identifier: string;
7
+ callId: string;
8
+ text: string;
9
+ createdBy: string;
10
+ updatedAt: string;
11
+ createdAt: string;
12
+ eventBody: any;
13
+ contact: any;
14
+ device: any;
15
+ origin: any;
16
+ destination: any;
17
+ };
18
+
19
+ export type { Event };
@@ -0,0 +1,19 @@
1
+ /** Event entity returned by the RH API. */
2
+ type Event = {
3
+ id: number;
4
+ eventType: string;
5
+ companyId: string;
6
+ identifier: string;
7
+ callId: string;
8
+ text: string;
9
+ createdBy: string;
10
+ updatedAt: string;
11
+ createdAt: string;
12
+ eventBody: any;
13
+ contact: any;
14
+ device: any;
15
+ origin: any;
16
+ destination: any;
17
+ };
18
+
19
+ export type { Event };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/rh/contracts/index.ts
17
+ var contracts_exports = {};
18
+ module.exports = __toCommonJS(contracts_exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/rh/contracts/index.ts"],"sourcesContent":["export * from './event';\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.14.0",
2
+ "version": "1.14.1",
3
3
  "description": "A simple package to help with some common tasks",
4
4
  "name": "@opens/gateways",
5
5
  "private": false,
@@ -59,4 +59,4 @@
59
59
  "dependencies": {
60
60
  "axios": "^1.18.0"
61
61
  }
62
- }
62
+ }