@opens/gateways 1.4.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +63 -3
- package/dist/index.d.ts +63 -3
- package/dist/index.js +69 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +59 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -751,6 +751,62 @@ declare class ChatAdapterGateway {
|
|
|
751
751
|
getConfigTemplates(configId: string, params?: GetConfigTemplatesParams): Promise<GetConfigTemplatesResponse>;
|
|
752
752
|
}
|
|
753
753
|
|
|
754
|
+
/** Request payload for obtaining a presigned upload URL. */
|
|
755
|
+
interface GetPresignedUrlRequest {
|
|
756
|
+
/** The name of the file to upload. */
|
|
757
|
+
fileName: string;
|
|
758
|
+
/** The destination key for the file in the bucket. */
|
|
759
|
+
key: string;
|
|
760
|
+
/** The unique identifier of the company. */
|
|
761
|
+
companyId: string;
|
|
762
|
+
}
|
|
763
|
+
/** Response returned when generating a presigned URL. */
|
|
764
|
+
interface UploadPresignedUrlResponse {
|
|
765
|
+
/** The destination key for the file. */
|
|
766
|
+
key: string;
|
|
767
|
+
/** The destination bucket. */
|
|
768
|
+
bucket: string;
|
|
769
|
+
/** The presigned URL to upload the file to. */
|
|
770
|
+
presignedUrl: string;
|
|
771
|
+
}
|
|
772
|
+
/** Alias for UploadPresignedUrlResponse to support legacy imports. */
|
|
773
|
+
type IUploadPresignedUrlResponse = UploadPresignedUrlResponse;
|
|
774
|
+
/** Response returned by the Assets API when converting an audio file to M4A. */
|
|
775
|
+
interface AudioConvertResponse {
|
|
776
|
+
/** The MIME type of the converted audio (e.g. 'audio/mp4'). */
|
|
777
|
+
mimetype: string;
|
|
778
|
+
/** The file extension of the converted audio (e.g. 'm4a'). */
|
|
779
|
+
extension: string;
|
|
780
|
+
/** The base64-encoded audio data. */
|
|
781
|
+
data: string;
|
|
782
|
+
/** The filename of the converted audio. */
|
|
783
|
+
filename: string;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Gateway for interacting with the Assets API.
|
|
788
|
+
*/
|
|
789
|
+
declare class AssetsGateway {
|
|
790
|
+
private readonly httpClient;
|
|
791
|
+
private readonly baseUrl;
|
|
792
|
+
constructor(httpClient: AxiosInstance, baseUrl: string);
|
|
793
|
+
/**
|
|
794
|
+
* Retrieves a presigned URL to upload a file to the Assets API.
|
|
795
|
+
* @param params - The configuration options and parameters for the presigned URL.
|
|
796
|
+
* @returns The presigned URL details wrapped in a {@link UploadPresignedUrlResponse}.
|
|
797
|
+
*/
|
|
798
|
+
getPresignedUrl(params: GetPresignedUrlRequest): Promise<UploadPresignedUrlResponse>;
|
|
799
|
+
/**
|
|
800
|
+
* Converts an audio file to M4A format via the Assets API.
|
|
801
|
+
* @param params - The audio file to convert.
|
|
802
|
+
* @param params.file - The audio file to upload for conversion.
|
|
803
|
+
* @returns The converted audio response with base64-encoded data, mimetype, extension and filename.
|
|
804
|
+
*/
|
|
805
|
+
convertAudioToM4A(params: {
|
|
806
|
+
file: File;
|
|
807
|
+
}): Promise<AudioConvertResponse>;
|
|
808
|
+
}
|
|
809
|
+
|
|
754
810
|
/**
|
|
755
811
|
* Maps service identifiers to their corresponding gateway types.
|
|
756
812
|
* Used by the `gateway()` function to infer the correct return type
|
|
@@ -764,14 +820,15 @@ type GatewayMap = {
|
|
|
764
820
|
'chat-config': ChatConfigGateway;
|
|
765
821
|
'campaigns': CampaignsGateway;
|
|
766
822
|
'chat-adapter': ChatAdapterGateway;
|
|
823
|
+
'assets': AssetsGateway;
|
|
767
824
|
};
|
|
768
825
|
/**
|
|
769
826
|
* Parameters required to configure the SDK client.
|
|
770
827
|
* Each service configuration is optional, only provide the services you need.
|
|
771
828
|
*/
|
|
772
829
|
interface GatewayClientParams {
|
|
773
|
-
/** An Axios instance used as the HTTP client for all gateway requests. */
|
|
774
|
-
axiosClient
|
|
830
|
+
/** An Axios instance used as the HTTP client for all gateway requests (optional). */
|
|
831
|
+
axiosClient?: AxiosInstance;
|
|
775
832
|
/** API token used for authentication across all services. */
|
|
776
833
|
apiToken: string;
|
|
777
834
|
/** Configuration for each service gateway. Only the services you configure will be available. */
|
|
@@ -788,6 +845,9 @@ interface GatewayClientParams {
|
|
|
788
845
|
chatAdapter?: {
|
|
789
846
|
baseUrl: string;
|
|
790
847
|
};
|
|
848
|
+
assets?: {
|
|
849
|
+
baseUrl: string;
|
|
850
|
+
};
|
|
791
851
|
};
|
|
792
852
|
}
|
|
793
853
|
|
|
@@ -814,4 +874,4 @@ declare const configure: (params: GatewayClientParams) => void;
|
|
|
814
874
|
*/
|
|
815
875
|
declare function gateway<T extends keyof GatewayMap>(service: T): GatewayMap[T];
|
|
816
876
|
|
|
817
|
-
export { type Campaign, type CampaignContactCampaignStatus, type CampaignContactDispatchStatus, type CampaignContactFilter, type CampaignContactLikeQueryOperators, type CampaignContactPaginatedResponse, type CampaignContactQueryOperators, type CampaignContactQueryParams, type CampaignContactQueryValue, type CampaignContactResponse, type CampaignContactSortDirection, type CampaignContactSortParams, type CampaignPaginatedResponse, type CampaignProvider, type CampaignQueryParams, type CampaignSchedule, type CampaignStatus, type CampaignUser, type CompanyData, type CompanyResponse, type Config, type ConfigListByProviderResponse, type ConfigProvider, type ConfigTemplatesPaging, type CreateCampaignContactRequest, type CreateCampaignRequest, type DistributionType, type FindOrCreateQueueRuleRequest, type GetAllUsersParams, type GetAllUsersResponse, type GetConfigTemplatesParams, type GetConfigTemplatesResponse, type GetConfigsByProviderParams, type GetManagedUsersResponse, type ManagedUser, type MessageTemplate, type MessageTemplateComponent, type MetaTemplateButton, type MetaTemplateConfigResponse, type MetaTemplateConfigsResponse, type PatchCampaignContactRequest, type PatchCampaignRequest, type Provider, type ProviderListResponse, type Queue, type QueueListResponse, type QueueMember, type QueueRule, type User, type WhatsAppPayload, type WhatsAppTemplateComponent, type WorkGroup, type WorkGroupListResponse, type WorkGroupMember, type WorkGroupMembersResponse, type WorkGroupResponse, configure, gateway };
|
|
877
|
+
export { type AudioConvertResponse, type Campaign, type CampaignContactCampaignStatus, type CampaignContactDispatchStatus, type CampaignContactFilter, type CampaignContactLikeQueryOperators, type CampaignContactPaginatedResponse, type CampaignContactQueryOperators, type CampaignContactQueryParams, type CampaignContactQueryValue, type CampaignContactResponse, type CampaignContactSortDirection, type CampaignContactSortParams, type CampaignPaginatedResponse, type CampaignProvider, type CampaignQueryParams, type CampaignSchedule, type CampaignStatus, type CampaignUser, type CompanyData, type CompanyResponse, type Config, type ConfigListByProviderResponse, type ConfigProvider, type ConfigTemplatesPaging, type CreateCampaignContactRequest, type CreateCampaignRequest, type DistributionType, type FindOrCreateQueueRuleRequest, type GetAllUsersParams, type GetAllUsersResponse, type GetConfigTemplatesParams, type GetConfigTemplatesResponse, type GetConfigsByProviderParams, type GetManagedUsersResponse, type GetPresignedUrlRequest, type IUploadPresignedUrlResponse, type ManagedUser, type MessageTemplate, type MessageTemplateComponent, type MetaTemplateButton, type MetaTemplateConfigResponse, type MetaTemplateConfigsResponse, type PatchCampaignContactRequest, type PatchCampaignRequest, type Provider, type ProviderListResponse, type Queue, type QueueListResponse, type QueueMember, type QueueRule, type UploadPresignedUrlResponse, type User, type WhatsAppPayload, type WhatsAppTemplateComponent, type WorkGroup, type WorkGroupListResponse, type WorkGroupMember, type WorkGroupMembersResponse, type WorkGroupResponse, configure, gateway };
|
package/dist/index.d.ts
CHANGED
|
@@ -751,6 +751,62 @@ declare class ChatAdapterGateway {
|
|
|
751
751
|
getConfigTemplates(configId: string, params?: GetConfigTemplatesParams): Promise<GetConfigTemplatesResponse>;
|
|
752
752
|
}
|
|
753
753
|
|
|
754
|
+
/** Request payload for obtaining a presigned upload URL. */
|
|
755
|
+
interface GetPresignedUrlRequest {
|
|
756
|
+
/** The name of the file to upload. */
|
|
757
|
+
fileName: string;
|
|
758
|
+
/** The destination key for the file in the bucket. */
|
|
759
|
+
key: string;
|
|
760
|
+
/** The unique identifier of the company. */
|
|
761
|
+
companyId: string;
|
|
762
|
+
}
|
|
763
|
+
/** Response returned when generating a presigned URL. */
|
|
764
|
+
interface UploadPresignedUrlResponse {
|
|
765
|
+
/** The destination key for the file. */
|
|
766
|
+
key: string;
|
|
767
|
+
/** The destination bucket. */
|
|
768
|
+
bucket: string;
|
|
769
|
+
/** The presigned URL to upload the file to. */
|
|
770
|
+
presignedUrl: string;
|
|
771
|
+
}
|
|
772
|
+
/** Alias for UploadPresignedUrlResponse to support legacy imports. */
|
|
773
|
+
type IUploadPresignedUrlResponse = UploadPresignedUrlResponse;
|
|
774
|
+
/** Response returned by the Assets API when converting an audio file to M4A. */
|
|
775
|
+
interface AudioConvertResponse {
|
|
776
|
+
/** The MIME type of the converted audio (e.g. 'audio/mp4'). */
|
|
777
|
+
mimetype: string;
|
|
778
|
+
/** The file extension of the converted audio (e.g. 'm4a'). */
|
|
779
|
+
extension: string;
|
|
780
|
+
/** The base64-encoded audio data. */
|
|
781
|
+
data: string;
|
|
782
|
+
/** The filename of the converted audio. */
|
|
783
|
+
filename: string;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Gateway for interacting with the Assets API.
|
|
788
|
+
*/
|
|
789
|
+
declare class AssetsGateway {
|
|
790
|
+
private readonly httpClient;
|
|
791
|
+
private readonly baseUrl;
|
|
792
|
+
constructor(httpClient: AxiosInstance, baseUrl: string);
|
|
793
|
+
/**
|
|
794
|
+
* Retrieves a presigned URL to upload a file to the Assets API.
|
|
795
|
+
* @param params - The configuration options and parameters for the presigned URL.
|
|
796
|
+
* @returns The presigned URL details wrapped in a {@link UploadPresignedUrlResponse}.
|
|
797
|
+
*/
|
|
798
|
+
getPresignedUrl(params: GetPresignedUrlRequest): Promise<UploadPresignedUrlResponse>;
|
|
799
|
+
/**
|
|
800
|
+
* Converts an audio file to M4A format via the Assets API.
|
|
801
|
+
* @param params - The audio file to convert.
|
|
802
|
+
* @param params.file - The audio file to upload for conversion.
|
|
803
|
+
* @returns The converted audio response with base64-encoded data, mimetype, extension and filename.
|
|
804
|
+
*/
|
|
805
|
+
convertAudioToM4A(params: {
|
|
806
|
+
file: File;
|
|
807
|
+
}): Promise<AudioConvertResponse>;
|
|
808
|
+
}
|
|
809
|
+
|
|
754
810
|
/**
|
|
755
811
|
* Maps service identifiers to their corresponding gateway types.
|
|
756
812
|
* Used by the `gateway()` function to infer the correct return type
|
|
@@ -764,14 +820,15 @@ type GatewayMap = {
|
|
|
764
820
|
'chat-config': ChatConfigGateway;
|
|
765
821
|
'campaigns': CampaignsGateway;
|
|
766
822
|
'chat-adapter': ChatAdapterGateway;
|
|
823
|
+
'assets': AssetsGateway;
|
|
767
824
|
};
|
|
768
825
|
/**
|
|
769
826
|
* Parameters required to configure the SDK client.
|
|
770
827
|
* Each service configuration is optional, only provide the services you need.
|
|
771
828
|
*/
|
|
772
829
|
interface GatewayClientParams {
|
|
773
|
-
/** An Axios instance used as the HTTP client for all gateway requests. */
|
|
774
|
-
axiosClient
|
|
830
|
+
/** An Axios instance used as the HTTP client for all gateway requests (optional). */
|
|
831
|
+
axiosClient?: AxiosInstance;
|
|
775
832
|
/** API token used for authentication across all services. */
|
|
776
833
|
apiToken: string;
|
|
777
834
|
/** Configuration for each service gateway. Only the services you configure will be available. */
|
|
@@ -788,6 +845,9 @@ interface GatewayClientParams {
|
|
|
788
845
|
chatAdapter?: {
|
|
789
846
|
baseUrl: string;
|
|
790
847
|
};
|
|
848
|
+
assets?: {
|
|
849
|
+
baseUrl: string;
|
|
850
|
+
};
|
|
791
851
|
};
|
|
792
852
|
}
|
|
793
853
|
|
|
@@ -814,4 +874,4 @@ declare const configure: (params: GatewayClientParams) => void;
|
|
|
814
874
|
*/
|
|
815
875
|
declare function gateway<T extends keyof GatewayMap>(service: T): GatewayMap[T];
|
|
816
876
|
|
|
817
|
-
export { type Campaign, type CampaignContactCampaignStatus, type CampaignContactDispatchStatus, type CampaignContactFilter, type CampaignContactLikeQueryOperators, type CampaignContactPaginatedResponse, type CampaignContactQueryOperators, type CampaignContactQueryParams, type CampaignContactQueryValue, type CampaignContactResponse, type CampaignContactSortDirection, type CampaignContactSortParams, type CampaignPaginatedResponse, type CampaignProvider, type CampaignQueryParams, type CampaignSchedule, type CampaignStatus, type CampaignUser, type CompanyData, type CompanyResponse, type Config, type ConfigListByProviderResponse, type ConfigProvider, type ConfigTemplatesPaging, type CreateCampaignContactRequest, type CreateCampaignRequest, type DistributionType, type FindOrCreateQueueRuleRequest, type GetAllUsersParams, type GetAllUsersResponse, type GetConfigTemplatesParams, type GetConfigTemplatesResponse, type GetConfigsByProviderParams, type GetManagedUsersResponse, type ManagedUser, type MessageTemplate, type MessageTemplateComponent, type MetaTemplateButton, type MetaTemplateConfigResponse, type MetaTemplateConfigsResponse, type PatchCampaignContactRequest, type PatchCampaignRequest, type Provider, type ProviderListResponse, type Queue, type QueueListResponse, type QueueMember, type QueueRule, type User, type WhatsAppPayload, type WhatsAppTemplateComponent, type WorkGroup, type WorkGroupListResponse, type WorkGroupMember, type WorkGroupMembersResponse, type WorkGroupResponse, configure, gateway };
|
|
877
|
+
export { type AudioConvertResponse, type Campaign, type CampaignContactCampaignStatus, type CampaignContactDispatchStatus, type CampaignContactFilter, type CampaignContactLikeQueryOperators, type CampaignContactPaginatedResponse, type CampaignContactQueryOperators, type CampaignContactQueryParams, type CampaignContactQueryValue, type CampaignContactResponse, type CampaignContactSortDirection, type CampaignContactSortParams, type CampaignPaginatedResponse, type CampaignProvider, type CampaignQueryParams, type CampaignSchedule, type CampaignStatus, type CampaignUser, type CompanyData, type CompanyResponse, type Config, type ConfigListByProviderResponse, type ConfigProvider, type ConfigTemplatesPaging, type CreateCampaignContactRequest, type CreateCampaignRequest, type DistributionType, type FindOrCreateQueueRuleRequest, type GetAllUsersParams, type GetAllUsersResponse, type GetConfigTemplatesParams, type GetConfigTemplatesResponse, type GetConfigsByProviderParams, type GetManagedUsersResponse, type GetPresignedUrlRequest, type IUploadPresignedUrlResponse, type ManagedUser, type MessageTemplate, type MessageTemplateComponent, type MetaTemplateButton, type MetaTemplateConfigResponse, type MetaTemplateConfigsResponse, type PatchCampaignContactRequest, type PatchCampaignRequest, type Provider, type ProviderListResponse, type Queue, type QueueListResponse, type QueueMember, type QueueRule, type UploadPresignedUrlResponse, type User, type WhatsAppPayload, type WhatsAppTemplateComponent, type WorkGroup, type WorkGroupListResponse, type WorkGroupMember, type WorkGroupMembersResponse, type WorkGroupResponse, configure, gateway };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/index.ts
|
|
@@ -314,26 +324,76 @@ var ChatAdapterGateway = class {
|
|
|
314
324
|
}
|
|
315
325
|
};
|
|
316
326
|
|
|
327
|
+
// src/assets/index.ts
|
|
328
|
+
var AssetsGateway = class {
|
|
329
|
+
constructor(httpClient, baseUrl) {
|
|
330
|
+
this.httpClient = httpClient;
|
|
331
|
+
this.baseUrl = baseUrl;
|
|
332
|
+
}
|
|
333
|
+
httpClient;
|
|
334
|
+
baseUrl;
|
|
335
|
+
/**
|
|
336
|
+
* Retrieves a presigned URL to upload a file to the Assets API.
|
|
337
|
+
* @param params - The configuration options and parameters for the presigned URL.
|
|
338
|
+
* @returns The presigned URL details wrapped in a {@link UploadPresignedUrlResponse}.
|
|
339
|
+
*/
|
|
340
|
+
async getPresignedUrl(params) {
|
|
341
|
+
const { data } = await this.httpClient.get(`${this.baseUrl}/uploads/presigned-url`, {
|
|
342
|
+
params
|
|
343
|
+
});
|
|
344
|
+
return data;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Converts an audio file to M4A format via the Assets API.
|
|
348
|
+
* @param params - The audio file to convert.
|
|
349
|
+
* @param params.file - The audio file to upload for conversion.
|
|
350
|
+
* @returns The converted audio response with base64-encoded data, mimetype, extension and filename.
|
|
351
|
+
*/
|
|
352
|
+
async convertAudioToM4A(params) {
|
|
353
|
+
const { file } = params;
|
|
354
|
+
const formData = new FormData();
|
|
355
|
+
formData.append("file", file);
|
|
356
|
+
const { data } = await this.httpClient.post(
|
|
357
|
+
`${this.baseUrl}/whatsapp/audio-convert`,
|
|
358
|
+
formData,
|
|
359
|
+
{
|
|
360
|
+
headers: {
|
|
361
|
+
"Content-Type": "multipart/form-data"
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
);
|
|
365
|
+
return data;
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
|
|
317
369
|
// src/@common/client.ts
|
|
370
|
+
var import_axios = __toESM(require("axios"));
|
|
318
371
|
var SDKGateways = class {
|
|
319
372
|
customerService;
|
|
320
373
|
chatConfig;
|
|
321
374
|
campaigns;
|
|
322
375
|
chatAdapter;
|
|
323
|
-
|
|
376
|
+
assets;
|
|
377
|
+
constructor(customerService, chatConfig, campaigns, chatAdapter, assets) {
|
|
324
378
|
this.customerService = customerService;
|
|
325
379
|
this.chatConfig = chatConfig;
|
|
326
380
|
this.campaigns = campaigns;
|
|
327
381
|
this.chatAdapter = chatAdapter;
|
|
382
|
+
this.assets = assets;
|
|
328
383
|
}
|
|
329
384
|
};
|
|
330
385
|
function createClient(params) {
|
|
331
|
-
const httpClient = params.axiosClient
|
|
386
|
+
const httpClient = params.axiosClient || import_axios.default.create({
|
|
387
|
+
headers: {
|
|
388
|
+
Authorization: `Bearer ${params.apiToken}`
|
|
389
|
+
}
|
|
390
|
+
});
|
|
332
391
|
const customerService = params.services.customerService ? new CustomerServiceGateway(httpClient, params.services.customerService.baseUrl) : null;
|
|
333
392
|
const chatConfig = params.services.chatConfig ? new ChatConfigGateway(httpClient, params.services.chatConfig.baseUrl) : null;
|
|
334
393
|
const campaigns = params.services.campaigns ? new CampaignsGateway(httpClient, params.services.campaigns.baseUrl) : null;
|
|
335
394
|
const chatAdapter = params.services.chatAdapter ? new ChatAdapterGateway(httpClient, params.services.chatAdapter.baseUrl) : null;
|
|
336
|
-
|
|
395
|
+
const assets = params.services.assets ? new AssetsGateway(httpClient, params.services.assets.baseUrl) : null;
|
|
396
|
+
return new SDKGateways(customerService, chatConfig, campaigns, chatAdapter, assets);
|
|
337
397
|
}
|
|
338
398
|
|
|
339
399
|
// src/@common/enums.ts
|
|
@@ -341,7 +401,8 @@ var SERVICE_GATEWAYS = {
|
|
|
341
401
|
CUSTOMER_SERVICE: "customer-service",
|
|
342
402
|
CHAT_CONFIG: "chat-config",
|
|
343
403
|
CAMPAIGNS: "campaigns",
|
|
344
|
-
CHAT_ADAPTER: "chat-adapter"
|
|
404
|
+
CHAT_ADAPTER: "chat-adapter",
|
|
405
|
+
ASSETS: "assets"
|
|
345
406
|
};
|
|
346
407
|
|
|
347
408
|
// src/index.ts
|
|
@@ -377,6 +438,10 @@ function gateway(service) {
|
|
|
377
438
|
if (!sdk.client.chatAdapter)
|
|
378
439
|
throw new Error(`Service 'chat-adapter' is not configured. Provide its baseUrl in configure().`);
|
|
379
440
|
return sdk.client.chatAdapter;
|
|
441
|
+
case SERVICE_GATEWAYS.ASSETS:
|
|
442
|
+
if (!sdk.client.assets)
|
|
443
|
+
throw new Error(`Service 'assets' is not configured. Provide its baseUrl in configure().`);
|
|
444
|
+
return sdk.client.assets;
|
|
380
445
|
default:
|
|
381
446
|
throw new Error(`Unknown service gateway: ${service}`);
|
|
382
447
|
}
|
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/@common/client.ts","../src/@common/enums.ts"],"sourcesContent":["import { createClient, SDKGatewaysInterface, GatewayClientParams, GatewayMap } from './@common/client';\nimport { SERVICE_GATEWAYS } 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 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';\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 { ProviderListResponse } from './contracts/provider';\nimport type { ConfigListByProviderResponse, GetConfigsByProviderParams } from './contracts/config';\nimport type { Queue, QueueListResponse } from './contracts/queues';\nimport type { MetaTemplateConfigResponse, MetaTemplateConfigsResponse } from './contracts/meta-template';\nimport type { FindOrCreateQueueRuleRequest, QueueRule } 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 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}/queue/${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 * 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>(\n `${this.baseUrl}/rules/queue/find-or-create`,\n payload,\n );\n return data;\n }\n}\n\nexport type { Queue, QueueMember, DistributionType, QueueListResponse } from './contracts/queues';\nexport type { ProviderListResponse, Provider } 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 } 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';\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 * 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 getUsers() {\n const { data } = await this.httpClient.get<CampaignUser[]>(`${this.baseUrl}/users`);\n return data;\n }\n}\n\nexport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\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';\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(\n configId: string,\n params?: GetConfigTemplatesParams,\n ): 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 { CustomerServiceGateway } from '../customer-service';\nimport { ChatConfigGateway } from '../chat-config';\nimport { CampaignsGateway } from '../campaigns';\nimport { ChatAdapterGateway } from '../chat-adapter';\nimport { 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};\n\nexport interface SDKGatewaysInterface {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n}\n\nclass SDKGateways {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n constructor(\n customerService: CustomerServiceGateway | null,\n chatConfig: ChatConfigGateway | null,\n campaigns: CampaignsGateway | null,\n chatAdapter: ChatAdapterGateway | null,\n ) {\n this.customerService = customerService;\n this.chatConfig = chatConfig;\n this.campaigns = campaigns;\n this.chatAdapter = chatAdapter;\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. */\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 };\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 = params.axiosClient;\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 return new SDKGateways(customerService, chatConfig, campaigns, chatAdapter);\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} as const;\n\nexport type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];\n"],"mappings":"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","names":[]}
|
|
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/@common/client.ts","../src/@common/enums.ts"],"sourcesContent":["import { createClient, SDKGatewaysInterface, GatewayClientParams, GatewayMap } from './@common/client';\nimport { SERVICE_GATEWAYS } 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 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';\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 { ProviderListResponse } from './contracts/provider';\nimport type { ConfigListByProviderResponse, GetConfigsByProviderParams } from './contracts/config';\nimport type { Queue, QueueListResponse } from './contracts/queues';\nimport type { MetaTemplateConfigResponse, MetaTemplateConfigsResponse } from './contracts/meta-template';\nimport type { FindOrCreateQueueRuleRequest, QueueRule } 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 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}/queue/${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 * 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>(\n `${this.baseUrl}/rules/queue/find-or-create`,\n payload,\n );\n return data;\n }\n}\n\nexport type { Queue, QueueMember, DistributionType, QueueListResponse } from './contracts/queues';\nexport type { ProviderListResponse, Provider } 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 } 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';\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 * 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 getUsers() {\n const { data } = await this.httpClient.get<CampaignUser[]>(`${this.baseUrl}/users`);\n return data;\n }\n}\n\nexport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\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';\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(\n configId: string,\n params?: GetConfigTemplatesParams,\n ): 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 } 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(params: { file: File }): Promise<AudioConvertResponse> {\n const { file } = params;\n const formData = new FormData();\n formData.append('file', file);\n\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\nexport type {\n GetPresignedUrlRequest,\n UploadPresignedUrlResponse,\n IUploadPresignedUrlResponse,\n AudioConvertResponse,\n} from './contracts/assets';\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 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};\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}\n\nclass SDKGateways {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n constructor(\n customerService: CustomerServiceGateway | null,\n chatConfig: ChatConfigGateway | null,\n campaigns: CampaignsGateway | null,\n chatAdapter: ChatAdapterGateway | null,\n assets: AssetsGateway | null,\n ) {\n this.customerService = customerService;\n this.chatConfig = chatConfig;\n this.campaigns = campaigns;\n this.chatAdapter = chatAdapter;\n this.assets = assets;\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 };\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 = params.axiosClient || 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\n ? new AssetsGateway(httpClient, params.services.assets.baseUrl)\n : null;\n return new SDKGateways(customerService, chatConfig, campaigns, chatAdapter, assets);\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} as const;\n\nexport type SERVICE_GATEWAYS = (typeof SERVICE_GATEWAYS)[keyof typeof SERVICE_GATEWAYS];\n"],"mappings":"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","names":["axios"]}
|
package/dist/index.mjs
CHANGED
|
@@ -287,26 +287,76 @@ var ChatAdapterGateway = class {
|
|
|
287
287
|
}
|
|
288
288
|
};
|
|
289
289
|
|
|
290
|
+
// src/assets/index.ts
|
|
291
|
+
var AssetsGateway = class {
|
|
292
|
+
constructor(httpClient, baseUrl) {
|
|
293
|
+
this.httpClient = httpClient;
|
|
294
|
+
this.baseUrl = baseUrl;
|
|
295
|
+
}
|
|
296
|
+
httpClient;
|
|
297
|
+
baseUrl;
|
|
298
|
+
/**
|
|
299
|
+
* Retrieves a presigned URL to upload a file to the Assets API.
|
|
300
|
+
* @param params - The configuration options and parameters for the presigned URL.
|
|
301
|
+
* @returns The presigned URL details wrapped in a {@link UploadPresignedUrlResponse}.
|
|
302
|
+
*/
|
|
303
|
+
async getPresignedUrl(params) {
|
|
304
|
+
const { data } = await this.httpClient.get(`${this.baseUrl}/uploads/presigned-url`, {
|
|
305
|
+
params
|
|
306
|
+
});
|
|
307
|
+
return data;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Converts an audio file to M4A format via the Assets API.
|
|
311
|
+
* @param params - The audio file to convert.
|
|
312
|
+
* @param params.file - The audio file to upload for conversion.
|
|
313
|
+
* @returns The converted audio response with base64-encoded data, mimetype, extension and filename.
|
|
314
|
+
*/
|
|
315
|
+
async convertAudioToM4A(params) {
|
|
316
|
+
const { file } = params;
|
|
317
|
+
const formData = new FormData();
|
|
318
|
+
formData.append("file", file);
|
|
319
|
+
const { data } = await this.httpClient.post(
|
|
320
|
+
`${this.baseUrl}/whatsapp/audio-convert`,
|
|
321
|
+
formData,
|
|
322
|
+
{
|
|
323
|
+
headers: {
|
|
324
|
+
"Content-Type": "multipart/form-data"
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
);
|
|
328
|
+
return data;
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
|
|
290
332
|
// src/@common/client.ts
|
|
333
|
+
import axios from "axios";
|
|
291
334
|
var SDKGateways = class {
|
|
292
335
|
customerService;
|
|
293
336
|
chatConfig;
|
|
294
337
|
campaigns;
|
|
295
338
|
chatAdapter;
|
|
296
|
-
|
|
339
|
+
assets;
|
|
340
|
+
constructor(customerService, chatConfig, campaigns, chatAdapter, assets) {
|
|
297
341
|
this.customerService = customerService;
|
|
298
342
|
this.chatConfig = chatConfig;
|
|
299
343
|
this.campaigns = campaigns;
|
|
300
344
|
this.chatAdapter = chatAdapter;
|
|
345
|
+
this.assets = assets;
|
|
301
346
|
}
|
|
302
347
|
};
|
|
303
348
|
function createClient(params) {
|
|
304
|
-
const httpClient = params.axiosClient
|
|
349
|
+
const httpClient = params.axiosClient || axios.create({
|
|
350
|
+
headers: {
|
|
351
|
+
Authorization: `Bearer ${params.apiToken}`
|
|
352
|
+
}
|
|
353
|
+
});
|
|
305
354
|
const customerService = params.services.customerService ? new CustomerServiceGateway(httpClient, params.services.customerService.baseUrl) : null;
|
|
306
355
|
const chatConfig = params.services.chatConfig ? new ChatConfigGateway(httpClient, params.services.chatConfig.baseUrl) : null;
|
|
307
356
|
const campaigns = params.services.campaigns ? new CampaignsGateway(httpClient, params.services.campaigns.baseUrl) : null;
|
|
308
357
|
const chatAdapter = params.services.chatAdapter ? new ChatAdapterGateway(httpClient, params.services.chatAdapter.baseUrl) : null;
|
|
309
|
-
|
|
358
|
+
const assets = params.services.assets ? new AssetsGateway(httpClient, params.services.assets.baseUrl) : null;
|
|
359
|
+
return new SDKGateways(customerService, chatConfig, campaigns, chatAdapter, assets);
|
|
310
360
|
}
|
|
311
361
|
|
|
312
362
|
// src/@common/enums.ts
|
|
@@ -314,7 +364,8 @@ var SERVICE_GATEWAYS = {
|
|
|
314
364
|
CUSTOMER_SERVICE: "customer-service",
|
|
315
365
|
CHAT_CONFIG: "chat-config",
|
|
316
366
|
CAMPAIGNS: "campaigns",
|
|
317
|
-
CHAT_ADAPTER: "chat-adapter"
|
|
367
|
+
CHAT_ADAPTER: "chat-adapter",
|
|
368
|
+
ASSETS: "assets"
|
|
318
369
|
};
|
|
319
370
|
|
|
320
371
|
// src/index.ts
|
|
@@ -350,6 +401,10 @@ function gateway(service) {
|
|
|
350
401
|
if (!sdk.client.chatAdapter)
|
|
351
402
|
throw new Error(`Service 'chat-adapter' is not configured. Provide its baseUrl in configure().`);
|
|
352
403
|
return sdk.client.chatAdapter;
|
|
404
|
+
case SERVICE_GATEWAYS.ASSETS:
|
|
405
|
+
if (!sdk.client.assets)
|
|
406
|
+
throw new Error(`Service 'assets' is not configured. Provide its baseUrl in configure().`);
|
|
407
|
+
return sdk.client.assets;
|
|
353
408
|
default:
|
|
354
409
|
throw new Error(`Unknown service gateway: ${service}`);
|
|
355
410
|
}
|
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/@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 { ProviderListResponse } from './contracts/provider';\nimport type { ConfigListByProviderResponse, GetConfigsByProviderParams } from './contracts/config';\nimport type { Queue, QueueListResponse } from './contracts/queues';\nimport type { MetaTemplateConfigResponse, MetaTemplateConfigsResponse } from './contracts/meta-template';\nimport type { FindOrCreateQueueRuleRequest, QueueRule } 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 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}/queue/${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 * 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>(\n `${this.baseUrl}/rules/queue/find-or-create`,\n payload,\n );\n return data;\n }\n}\n\nexport type { Queue, QueueMember, DistributionType, QueueListResponse } from './contracts/queues';\nexport type { ProviderListResponse, Provider } 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 } 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';\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 * 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 getUsers() {\n const { data } = await this.httpClient.get<CampaignUser[]>(`${this.baseUrl}/users`);\n return data;\n }\n}\n\nexport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\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';\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(\n configId: string,\n params?: GetConfigTemplatesParams,\n ): 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 { CustomerServiceGateway } from '../customer-service';\nimport { ChatConfigGateway } from '../chat-config';\nimport { CampaignsGateway } from '../campaigns';\nimport { ChatAdapterGateway } from '../chat-adapter';\nimport { 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};\n\nexport interface SDKGatewaysInterface {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n}\n\nclass SDKGateways {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n constructor(\n customerService: CustomerServiceGateway | null,\n chatConfig: ChatConfigGateway | null,\n campaigns: CampaignsGateway | null,\n chatAdapter: ChatAdapterGateway | null,\n ) {\n this.customerService = customerService;\n this.chatConfig = chatConfig;\n this.campaigns = campaigns;\n this.chatAdapter = chatAdapter;\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. */\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 };\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 = params.axiosClient;\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 return new SDKGateways(customerService, chatConfig, campaigns, chatAdapter);\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} 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\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 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';\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/@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 { ProviderListResponse } from './contracts/provider';\nimport type { ConfigListByProviderResponse, GetConfigsByProviderParams } from './contracts/config';\nimport type { Queue, QueueListResponse } from './contracts/queues';\nimport type { MetaTemplateConfigResponse, MetaTemplateConfigsResponse } from './contracts/meta-template';\nimport type { FindOrCreateQueueRuleRequest, QueueRule } 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 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}/queue/${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 * 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>(\n `${this.baseUrl}/rules/queue/find-or-create`,\n payload,\n );\n return data;\n }\n}\n\nexport type { Queue, QueueMember, DistributionType, QueueListResponse } from './contracts/queues';\nexport type { ProviderListResponse, Provider } 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 } 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';\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 * 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 getUsers() {\n const { data } = await this.httpClient.get<CampaignUser[]>(`${this.baseUrl}/users`);\n return data;\n }\n}\n\nexport type {\n Campaign,\n CampaignPaginatedResponse,\n CampaignQueryParams,\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';\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(\n configId: string,\n params?: GetConfigTemplatesParams,\n ): 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 } 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(params: { file: File }): Promise<AudioConvertResponse> {\n const { file } = params;\n const formData = new FormData();\n formData.append('file', file);\n\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\nexport type {\n GetPresignedUrlRequest,\n UploadPresignedUrlResponse,\n IUploadPresignedUrlResponse,\n AudioConvertResponse,\n} from './contracts/assets';\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 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};\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}\n\nclass SDKGateways {\n customerService: CustomerServiceGateway | null;\n chatConfig: ChatConfigGateway | null;\n campaigns: CampaignsGateway | null;\n chatAdapter: ChatAdapterGateway | null;\n assets: AssetsGateway | null;\n constructor(\n customerService: CustomerServiceGateway | null,\n chatConfig: ChatConfigGateway | null,\n campaigns: CampaignsGateway | null,\n chatAdapter: ChatAdapterGateway | null,\n assets: AssetsGateway | null,\n ) {\n this.customerService = customerService;\n this.chatConfig = chatConfig;\n this.campaigns = campaigns;\n this.chatAdapter = chatAdapter;\n this.assets = assets;\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 };\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 = params.axiosClient || 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\n ? new AssetsGateway(httpClient, params.services.assets.baseUrl)\n : null;\n return new SDKGateways(customerService, chatConfig, campaigns, chatAdapter, assets);\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} 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\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 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';\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.5.1",
|
|
3
3
|
"description": "A simple package to help with some common tasks",
|
|
4
4
|
"name": "@opens/gateways",
|
|
5
5
|
"private": false,
|
|
@@ -51,6 +51,6 @@
|
|
|
51
51
|
"vitest": "^3.0.7"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"axios": "^1.
|
|
54
|
+
"axios": "^1.18.0"
|
|
55
55
|
}
|
|
56
56
|
}
|