@opens/gateways 1.13.1 → 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/campaigns/contracts/index.d.mts +9 -1
- package/dist/campaigns/contracts/index.d.ts +9 -1
- package/dist/campaigns/contracts/index.js.map +1 -1
- package/dist/index.d.mts +23 -3
- package/dist/index.d.ts +23 -3
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -3
- package/dist/index.mjs.map +1 -1
- package/dist/rh/contracts/index.d.mts +19 -0
- package/dist/rh/contracts/index.d.ts +19 -0
- package/dist/rh/contracts/index.js +19 -0
- package/dist/rh/contracts/index.js.map +1 -0
- package/dist/rh/contracts/index.mjs +1 -0
- package/dist/rh/contracts/index.mjs.map +1 -0
- package/package.json +1 -1
|
@@ -401,6 +401,14 @@ interface CreateCampaignWorkGroupRequest {
|
|
|
401
401
|
companyId: string;
|
|
402
402
|
}
|
|
403
403
|
|
|
404
|
+
/** Reason why a user has (or does not have) access to the Campaigns module. */
|
|
405
|
+
type CampaignAccessReason = 'admin' | 'manager' | 'workgroup' | 'none';
|
|
406
|
+
/** Response returned by the Campaigns API when checking the caller's access. */
|
|
407
|
+
interface CampaignAccessResponse {
|
|
408
|
+
hasAccess: boolean;
|
|
409
|
+
reason: CampaignAccessReason;
|
|
410
|
+
}
|
|
411
|
+
|
|
404
412
|
/** Response returned by the Campaigns API when fetching a company's module install. */
|
|
405
413
|
interface CampaignCompanyResponse {
|
|
406
414
|
id: string;
|
|
@@ -428,4 +436,4 @@ interface CampaignCompanyPaginatedResponse {
|
|
|
428
436
|
data: CampaignCompanyResponse[];
|
|
429
437
|
}
|
|
430
438
|
|
|
431
|
-
export type { Campaign, CampaignCompanyPaginatedResponse, CampaignCompanyQueryParams, CampaignCompanyResponse, CampaignContactCampaignStatus, CampaignContactDispatchStatus, CampaignContactFilter, CampaignContactLikeQueryOperators, CampaignContactPaginatedResponse, CampaignContactQueryOperators, CampaignContactQueryParams, CampaignContactQueryValue, CampaignContactResponse, CampaignContactSortDirection, CampaignContactSortParams, CampaignContactsDashboardChannelPerformance, CampaignContactsDashboardData, CampaignContactsDashboardEvolutionItem, CampaignContactsDashboardExactQueryOperators, CampaignContactsDashboardFunnelItem, CampaignContactsDashboardInterval, CampaignContactsDashboardMetrics, CampaignContactsDashboardQueryParams, CampaignContactsDashboardQueryValue, CampaignContactsDashboardRangeQueryOperators, CampaignContactsDashboardStatusDistribution, CampaignContactsDashboardStatusMetrics, CampaignContactsDashboardSummary, CampaignContactsDashboardTopCampaign, CampaignPaginatedResponse, CampaignProvider, CampaignQueryParams, CampaignRetryConfig, CampaignSchedule, CampaignStatus, CampaignUser, CampaignWorkGroup, CampaignWorkGroupPaginatedResponse, CampaignWorkGroupQueryParams, CreateCampaignContactRequest, CreateCampaignRequest, CreateCampaignWorkGroupRequest, EnableCampaignCompanyRequest, PatchCampaignContactRequest, PatchCampaignRequest, WhatsAppPayload, WhatsAppTemplateComponent };
|
|
439
|
+
export type { Campaign, CampaignAccessReason, CampaignAccessResponse, CampaignCompanyPaginatedResponse, CampaignCompanyQueryParams, CampaignCompanyResponse, CampaignContactCampaignStatus, CampaignContactDispatchStatus, CampaignContactFilter, CampaignContactLikeQueryOperators, CampaignContactPaginatedResponse, CampaignContactQueryOperators, CampaignContactQueryParams, CampaignContactQueryValue, CampaignContactResponse, CampaignContactSortDirection, CampaignContactSortParams, CampaignContactsDashboardChannelPerformance, CampaignContactsDashboardData, CampaignContactsDashboardEvolutionItem, CampaignContactsDashboardExactQueryOperators, CampaignContactsDashboardFunnelItem, CampaignContactsDashboardInterval, CampaignContactsDashboardMetrics, CampaignContactsDashboardQueryParams, CampaignContactsDashboardQueryValue, CampaignContactsDashboardRangeQueryOperators, CampaignContactsDashboardStatusDistribution, CampaignContactsDashboardStatusMetrics, CampaignContactsDashboardSummary, CampaignContactsDashboardTopCampaign, CampaignPaginatedResponse, CampaignProvider, CampaignQueryParams, CampaignRetryConfig, CampaignSchedule, CampaignStatus, CampaignUser, CampaignWorkGroup, CampaignWorkGroupPaginatedResponse, CampaignWorkGroupQueryParams, CreateCampaignContactRequest, CreateCampaignRequest, CreateCampaignWorkGroupRequest, EnableCampaignCompanyRequest, PatchCampaignContactRequest, PatchCampaignRequest, WhatsAppPayload, WhatsAppTemplateComponent };
|
|
@@ -401,6 +401,14 @@ interface CreateCampaignWorkGroupRequest {
|
|
|
401
401
|
companyId: string;
|
|
402
402
|
}
|
|
403
403
|
|
|
404
|
+
/** Reason why a user has (or does not have) access to the Campaigns module. */
|
|
405
|
+
type CampaignAccessReason = 'admin' | 'manager' | 'workgroup' | 'none';
|
|
406
|
+
/** Response returned by the Campaigns API when checking the caller's access. */
|
|
407
|
+
interface CampaignAccessResponse {
|
|
408
|
+
hasAccess: boolean;
|
|
409
|
+
reason: CampaignAccessReason;
|
|
410
|
+
}
|
|
411
|
+
|
|
404
412
|
/** Response returned by the Campaigns API when fetching a company's module install. */
|
|
405
413
|
interface CampaignCompanyResponse {
|
|
406
414
|
id: string;
|
|
@@ -428,4 +436,4 @@ interface CampaignCompanyPaginatedResponse {
|
|
|
428
436
|
data: CampaignCompanyResponse[];
|
|
429
437
|
}
|
|
430
438
|
|
|
431
|
-
export type { Campaign, CampaignCompanyPaginatedResponse, CampaignCompanyQueryParams, CampaignCompanyResponse, CampaignContactCampaignStatus, CampaignContactDispatchStatus, CampaignContactFilter, CampaignContactLikeQueryOperators, CampaignContactPaginatedResponse, CampaignContactQueryOperators, CampaignContactQueryParams, CampaignContactQueryValue, CampaignContactResponse, CampaignContactSortDirection, CampaignContactSortParams, CampaignContactsDashboardChannelPerformance, CampaignContactsDashboardData, CampaignContactsDashboardEvolutionItem, CampaignContactsDashboardExactQueryOperators, CampaignContactsDashboardFunnelItem, CampaignContactsDashboardInterval, CampaignContactsDashboardMetrics, CampaignContactsDashboardQueryParams, CampaignContactsDashboardQueryValue, CampaignContactsDashboardRangeQueryOperators, CampaignContactsDashboardStatusDistribution, CampaignContactsDashboardStatusMetrics, CampaignContactsDashboardSummary, CampaignContactsDashboardTopCampaign, CampaignPaginatedResponse, CampaignProvider, CampaignQueryParams, CampaignRetryConfig, CampaignSchedule, CampaignStatus, CampaignUser, CampaignWorkGroup, CampaignWorkGroupPaginatedResponse, CampaignWorkGroupQueryParams, CreateCampaignContactRequest, CreateCampaignRequest, CreateCampaignWorkGroupRequest, EnableCampaignCompanyRequest, PatchCampaignContactRequest, PatchCampaignRequest, WhatsAppPayload, WhatsAppTemplateComponent };
|
|
439
|
+
export type { Campaign, CampaignAccessReason, CampaignAccessResponse, CampaignCompanyPaginatedResponse, CampaignCompanyQueryParams, CampaignCompanyResponse, CampaignContactCampaignStatus, CampaignContactDispatchStatus, CampaignContactFilter, CampaignContactLikeQueryOperators, CampaignContactPaginatedResponse, CampaignContactQueryOperators, CampaignContactQueryParams, CampaignContactQueryValue, CampaignContactResponse, CampaignContactSortDirection, CampaignContactSortParams, CampaignContactsDashboardChannelPerformance, CampaignContactsDashboardData, CampaignContactsDashboardEvolutionItem, CampaignContactsDashboardExactQueryOperators, CampaignContactsDashboardFunnelItem, CampaignContactsDashboardInterval, CampaignContactsDashboardMetrics, CampaignContactsDashboardQueryParams, CampaignContactsDashboardQueryValue, CampaignContactsDashboardRangeQueryOperators, CampaignContactsDashboardStatusDistribution, CampaignContactsDashboardStatusMetrics, CampaignContactsDashboardSummary, CampaignContactsDashboardTopCampaign, CampaignPaginatedResponse, CampaignProvider, CampaignQueryParams, CampaignRetryConfig, CampaignSchedule, CampaignStatus, CampaignUser, CampaignWorkGroup, CampaignWorkGroupPaginatedResponse, CampaignWorkGroupQueryParams, CreateCampaignContactRequest, CreateCampaignRequest, CreateCampaignWorkGroupRequest, EnableCampaignCompanyRequest, PatchCampaignContactRequest, PatchCampaignRequest, WhatsAppPayload, WhatsAppTemplateComponent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/campaigns/contracts/index.ts"],"sourcesContent":["export * from './campaign';\nexport * from './campaign-contacts';\nexport * from './campaign-contacts-dashboard';\nexport * from './work-group';\nexport * from './campaign-company';\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/campaigns/contracts/index.ts"],"sourcesContent":["export * from './access';\nexport * from './campaign';\nexport * from './campaign-contacts';\nexport * from './campaign-contacts-dashboard';\nexport * from './work-group';\nexport * from './campaign-company';\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -3,8 +3,8 @@ import { CompanyResponse, WorkGroupListResponse, WorkGroupResponse, WorkGroupMem
|
|
|
3
3
|
export { CompanyData, ManagedUser, User, WorkGroup, WorkGroupMember } from './customer-service/contracts/index.mjs';
|
|
4
4
|
import { ProviderListResponse, GetProviderConfigurationsParams, ProviderConfigurationsResponse, GetProviderDisplayInfoParams, ProviderDisplayInfoResponse, GetConfigsByProviderParams, ConfigListByProviderResponse, Queue, GetMemberQueuesRequest, QueueMember, GetServiceGroupsParams, ServiceGroupsResponse, MetaTemplateConfigResponse, MetaTemplateConfigsResponse, FindOrCreateQueueRuleRequest, QueueRule, GetRootRulesRequest, RootRulesResponse } from './chat-config/contracts/index.mjs';
|
|
5
5
|
export { Config, ConfigProvider, DistributionType, MetaTemplateButton, Provider, ProviderConfiguration, ProviderName, QueueListResponse, Rule, ServiceGroup, WhatsAppProviderSettings, WidgetProviderSettings } from './chat-config/contracts/index.mjs';
|
|
6
|
-
import { CampaignQueryParams, CampaignPaginatedResponse, Campaign, CreateCampaignRequest, PatchCampaignRequest, CampaignContactQueryParams, CampaignContactPaginatedResponse, CampaignContactResponse, CreateCampaignContactRequest, PatchCampaignContactRequest, CampaignContactsDashboardQueryParams, CampaignContactsDashboardData, CampaignUser, CampaignWorkGroupQueryParams, CampaignWorkGroupPaginatedResponse, CreateCampaignWorkGroupRequest, CampaignWorkGroup, CampaignCompanyQueryParams, CampaignCompanyPaginatedResponse, CampaignCompanyResponse, EnableCampaignCompanyRequest } from './campaigns/contracts/index.mjs';
|
|
7
|
-
export { CampaignContactCampaignStatus, CampaignContactDispatchStatus, CampaignContactFilter, CampaignContactLikeQueryOperators, CampaignContactQueryOperators, CampaignContactQueryValue, CampaignContactSortDirection, CampaignContactSortParams, CampaignContactsDashboardChannelPerformance, CampaignContactsDashboardEvolutionItem, CampaignContactsDashboardExactQueryOperators, CampaignContactsDashboardFunnelItem, CampaignContactsDashboardInterval, CampaignContactsDashboardMetrics, CampaignContactsDashboardQueryValue, CampaignContactsDashboardRangeQueryOperators, CampaignContactsDashboardStatusDistribution, CampaignContactsDashboardStatusMetrics, CampaignContactsDashboardSummary, CampaignContactsDashboardTopCampaign, CampaignProvider, CampaignRetryConfig, CampaignSchedule, CampaignStatus, WhatsAppPayload, WhatsAppTemplateComponent } from './campaigns/contracts/index.mjs';
|
|
6
|
+
import { CampaignQueryParams, CampaignPaginatedResponse, Campaign, CreateCampaignRequest, PatchCampaignRequest, CampaignContactQueryParams, CampaignContactPaginatedResponse, CampaignContactResponse, CreateCampaignContactRequest, PatchCampaignContactRequest, CampaignContactsDashboardQueryParams, CampaignContactsDashboardData, CampaignUser, CampaignWorkGroupQueryParams, CampaignWorkGroupPaginatedResponse, CreateCampaignWorkGroupRequest, CampaignWorkGroup, CampaignCompanyQueryParams, CampaignCompanyPaginatedResponse, CampaignCompanyResponse, EnableCampaignCompanyRequest, CampaignAccessResponse } from './campaigns/contracts/index.mjs';
|
|
7
|
+
export { CampaignAccessReason, CampaignContactCampaignStatus, CampaignContactDispatchStatus, CampaignContactFilter, CampaignContactLikeQueryOperators, CampaignContactQueryOperators, CampaignContactQueryValue, CampaignContactSortDirection, CampaignContactSortParams, CampaignContactsDashboardChannelPerformance, CampaignContactsDashboardEvolutionItem, CampaignContactsDashboardExactQueryOperators, CampaignContactsDashboardFunnelItem, CampaignContactsDashboardInterval, CampaignContactsDashboardMetrics, CampaignContactsDashboardQueryValue, CampaignContactsDashboardRangeQueryOperators, CampaignContactsDashboardStatusDistribution, CampaignContactsDashboardStatusMetrics, CampaignContactsDashboardSummary, CampaignContactsDashboardTopCampaign, CampaignProvider, CampaignRetryConfig, CampaignSchedule, CampaignStatus, WhatsAppPayload, WhatsAppTemplateComponent } from './campaigns/contracts/index.mjs';
|
|
8
8
|
import { GetConfigTemplatesParams, GetConfigTemplatesResponse } from './chat-adapter/contracts/index.mjs';
|
|
9
9
|
export { ConfigTemplatesPaging, MessageTemplate, MessageTemplateComponent } from './chat-adapter/contracts/index.mjs';
|
|
10
10
|
import { GetPresignedUrlRequest, UploadPresignedUrlResponse, AudioConvertResponse, GetAttachmentByIdRequest, AttachmentByIdResponse } from './assets/contracts/index.mjs';
|
|
@@ -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.
|
|
@@ -238,6 +239,11 @@ declare class CampaignsGateway {
|
|
|
238
239
|
* @returns The removed campaign company installation.
|
|
239
240
|
*/
|
|
240
241
|
disableCampaignCompany(id: string): Promise<CampaignCompanyResponse>;
|
|
242
|
+
/**
|
|
243
|
+
* Checks whether the current caller has access to the Campaigns module.
|
|
244
|
+
* @returns The access verdict for the authenticated user.
|
|
245
|
+
*/
|
|
246
|
+
getMyAccess(): Promise<CampaignAccessResponse>;
|
|
241
247
|
}
|
|
242
248
|
|
|
243
249
|
/**
|
|
@@ -473,6 +479,15 @@ declare class CasesGateway {
|
|
|
473
479
|
getCaseFeedByActions(payload: GetCaseFeedByActionsRequest): Promise<CaseFeedByActionItem[]>;
|
|
474
480
|
}
|
|
475
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
|
+
|
|
476
491
|
/**
|
|
477
492
|
* Maps service identifiers to their corresponding gateway types.
|
|
478
493
|
* Used by the `gateway()` function to infer the correct return type
|
|
@@ -492,6 +507,7 @@ type GatewayMap = {
|
|
|
492
507
|
'chat-webservice': ChatWebserviceGateway;
|
|
493
508
|
'call-report': CallReportGateway;
|
|
494
509
|
cases: CasesGateway;
|
|
510
|
+
rh: RhGateway;
|
|
495
511
|
};
|
|
496
512
|
/**
|
|
497
513
|
* Parameters required to configure the SDK client.
|
|
@@ -534,6 +550,9 @@ interface GatewayClientParams {
|
|
|
534
550
|
cases?: {
|
|
535
551
|
baseUrl: string;
|
|
536
552
|
};
|
|
553
|
+
rh?: {
|
|
554
|
+
baseUrl: string;
|
|
555
|
+
};
|
|
537
556
|
};
|
|
538
557
|
}
|
|
539
558
|
|
|
@@ -548,6 +567,7 @@ declare const SERVICE_GATEWAYS: {
|
|
|
548
567
|
readonly CHAT_WEBSERVICE: "chat-webservice";
|
|
549
568
|
readonly CALL_REPORT: "call-report";
|
|
550
569
|
readonly CASES: "cases";
|
|
570
|
+
readonly RH: "rh";
|
|
551
571
|
};
|
|
552
572
|
type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];
|
|
553
573
|
|
|
@@ -574,4 +594,4 @@ declare const configure: (params: GatewayClientParams) => void;
|
|
|
574
594
|
*/
|
|
575
595
|
declare function gateway<T extends keyof GatewayMap>(service: T): GatewayMap[T];
|
|
576
596
|
|
|
577
|
-
export { AttachmentByIdResponse, AudioConvertResponse, Campaign, CampaignCompanyPaginatedResponse, CampaignCompanyQueryParams, CampaignCompanyResponse, CampaignContactPaginatedResponse, CampaignContactQueryParams, CampaignContactResponse, CampaignContactsDashboardData, CampaignContactsDashboardQueryParams, CampaignPaginatedResponse, CampaignQueryParams, CampaignUser, CampaignWorkGroup, CampaignWorkGroupPaginatedResponse, CampaignWorkGroupQueryParams, CancelInvitationRequest, CaseFeedByActionItem, CasePermissions, CommentHistoryPage, CompanyResponse, ConfigListByProviderResponse, ContactCategoryResponse, ContactHistoryResponse, ContactPhoneSearchResponse, CreateCampaignContactRequest, CreateCampaignRequest, CreateCampaignWorkGroupRequest, CreateIntegrationActionRequest, CreateIntegrationFieldRequest, CreateIntegrationPartnerRequest, CreateWebhookRequest$1 as CreateWebhookRequest, DeleteIntegrationActionParams, DeleteIntegrationFieldParams, DeleteIntegrationPartnerParams, EnableCampaignCompanyRequest, FindOrCreateQueueRuleRequest, GetAllUsersParams, GetAllUsersResponse, GetAttachmentByIdRequest, GetCaseFeedByActionsRequest, GetCommentHistoryRequest, GetConfigTemplatesParams, GetConfigTemplatesResponse, GetConfigsByProviderParams, GetContactPhonesParams, GetIntegrationHooksCatalogRequest, GetIntegrationPartnersByCompanyRequest, GetManagedUsersResponse, GetMemberQueuesRequest, GetPresignedUrlRequest, GetProviderConfigurationsParams, GetProviderDisplayInfoParams, GetRoomByIdRequest, GetRootRulesRequest, GetServiceGroupsParams, GetWebhooksByCompanyRequest$1 as GetWebhooksByCompanyRequest, HookCatalogItem, IntegrationAction, IntegrationField, IntegrationPartner, InvitationResponse, ListContactHistoryRequest, ListInvitationsRequest, ListLiveUserRoomsRequest, LiveUserRoomResponse, MetaTemplateConfigResponse, MetaTemplateConfigsResponse, PatchCampaignContactRequest, PatchCampaignRequest, ProviderConfigurationsResponse, ProviderDisplayInfoResponse, ProviderListResponse, Queue, QueueMember, QueueRule, ReplyInvitationRequest, RoomResponse, RootRulesResponse, SERVICE_GATEWAYS, SERVICE_GATEWAYS as SERVICE_GATEWAYS_TYPE, ServiceGroupsResponse, UpdateCasePermissionsRequest, UpdateIntegrationActionParams, UpdateIntegrationFieldParams, UploadPresignedUrlResponse, WorkGroupListResponse, WorkGroupMembersResponse, WorkGroupResponse, configure, gateway };
|
|
597
|
+
export { AttachmentByIdResponse, AudioConvertResponse, Campaign, CampaignAccessResponse, CampaignCompanyPaginatedResponse, CampaignCompanyQueryParams, CampaignCompanyResponse, CampaignContactPaginatedResponse, CampaignContactQueryParams, CampaignContactResponse, CampaignContactsDashboardData, CampaignContactsDashboardQueryParams, CampaignPaginatedResponse, CampaignQueryParams, CampaignUser, CampaignWorkGroup, CampaignWorkGroupPaginatedResponse, CampaignWorkGroupQueryParams, CancelInvitationRequest, CaseFeedByActionItem, CasePermissions, CommentHistoryPage, CompanyResponse, ConfigListByProviderResponse, ContactCategoryResponse, ContactHistoryResponse, ContactPhoneSearchResponse, CreateCampaignContactRequest, CreateCampaignRequest, CreateCampaignWorkGroupRequest, CreateIntegrationActionRequest, CreateIntegrationFieldRequest, CreateIntegrationPartnerRequest, CreateWebhookRequest$1 as CreateWebhookRequest, DeleteIntegrationActionParams, DeleteIntegrationFieldParams, DeleteIntegrationPartnerParams, EnableCampaignCompanyRequest, FindOrCreateQueueRuleRequest, GetAllUsersParams, GetAllUsersResponse, GetAttachmentByIdRequest, GetCaseFeedByActionsRequest, GetCommentHistoryRequest, GetConfigTemplatesParams, GetConfigTemplatesResponse, GetConfigsByProviderParams, GetContactPhonesParams, GetIntegrationHooksCatalogRequest, GetIntegrationPartnersByCompanyRequest, GetManagedUsersResponse, GetMemberQueuesRequest, GetPresignedUrlRequest, GetProviderConfigurationsParams, GetProviderDisplayInfoParams, GetRoomByIdRequest, GetRootRulesRequest, GetServiceGroupsParams, GetWebhooksByCompanyRequest$1 as GetWebhooksByCompanyRequest, HookCatalogItem, IntegrationAction, IntegrationField, IntegrationPartner, InvitationResponse, ListContactHistoryRequest, ListInvitationsRequest, ListLiveUserRoomsRequest, LiveUserRoomResponse, MetaTemplateConfigResponse, MetaTemplateConfigsResponse, PatchCampaignContactRequest, PatchCampaignRequest, ProviderConfigurationsResponse, ProviderDisplayInfoResponse, ProviderListResponse, Queue, QueueMember, QueueRule, ReplyInvitationRequest, RoomResponse, RootRulesResponse, SERVICE_GATEWAYS, SERVICE_GATEWAYS as SERVICE_GATEWAYS_TYPE, ServiceGroupsResponse, UpdateCasePermissionsRequest, UpdateIntegrationActionParams, UpdateIntegrationFieldParams, UploadPresignedUrlResponse, WorkGroupListResponse, WorkGroupMembersResponse, WorkGroupResponse, configure, gateway };
|
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import { CompanyResponse, WorkGroupListResponse, WorkGroupResponse, WorkGroupMem
|
|
|
3
3
|
export { CompanyData, ManagedUser, User, WorkGroup, WorkGroupMember } from './customer-service/contracts/index.js';
|
|
4
4
|
import { ProviderListResponse, GetProviderConfigurationsParams, ProviderConfigurationsResponse, GetProviderDisplayInfoParams, ProviderDisplayInfoResponse, GetConfigsByProviderParams, ConfigListByProviderResponse, Queue, GetMemberQueuesRequest, QueueMember, GetServiceGroupsParams, ServiceGroupsResponse, MetaTemplateConfigResponse, MetaTemplateConfigsResponse, FindOrCreateQueueRuleRequest, QueueRule, GetRootRulesRequest, RootRulesResponse } from './chat-config/contracts/index.js';
|
|
5
5
|
export { Config, ConfigProvider, DistributionType, MetaTemplateButton, Provider, ProviderConfiguration, ProviderName, QueueListResponse, Rule, ServiceGroup, WhatsAppProviderSettings, WidgetProviderSettings } from './chat-config/contracts/index.js';
|
|
6
|
-
import { CampaignQueryParams, CampaignPaginatedResponse, Campaign, CreateCampaignRequest, PatchCampaignRequest, CampaignContactQueryParams, CampaignContactPaginatedResponse, CampaignContactResponse, CreateCampaignContactRequest, PatchCampaignContactRequest, CampaignContactsDashboardQueryParams, CampaignContactsDashboardData, CampaignUser, CampaignWorkGroupQueryParams, CampaignWorkGroupPaginatedResponse, CreateCampaignWorkGroupRequest, CampaignWorkGroup, CampaignCompanyQueryParams, CampaignCompanyPaginatedResponse, CampaignCompanyResponse, EnableCampaignCompanyRequest } from './campaigns/contracts/index.js';
|
|
7
|
-
export { CampaignContactCampaignStatus, CampaignContactDispatchStatus, CampaignContactFilter, CampaignContactLikeQueryOperators, CampaignContactQueryOperators, CampaignContactQueryValue, CampaignContactSortDirection, CampaignContactSortParams, CampaignContactsDashboardChannelPerformance, CampaignContactsDashboardEvolutionItem, CampaignContactsDashboardExactQueryOperators, CampaignContactsDashboardFunnelItem, CampaignContactsDashboardInterval, CampaignContactsDashboardMetrics, CampaignContactsDashboardQueryValue, CampaignContactsDashboardRangeQueryOperators, CampaignContactsDashboardStatusDistribution, CampaignContactsDashboardStatusMetrics, CampaignContactsDashboardSummary, CampaignContactsDashboardTopCampaign, CampaignProvider, CampaignRetryConfig, CampaignSchedule, CampaignStatus, WhatsAppPayload, WhatsAppTemplateComponent } from './campaigns/contracts/index.js';
|
|
6
|
+
import { CampaignQueryParams, CampaignPaginatedResponse, Campaign, CreateCampaignRequest, PatchCampaignRequest, CampaignContactQueryParams, CampaignContactPaginatedResponse, CampaignContactResponse, CreateCampaignContactRequest, PatchCampaignContactRequest, CampaignContactsDashboardQueryParams, CampaignContactsDashboardData, CampaignUser, CampaignWorkGroupQueryParams, CampaignWorkGroupPaginatedResponse, CreateCampaignWorkGroupRequest, CampaignWorkGroup, CampaignCompanyQueryParams, CampaignCompanyPaginatedResponse, CampaignCompanyResponse, EnableCampaignCompanyRequest, CampaignAccessResponse } from './campaigns/contracts/index.js';
|
|
7
|
+
export { CampaignAccessReason, CampaignContactCampaignStatus, CampaignContactDispatchStatus, CampaignContactFilter, CampaignContactLikeQueryOperators, CampaignContactQueryOperators, CampaignContactQueryValue, CampaignContactSortDirection, CampaignContactSortParams, CampaignContactsDashboardChannelPerformance, CampaignContactsDashboardEvolutionItem, CampaignContactsDashboardExactQueryOperators, CampaignContactsDashboardFunnelItem, CampaignContactsDashboardInterval, CampaignContactsDashboardMetrics, CampaignContactsDashboardQueryValue, CampaignContactsDashboardRangeQueryOperators, CampaignContactsDashboardStatusDistribution, CampaignContactsDashboardStatusMetrics, CampaignContactsDashboardSummary, CampaignContactsDashboardTopCampaign, CampaignProvider, CampaignRetryConfig, CampaignSchedule, CampaignStatus, WhatsAppPayload, WhatsAppTemplateComponent } from './campaigns/contracts/index.js';
|
|
8
8
|
import { GetConfigTemplatesParams, GetConfigTemplatesResponse } from './chat-adapter/contracts/index.js';
|
|
9
9
|
export { ConfigTemplatesPaging, MessageTemplate, MessageTemplateComponent } from './chat-adapter/contracts/index.js';
|
|
10
10
|
import { GetPresignedUrlRequest, UploadPresignedUrlResponse, AudioConvertResponse, GetAttachmentByIdRequest, AttachmentByIdResponse } from './assets/contracts/index.js';
|
|
@@ -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.
|
|
@@ -238,6 +239,11 @@ declare class CampaignsGateway {
|
|
|
238
239
|
* @returns The removed campaign company installation.
|
|
239
240
|
*/
|
|
240
241
|
disableCampaignCompany(id: string): Promise<CampaignCompanyResponse>;
|
|
242
|
+
/**
|
|
243
|
+
* Checks whether the current caller has access to the Campaigns module.
|
|
244
|
+
* @returns The access verdict for the authenticated user.
|
|
245
|
+
*/
|
|
246
|
+
getMyAccess(): Promise<CampaignAccessResponse>;
|
|
241
247
|
}
|
|
242
248
|
|
|
243
249
|
/**
|
|
@@ -473,6 +479,15 @@ declare class CasesGateway {
|
|
|
473
479
|
getCaseFeedByActions(payload: GetCaseFeedByActionsRequest): Promise<CaseFeedByActionItem[]>;
|
|
474
480
|
}
|
|
475
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
|
+
|
|
476
491
|
/**
|
|
477
492
|
* Maps service identifiers to their corresponding gateway types.
|
|
478
493
|
* Used by the `gateway()` function to infer the correct return type
|
|
@@ -492,6 +507,7 @@ type GatewayMap = {
|
|
|
492
507
|
'chat-webservice': ChatWebserviceGateway;
|
|
493
508
|
'call-report': CallReportGateway;
|
|
494
509
|
cases: CasesGateway;
|
|
510
|
+
rh: RhGateway;
|
|
495
511
|
};
|
|
496
512
|
/**
|
|
497
513
|
* Parameters required to configure the SDK client.
|
|
@@ -534,6 +550,9 @@ interface GatewayClientParams {
|
|
|
534
550
|
cases?: {
|
|
535
551
|
baseUrl: string;
|
|
536
552
|
};
|
|
553
|
+
rh?: {
|
|
554
|
+
baseUrl: string;
|
|
555
|
+
};
|
|
537
556
|
};
|
|
538
557
|
}
|
|
539
558
|
|
|
@@ -548,6 +567,7 @@ declare const SERVICE_GATEWAYS: {
|
|
|
548
567
|
readonly CHAT_WEBSERVICE: "chat-webservice";
|
|
549
568
|
readonly CALL_REPORT: "call-report";
|
|
550
569
|
readonly CASES: "cases";
|
|
570
|
+
readonly RH: "rh";
|
|
551
571
|
};
|
|
552
572
|
type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];
|
|
553
573
|
|
|
@@ -574,4 +594,4 @@ declare const configure: (params: GatewayClientParams) => void;
|
|
|
574
594
|
*/
|
|
575
595
|
declare function gateway<T extends keyof GatewayMap>(service: T): GatewayMap[T];
|
|
576
596
|
|
|
577
|
-
export { AttachmentByIdResponse, AudioConvertResponse, Campaign, CampaignCompanyPaginatedResponse, CampaignCompanyQueryParams, CampaignCompanyResponse, CampaignContactPaginatedResponse, CampaignContactQueryParams, CampaignContactResponse, CampaignContactsDashboardData, CampaignContactsDashboardQueryParams, CampaignPaginatedResponse, CampaignQueryParams, CampaignUser, CampaignWorkGroup, CampaignWorkGroupPaginatedResponse, CampaignWorkGroupQueryParams, CancelInvitationRequest, CaseFeedByActionItem, CasePermissions, CommentHistoryPage, CompanyResponse, ConfigListByProviderResponse, ContactCategoryResponse, ContactHistoryResponse, ContactPhoneSearchResponse, CreateCampaignContactRequest, CreateCampaignRequest, CreateCampaignWorkGroupRequest, CreateIntegrationActionRequest, CreateIntegrationFieldRequest, CreateIntegrationPartnerRequest, CreateWebhookRequest$1 as CreateWebhookRequest, DeleteIntegrationActionParams, DeleteIntegrationFieldParams, DeleteIntegrationPartnerParams, EnableCampaignCompanyRequest, FindOrCreateQueueRuleRequest, GetAllUsersParams, GetAllUsersResponse, GetAttachmentByIdRequest, GetCaseFeedByActionsRequest, GetCommentHistoryRequest, GetConfigTemplatesParams, GetConfigTemplatesResponse, GetConfigsByProviderParams, GetContactPhonesParams, GetIntegrationHooksCatalogRequest, GetIntegrationPartnersByCompanyRequest, GetManagedUsersResponse, GetMemberQueuesRequest, GetPresignedUrlRequest, GetProviderConfigurationsParams, GetProviderDisplayInfoParams, GetRoomByIdRequest, GetRootRulesRequest, GetServiceGroupsParams, GetWebhooksByCompanyRequest$1 as GetWebhooksByCompanyRequest, HookCatalogItem, IntegrationAction, IntegrationField, IntegrationPartner, InvitationResponse, ListContactHistoryRequest, ListInvitationsRequest, ListLiveUserRoomsRequest, LiveUserRoomResponse, MetaTemplateConfigResponse, MetaTemplateConfigsResponse, PatchCampaignContactRequest, PatchCampaignRequest, ProviderConfigurationsResponse, ProviderDisplayInfoResponse, ProviderListResponse, Queue, QueueMember, QueueRule, ReplyInvitationRequest, RoomResponse, RootRulesResponse, SERVICE_GATEWAYS, SERVICE_GATEWAYS as SERVICE_GATEWAYS_TYPE, ServiceGroupsResponse, UpdateCasePermissionsRequest, UpdateIntegrationActionParams, UpdateIntegrationFieldParams, UploadPresignedUrlResponse, WorkGroupListResponse, WorkGroupMembersResponse, WorkGroupResponse, configure, gateway };
|
|
597
|
+
export { AttachmentByIdResponse, AudioConvertResponse, Campaign, CampaignAccessResponse, CampaignCompanyPaginatedResponse, CampaignCompanyQueryParams, CampaignCompanyResponse, CampaignContactPaginatedResponse, CampaignContactQueryParams, CampaignContactResponse, CampaignContactsDashboardData, CampaignContactsDashboardQueryParams, CampaignPaginatedResponse, CampaignQueryParams, CampaignUser, CampaignWorkGroup, CampaignWorkGroupPaginatedResponse, CampaignWorkGroupQueryParams, CancelInvitationRequest, CaseFeedByActionItem, CasePermissions, CommentHistoryPage, CompanyResponse, ConfigListByProviderResponse, ContactCategoryResponse, ContactHistoryResponse, ContactPhoneSearchResponse, CreateCampaignContactRequest, CreateCampaignRequest, CreateCampaignWorkGroupRequest, CreateIntegrationActionRequest, CreateIntegrationFieldRequest, CreateIntegrationPartnerRequest, CreateWebhookRequest$1 as CreateWebhookRequest, DeleteIntegrationActionParams, DeleteIntegrationFieldParams, DeleteIntegrationPartnerParams, EnableCampaignCompanyRequest, FindOrCreateQueueRuleRequest, GetAllUsersParams, GetAllUsersResponse, GetAttachmentByIdRequest, GetCaseFeedByActionsRequest, GetCommentHistoryRequest, GetConfigTemplatesParams, GetConfigTemplatesResponse, GetConfigsByProviderParams, GetContactPhonesParams, GetIntegrationHooksCatalogRequest, GetIntegrationPartnersByCompanyRequest, GetManagedUsersResponse, GetMemberQueuesRequest, GetPresignedUrlRequest, GetProviderConfigurationsParams, GetProviderDisplayInfoParams, GetRoomByIdRequest, GetRootRulesRequest, GetServiceGroupsParams, GetWebhooksByCompanyRequest$1 as GetWebhooksByCompanyRequest, HookCatalogItem, IntegrationAction, IntegrationField, IntegrationPartner, InvitationResponse, ListContactHistoryRequest, ListInvitationsRequest, ListLiveUserRoomsRequest, LiveUserRoomResponse, MetaTemplateConfigResponse, MetaTemplateConfigsResponse, PatchCampaignContactRequest, PatchCampaignRequest, ProviderConfigurationsResponse, ProviderDisplayInfoResponse, ProviderListResponse, Queue, QueueMember, QueueRule, ReplyInvitationRequest, RoomResponse, RootRulesResponse, SERVICE_GATEWAYS, SERVICE_GATEWAYS as SERVICE_GATEWAYS_TYPE, ServiceGroupsResponse, UpdateCasePermissionsRequest, UpdateIntegrationActionParams, UpdateIntegrationFieldParams, UploadPresignedUrlResponse, WorkGroupListResponse, WorkGroupMembersResponse, WorkGroupResponse, configure, gateway };
|
package/dist/index.js
CHANGED
|
@@ -444,6 +444,16 @@ var CampaignsGateway = class {
|
|
|
444
444
|
);
|
|
445
445
|
return data;
|
|
446
446
|
}
|
|
447
|
+
/**
|
|
448
|
+
* Checks whether the current caller has access to the Campaigns module.
|
|
449
|
+
* @returns The access verdict for the authenticated user.
|
|
450
|
+
*/
|
|
451
|
+
async getMyAccess() {
|
|
452
|
+
const { data } = await this.httpClient.get(
|
|
453
|
+
`${this.baseUrl}/campaigns-access`
|
|
454
|
+
);
|
|
455
|
+
return data;
|
|
456
|
+
}
|
|
447
457
|
};
|
|
448
458
|
|
|
449
459
|
// src/chat-adapter/index.ts
|
|
@@ -817,6 +827,16 @@ var CasesGateway = class {
|
|
|
817
827
|
}
|
|
818
828
|
};
|
|
819
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
|
+
|
|
820
840
|
// src/@common/client.ts
|
|
821
841
|
var import_axios = __toESM(require("axios"));
|
|
822
842
|
var SDKGateways = class {
|
|
@@ -830,7 +850,8 @@ var SDKGateways = class {
|
|
|
830
850
|
chatWebservice;
|
|
831
851
|
callReport;
|
|
832
852
|
cases;
|
|
833
|
-
|
|
853
|
+
rh;
|
|
854
|
+
constructor(customerService, chatConfig, campaigns, chatAdapter, assets, contactList, integrations, chatWebservice, callReport, cases, rh) {
|
|
834
855
|
this.customerService = customerService;
|
|
835
856
|
this.chatConfig = chatConfig;
|
|
836
857
|
this.campaigns = campaigns;
|
|
@@ -841,6 +862,7 @@ var SDKGateways = class {
|
|
|
841
862
|
this.chatWebservice = chatWebservice;
|
|
842
863
|
this.callReport = callReport;
|
|
843
864
|
this.cases = cases;
|
|
865
|
+
this.rh = rh;
|
|
844
866
|
}
|
|
845
867
|
};
|
|
846
868
|
function createClient(params) {
|
|
@@ -859,6 +881,7 @@ function createClient(params) {
|
|
|
859
881
|
const chatWebservice = params.services.chatWebservice ? new ChatWebserviceGateway(httpClient, params.services.chatWebservice.baseUrl) : null;
|
|
860
882
|
const callReport = params.services.callReport ? new CallReportGateway(httpClient, params.services.callReport.baseUrl) : null;
|
|
861
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;
|
|
862
885
|
return new SDKGateways(
|
|
863
886
|
customerService,
|
|
864
887
|
chatConfig,
|
|
@@ -869,7 +892,8 @@ function createClient(params) {
|
|
|
869
892
|
integrations,
|
|
870
893
|
chatWebservice,
|
|
871
894
|
callReport,
|
|
872
|
-
cases
|
|
895
|
+
cases,
|
|
896
|
+
rh
|
|
873
897
|
);
|
|
874
898
|
}
|
|
875
899
|
|
|
@@ -884,7 +908,8 @@ var SERVICE_GATEWAYS = {
|
|
|
884
908
|
INTEGRATIONS: "integrations",
|
|
885
909
|
CHAT_WEBSERVICE: "chat-webservice",
|
|
886
910
|
CALL_REPORT: "call-report",
|
|
887
|
-
CASES: "cases"
|
|
911
|
+
CASES: "cases",
|
|
912
|
+
RH: "rh"
|
|
888
913
|
};
|
|
889
914
|
|
|
890
915
|
// src/index.ts
|
|
@@ -944,6 +969,10 @@ function gateway(service) {
|
|
|
944
969
|
if (!sdk.client.cases)
|
|
945
970
|
throw new Error(`Service 'cases' is not configured. Provide its baseUrl in configure().`);
|
|
946
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;
|
|
947
976
|
default:
|
|
948
977
|
throw new Error(`Unknown service gateway: ${service}`);
|
|
949
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 {\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\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 {\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
|
@@ -406,6 +406,16 @@ var CampaignsGateway = class {
|
|
|
406
406
|
);
|
|
407
407
|
return data;
|
|
408
408
|
}
|
|
409
|
+
/**
|
|
410
|
+
* Checks whether the current caller has access to the Campaigns module.
|
|
411
|
+
* @returns The access verdict for the authenticated user.
|
|
412
|
+
*/
|
|
413
|
+
async getMyAccess() {
|
|
414
|
+
const { data } = await this.httpClient.get(
|
|
415
|
+
`${this.baseUrl}/campaigns-access`
|
|
416
|
+
);
|
|
417
|
+
return data;
|
|
418
|
+
}
|
|
409
419
|
};
|
|
410
420
|
|
|
411
421
|
// src/chat-adapter/index.ts
|
|
@@ -779,6 +789,16 @@ var CasesGateway = class {
|
|
|
779
789
|
}
|
|
780
790
|
};
|
|
781
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
|
+
|
|
782
802
|
// src/@common/client.ts
|
|
783
803
|
import axios from "axios";
|
|
784
804
|
var SDKGateways = class {
|
|
@@ -792,7 +812,8 @@ var SDKGateways = class {
|
|
|
792
812
|
chatWebservice;
|
|
793
813
|
callReport;
|
|
794
814
|
cases;
|
|
795
|
-
|
|
815
|
+
rh;
|
|
816
|
+
constructor(customerService, chatConfig, campaigns, chatAdapter, assets, contactList, integrations, chatWebservice, callReport, cases, rh) {
|
|
796
817
|
this.customerService = customerService;
|
|
797
818
|
this.chatConfig = chatConfig;
|
|
798
819
|
this.campaigns = campaigns;
|
|
@@ -803,6 +824,7 @@ var SDKGateways = class {
|
|
|
803
824
|
this.chatWebservice = chatWebservice;
|
|
804
825
|
this.callReport = callReport;
|
|
805
826
|
this.cases = cases;
|
|
827
|
+
this.rh = rh;
|
|
806
828
|
}
|
|
807
829
|
};
|
|
808
830
|
function createClient(params) {
|
|
@@ -821,6 +843,7 @@ function createClient(params) {
|
|
|
821
843
|
const chatWebservice = params.services.chatWebservice ? new ChatWebserviceGateway(httpClient, params.services.chatWebservice.baseUrl) : null;
|
|
822
844
|
const callReport = params.services.callReport ? new CallReportGateway(httpClient, params.services.callReport.baseUrl) : null;
|
|
823
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;
|
|
824
847
|
return new SDKGateways(
|
|
825
848
|
customerService,
|
|
826
849
|
chatConfig,
|
|
@@ -831,7 +854,8 @@ function createClient(params) {
|
|
|
831
854
|
integrations,
|
|
832
855
|
chatWebservice,
|
|
833
856
|
callReport,
|
|
834
|
-
cases
|
|
857
|
+
cases,
|
|
858
|
+
rh
|
|
835
859
|
);
|
|
836
860
|
}
|
|
837
861
|
|
|
@@ -846,7 +870,8 @@ var SERVICE_GATEWAYS = {
|
|
|
846
870
|
INTEGRATIONS: "integrations",
|
|
847
871
|
CHAT_WEBSERVICE: "chat-webservice",
|
|
848
872
|
CALL_REPORT: "call-report",
|
|
849
|
-
CASES: "cases"
|
|
873
|
+
CASES: "cases",
|
|
874
|
+
RH: "rh"
|
|
850
875
|
};
|
|
851
876
|
|
|
852
877
|
// src/index.ts
|
|
@@ -906,6 +931,10 @@ function gateway(service) {
|
|
|
906
931
|
if (!sdk.client.cases)
|
|
907
932
|
throw new Error(`Service 'cases' is not configured. Provide its baseUrl in configure().`);
|
|
908
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;
|
|
909
938
|
default:
|
|
910
939
|
throw new Error(`Unknown service gateway: ${service}`);
|
|
911
940
|
}
|
package/dist/index.mjs.map
CHANGED
|
@@ -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 {\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\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 {\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":"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","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