whatsapp-cloud-bot 1.0.0

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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +561 -0
  3. package/dist/cjs/Dispatcher.js +153 -0
  4. package/dist/cjs/Dispatcher.js.map +1 -0
  5. package/dist/cjs/Handlers.js +206 -0
  6. package/dist/cjs/Handlers.js.map +1 -0
  7. package/dist/cjs/Markup.js +181 -0
  8. package/dist/cjs/Markup.js.map +1 -0
  9. package/dist/cjs/Message.js +204 -0
  10. package/dist/cjs/Message.js.map +1 -0
  11. package/dist/cjs/Update.js +28 -0
  12. package/dist/cjs/Update.js.map +1 -0
  13. package/dist/cjs/UserContext.js +70 -0
  14. package/dist/cjs/UserContext.js.map +1 -0
  15. package/dist/cjs/WhatsApp.js +125 -0
  16. package/dist/cjs/WhatsApp.js.map +1 -0
  17. package/dist/cjs/index.js +52 -0
  18. package/dist/cjs/index.js.map +1 -0
  19. package/dist/cjs/types/index.js +3 -0
  20. package/dist/cjs/types/index.js.map +1 -0
  21. package/dist/cjs/utils/helpers.js +69 -0
  22. package/dist/cjs/utils/helpers.js.map +1 -0
  23. package/dist/esm/Dispatcher.js +149 -0
  24. package/dist/esm/Dispatcher.js.map +1 -0
  25. package/dist/esm/Handlers.js +191 -0
  26. package/dist/esm/Handlers.js.map +1 -0
  27. package/dist/esm/Markup.js +171 -0
  28. package/dist/esm/Markup.js.map +1 -0
  29. package/dist/esm/Message.js +189 -0
  30. package/dist/esm/Message.js.map +1 -0
  31. package/dist/esm/Update.js +24 -0
  32. package/dist/esm/Update.js.map +1 -0
  33. package/dist/esm/UserContext.js +64 -0
  34. package/dist/esm/UserContext.js.map +1 -0
  35. package/dist/esm/WhatsApp.js +121 -0
  36. package/dist/esm/WhatsApp.js.map +1 -0
  37. package/dist/esm/index.js +10 -0
  38. package/dist/esm/index.js.map +1 -0
  39. package/dist/esm/types/index.js +2 -0
  40. package/dist/esm/types/index.js.map +1 -0
  41. package/dist/esm/utils/helpers.js +62 -0
  42. package/dist/esm/utils/helpers.js.map +1 -0
  43. package/dist/types/Dispatcher.d.ts +25 -0
  44. package/dist/types/Dispatcher.d.ts.map +1 -0
  45. package/dist/types/Handlers.d.ts +61 -0
  46. package/dist/types/Handlers.d.ts.map +1 -0
  47. package/dist/types/Markup.d.ts +50 -0
  48. package/dist/types/Markup.d.ts.map +1 -0
  49. package/dist/types/Message.d.ts +22 -0
  50. package/dist/types/Message.d.ts.map +1 -0
  51. package/dist/types/Update.d.ts +32 -0
  52. package/dist/types/Update.d.ts.map +1 -0
  53. package/dist/types/UserContext.d.ts +16 -0
  54. package/dist/types/UserContext.d.ts.map +1 -0
  55. package/dist/types/WhatsApp.d.ts +49 -0
  56. package/dist/types/WhatsApp.d.ts.map +1 -0
  57. package/dist/types/index.d.ts +11 -0
  58. package/dist/types/index.d.ts.map +1 -0
  59. package/dist/types/types/index.d.ts +194 -0
  60. package/dist/types/types/index.d.ts.map +1 -0
  61. package/dist/types/utils/helpers.d.ts +6 -0
  62. package/dist/types/utils/helpers.d.ts.map +1 -0
  63. package/package.json +81 -0
@@ -0,0 +1,50 @@
1
+ import type { ReplyMarkup, ReplyMarkupType } from './types';
2
+ export declare abstract class BaseReplyMarkup implements ReplyMarkup {
3
+ type: ReplyMarkupType;
4
+ markup: any;
5
+ constructor(type: ReplyMarkupType, markup: any);
6
+ }
7
+ export declare class InlineButton {
8
+ button: {
9
+ type: string;
10
+ reply: {
11
+ id: string;
12
+ title: string;
13
+ };
14
+ };
15
+ constructor(text: string, buttonId?: string);
16
+ }
17
+ export declare class InlineKeyboard extends BaseReplyMarkup {
18
+ constructor(buttons: (string | InlineButton)[]);
19
+ private static setButtons;
20
+ private static validateButtons;
21
+ }
22
+ export declare class ListItem {
23
+ item: {
24
+ id: string;
25
+ title: string;
26
+ description?: string;
27
+ };
28
+ constructor(title: string, id?: string, description?: string);
29
+ }
30
+ export declare class ListSection {
31
+ section: {
32
+ title: string;
33
+ rows: Array<{
34
+ id: string;
35
+ title: string;
36
+ description?: string;
37
+ }>;
38
+ };
39
+ constructor(title: string, items: (string | ListItem)[]);
40
+ private static setItems;
41
+ private static validateItems;
42
+ }
43
+ export declare class InlineList extends BaseReplyMarkup {
44
+ constructor(buttonText: string, listItems: (ListItem | ListSection)[]);
45
+ private static validateList;
46
+ }
47
+ export declare class InlineLocationRequest extends BaseReplyMarkup {
48
+ constructor();
49
+ }
50
+ //# sourceMappingURL=Markup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Markup.d.ts","sourceRoot":"","sources":["../../src/Markup.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK5D,8BAAsB,eAAgB,YAAW,WAAW;IACnD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC;gBAEP,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG;CAI/C;AAWD,qBAAa,YAAY;IAChB,MAAM,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE;YACL,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;gBAOU,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;CAa5C;AAgBD,qBAAa,cAAe,SAAQ,eAAe;gBAKrC,OAAO,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE;IAc9C,OAAO,CAAC,MAAM,CAAC,UAAU;IAuBzB,OAAO,CAAC,MAAM,CAAC,eAAe;CAsB/B;AAWD,qBAAa,QAAQ;IACZ,IAAI,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;gBAQU,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAkB7D;AAWD,qBAAa,WAAW;IACf,OAAO,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,KAAK,CAAC;YACV,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC,CAAC;KACJ,CAAC;gBAOU,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE;IAiBvD,OAAO,CAAC,MAAM,CAAC,QAAQ;IAmBvB,OAAO,CAAC,MAAM,CAAC,aAAa;CAK7B;AAqBD,qBAAa,UAAW,SAAQ,eAAe;gBAMjC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,GAAG,WAAW,CAAC,EAAE;IA+BrE,OAAO,CAAC,MAAM,CAAC,YAAY;CAiC5B;AAWD,qBAAa,qBAAsB,SAAQ,eAAe;;CAWzD"}
@@ -0,0 +1,22 @@
1
+ import type { AxiosResponse } from 'axios';
2
+ import type { ReplyMarkup } from './types';
3
+ export declare function markAsRead(url: string, token: string, messageId: string): Promise<AxiosResponse>;
4
+ export declare function sendTextMessage(url: string, token: string, phoneNumber: string, text: string, options?: {
5
+ msgId?: string;
6
+ webPagePreview?: boolean;
7
+ tagMessage?: boolean;
8
+ }): Promise<AxiosResponse>;
9
+ export declare function sendInteractiveMessage(url: string, token: string, phoneNumber: string, text: string, replyMarkup: ReplyMarkup, options?: {
10
+ msgId?: string;
11
+ header?: string;
12
+ headerType?: 'text' | 'image' | 'video' | 'document';
13
+ footer?: string;
14
+ }): Promise<AxiosResponse>;
15
+ export declare function sendTemplateMessage(url: string, token: string, phoneNumber: string, templateName: string, components?: any[], languageCode?: string): Promise<AxiosResponse>;
16
+ export declare function sendMediaMessage(url: string, token: string, phoneNumber: string, mediaPath: string, mediaType?: 'image' | 'video' | 'audio' | 'document' | 'sticker', caption?: string): Promise<AxiosResponse>;
17
+ export declare function sendLocationMessage(url: string, token: string, phoneNumber: string, latitude: number, longitude: number, name?: string, address?: string): Promise<AxiosResponse>;
18
+ export declare function uploadMedia(url: string, token: string, filePath: string, mimeType: string): Promise<AxiosResponse>;
19
+ export declare function getMediaUrl(baseUrl: string, mediaId: string, token: string): Promise<any>;
20
+ export declare function downloadMedia(baseUrl: string, mediaId: string, token: string, filePath?: string): Promise<string>;
21
+ export declare function downloadMediaData(baseUrl: string, mediaId: string, token: string): Promise<Buffer>;
22
+ //# sourceMappingURL=Message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../src/Message.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAkB3C,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAWxB;AAKD,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,GACL,OAAO,CAAC,aAAa,CAAC,CAsBxB;AAKD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,OAAO,CAAC,aAAa,CAAC,CA2CxB;AAKD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,UAAU,GAAE,GAAG,EAAO,EACtB,YAAY,GAAE,MAAgB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAiBxB;AAKD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAmB,EACzE,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAexB;AAKD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAKD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAaxB;AAKD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,GAAG,CAAC,CAQd;AAKD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAKD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
@@ -0,0 +1,32 @@
1
+ import type { AxiosResponse } from 'axios';
2
+ import type { WebhookValue, WhatsAppMessage, SendMessageOptions, SendMediaOptions } from './types';
3
+ export declare class Update {
4
+ bot: any;
5
+ value: WebhookValue;
6
+ message: WhatsAppMessage;
7
+ user: {
8
+ profile: {
9
+ name: string;
10
+ };
11
+ wa_id: string;
12
+ };
13
+ userDisplayName: string;
14
+ userPhoneNumber: string;
15
+ messageId: string;
16
+ messageText?: string;
17
+ interactiveText?: any;
18
+ mediaUrl?: string;
19
+ mediaMimeType?: string;
20
+ mediaFileId?: string;
21
+ mediaHash?: string;
22
+ mediaVoice?: boolean;
23
+ locAddress?: string;
24
+ locName?: string;
25
+ locLatitude?: number;
26
+ locLongitude?: number;
27
+ constructor(bot: any, value: WebhookValue);
28
+ replyMessage(text: string, options?: SendMessageOptions): Promise<AxiosResponse>;
29
+ replyMedia(mediaPath: string, options?: SendMediaOptions): Promise<AxiosResponse>;
30
+ replyTemplate(templateName: string, components?: any[], languageCode?: string): Promise<AxiosResponse>;
31
+ }
32
+ //# sourceMappingURL=Update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Update.d.ts","sourceRoot":"","sources":["../../src/Update.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAKjB,qBAAa,MAAM;IACV,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE;QACX,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACK,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEjB,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY;IAanC,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,aAAa,CAAC;IAUnB,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,aAAa,CAAC;IAOnB,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,GAAG,EAAE,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC;CAQ1B"}
@@ -0,0 +1,16 @@
1
+ import type { UserContextData } from './types';
2
+ export declare class UserContext {
3
+ userData: UserContextData;
4
+ private phoneNumber;
5
+ constructor(phoneNumber: string);
6
+ set(key: string, value: any): void;
7
+ get<T = any>(key: string, defaultValue?: T): T | undefined;
8
+ has(key: string): boolean;
9
+ delete(key: string): void;
10
+ clear(): void;
11
+ keys(): string[];
12
+ size(): number;
13
+ }
14
+ export declare function clearAllContexts(): void;
15
+ export declare function getAllContextUsers(): string[];
16
+ //# sourceMappingURL=UserContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserContext.d.ts","sourceRoot":"","sources":["../../src/UserContext.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA8E/C,qBAAa,WAAW;IAIf,QAAQ,EAAE,eAAe,CAAC;IAKjC,OAAO,CAAC,WAAW,CAAS;gBAMhB,WAAW,EAAE,MAAM;IAU/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAUlC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAS1D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOzB,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,MAAM,EAAE;IAQhB,IAAI,IAAI,MAAM;CAGf;AAKD,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAMD,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}
@@ -0,0 +1,49 @@
1
+ import type { AxiosResponse } from 'axios';
2
+ import type { WebhookPayload, WhatsAppMessage, SendMessageOptions, SendMediaOptions, TemplateComponent, HandlerFunction, HandlerOptions, InteractiveHandlerOptions } from './types';
3
+ import type { Update } from './Update';
4
+ import type { UpdateHandler } from './Handlers';
5
+ export interface WhatsAppConfig {
6
+ numberId: string;
7
+ token: string;
8
+ markAsRead?: boolean;
9
+ version?: number;
10
+ }
11
+ export declare class WhatsApp {
12
+ id: string;
13
+ token: string;
14
+ versionNumber: number;
15
+ baseUrl: string;
16
+ msgUrl: string;
17
+ mediaUrl: string;
18
+ private dispatcher;
19
+ constructor(config: WhatsAppConfig);
20
+ setVersion(version: number): void;
21
+ processUpdate(update: WebhookPayload): Promise<void>;
22
+ markAsRead(message: WhatsAppMessage): Promise<AxiosResponse>;
23
+ sendMessage(phoneNumber: string, text: string, options?: SendMessageOptions): Promise<AxiosResponse>;
24
+ sendTemplateMessage(phoneNumber: string, templateName: string, components?: TemplateComponent[], languageCode?: string): Promise<AxiosResponse>;
25
+ sendMediaMessage(phoneNumber: string, mediaPath: string, options?: SendMediaOptions): Promise<AxiosResponse>;
26
+ sendImage(phoneNumber: string, imagePath: string, caption?: string): Promise<AxiosResponse>;
27
+ sendVideo(phoneNumber: string, videoPath: string, caption?: string): Promise<AxiosResponse>;
28
+ sendAudio(phoneNumber: string, audioPath: string): Promise<AxiosResponse>;
29
+ sendDocument(phoneNumber: string, documentPath: string, caption?: string): Promise<AxiosResponse>;
30
+ sendLocation(phoneNumber: string, latitude: number, longitude: number, name?: string, address?: string): Promise<AxiosResponse>;
31
+ getMediaUrl(mediaId: string): Promise<any>;
32
+ downloadMedia(mediaId: string, filePath?: string): Promise<string>;
33
+ downloadMediaData(mediaId: string): Promise<Buffer>;
34
+ onMessage(action: HandlerFunction, options?: HandlerOptions): void;
35
+ onInteractiveMessage(action: HandlerFunction, options?: InteractiveHandlerOptions): void;
36
+ onImageMessage(action: HandlerFunction, options?: HandlerOptions): void;
37
+ onAudioMessage(action: HandlerFunction, options?: HandlerOptions): void;
38
+ onVideoMessage(action: HandlerFunction, options?: HandlerOptions): void;
39
+ onDocumentMessage(action: HandlerFunction, options?: HandlerOptions): void;
40
+ onStickerMessage(action: HandlerFunction, options?: HandlerOptions): void;
41
+ onLocationMessage(action: HandlerFunction, options?: HandlerOptions): void;
42
+ setNextStep(update: Update, handler: UpdateHandler, fallbackFunction?: () => void | Promise<void>, fallbackRegex?: string | RegExp): void;
43
+ clearNextStep(phoneNumber: string): void;
44
+ getQueueStatus(): {
45
+ size: number;
46
+ isProcessing: boolean;
47
+ };
48
+ }
49
+ //# sourceMappingURL=WhatsApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhatsApp.d.ts","sourceRoot":"","sources":["../../src/WhatsApp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { WhatsApp } from './WhatsApp';
2
+ export type { WhatsAppConfig } from './WhatsApp';
3
+ export { Update } from './Update';
4
+ export { UserContext, clearAllContexts, getAllContextUsers, } from './UserContext';
5
+ export { Dispatcher } from './Dispatcher';
6
+ export { UpdateHandler, MessageHandler, InteractiveQueryHandler, ImageHandler, AudioHandler, VideoHandler, DocumentHandler, StickerHandler, LocationHandler, UnknownHandler, UnsupportedHandler, } from './Handlers';
7
+ export { BaseReplyMarkup, InlineButton, InlineKeyboard, ListItem, ListSection, InlineList, InlineLocationRequest, } from './Markup';
8
+ export * from './types';
9
+ export * from './utils/helpers';
10
+ export { WhatsApp as default } from './WhatsApp';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EACL,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAGlB,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,194 @@
1
+ import type { AxiosResponse } from 'axios';
2
+ export interface WebhookValue {
3
+ messaging_product: string;
4
+ metadata: {
5
+ display_phone_number: string;
6
+ phone_number_id: string;
7
+ };
8
+ contacts?: Array<{
9
+ profile: {
10
+ name: string;
11
+ };
12
+ wa_id: string;
13
+ }>;
14
+ messages?: WhatsAppMessage[];
15
+ statuses?: any[];
16
+ }
17
+ export interface WebhookPayload {
18
+ object: string;
19
+ entry: Array<{
20
+ id: string;
21
+ changes: Array<{
22
+ value: WebhookValue;
23
+ field: string;
24
+ }>;
25
+ }>;
26
+ }
27
+ export type MessageType = 'text' | 'interactive' | 'image' | 'audio' | 'video' | 'document' | 'sticker' | 'location' | 'contacts' | 'unknown' | 'unsupported';
28
+ export interface WhatsAppMessage {
29
+ from: string;
30
+ id: string;
31
+ timestamp: string;
32
+ type: MessageType;
33
+ text?: {
34
+ body: string;
35
+ };
36
+ interactive?: {
37
+ type: 'button_reply' | 'list_reply';
38
+ button_reply?: {
39
+ id: string;
40
+ title: string;
41
+ };
42
+ list_reply?: {
43
+ id: string;
44
+ title: string;
45
+ description?: string;
46
+ };
47
+ };
48
+ image?: MediaObject;
49
+ audio?: MediaObject & {
50
+ voice?: boolean;
51
+ };
52
+ video?: MediaObject;
53
+ document?: MediaObject;
54
+ sticker?: MediaObject;
55
+ location?: {
56
+ latitude: number;
57
+ longitude: number;
58
+ name?: string;
59
+ address?: string;
60
+ };
61
+ context?: {
62
+ from: string;
63
+ id: string;
64
+ };
65
+ }
66
+ export interface MediaObject {
67
+ id: string;
68
+ mime_type: string;
69
+ sha256: string;
70
+ caption?: string;
71
+ }
72
+ export interface UpdateData {
73
+ messageText: string;
74
+ listReply?: {
75
+ id: string;
76
+ title: string;
77
+ description?: string;
78
+ };
79
+ buttonReply?: {
80
+ id: string;
81
+ title: string;
82
+ };
83
+ mediaMimeType?: string;
84
+ mediaFileId?: string;
85
+ mediaHash?: string;
86
+ mediaVoice?: boolean;
87
+ locAddress?: string;
88
+ locName?: string;
89
+ locLatitude?: number;
90
+ locLongitude?: number;
91
+ }
92
+ export type HandlerFunction = (update: Update, context?: UserContext) => void | Promise<void>;
93
+ export type FilterFunction = (text: string) => boolean;
94
+ export interface HandlerOptions {
95
+ regex?: RegExp;
96
+ filter?: FilterFunction;
97
+ context?: boolean;
98
+ persistent?: boolean;
99
+ }
100
+ export interface InteractiveHandlerOptions extends HandlerOptions {
101
+ handleButton?: boolean;
102
+ handleList?: boolean;
103
+ }
104
+ export interface NextStepConfig {
105
+ handler: UpdateHandler;
106
+ fallbackHandler?: UpdateHandler;
107
+ }
108
+ export interface UserContextData {
109
+ [key: string]: any;
110
+ }
111
+ export type ReplyMarkupType = 'button' | 'list' | 'location_request_message';
112
+ export interface TemplateComponent {
113
+ type: string;
114
+ parameters?: any[];
115
+ }
116
+ export interface SendMessageOptions {
117
+ msgId?: string;
118
+ replyMarkup?: ReplyMarkup;
119
+ header?: string;
120
+ headerType?: 'text' | 'image' | 'video' | 'document';
121
+ footer?: string;
122
+ webPagePreview?: boolean;
123
+ tagMessage?: boolean;
124
+ }
125
+ export interface SendMediaOptions {
126
+ caption?: string;
127
+ mediaProviderToken?: string;
128
+ }
129
+ export interface Update {
130
+ bot: WhatsAppClient;
131
+ value: WebhookValue;
132
+ message: WhatsAppMessage;
133
+ user: {
134
+ profile: {
135
+ name: string;
136
+ };
137
+ wa_id: string;
138
+ };
139
+ userDisplayName: string;
140
+ userPhoneNumber: string;
141
+ messageId: string;
142
+ messageText?: string;
143
+ interactiveText?: any;
144
+ mediaUrl?: string;
145
+ mediaMimeType?: string;
146
+ mediaFileId?: string;
147
+ mediaHash?: string;
148
+ mediaVoice?: boolean;
149
+ locAddress?: string;
150
+ locName?: string;
151
+ locLatitude?: number;
152
+ locLongitude?: number;
153
+ replyMessage(text: string, options?: SendMessageOptions): Promise<AxiosResponse>;
154
+ replyMedia(mediaPath: string, options?: SendMediaOptions): Promise<AxiosResponse>;
155
+ }
156
+ export interface UserContext {
157
+ userData: UserContextData;
158
+ }
159
+ export interface UpdateHandler {
160
+ name: MessageType;
161
+ regex?: RegExp;
162
+ filter?: FilterFunction;
163
+ action: HandlerFunction;
164
+ context: boolean;
165
+ persistent: boolean;
166
+ list?: boolean;
167
+ button?: boolean;
168
+ extractData(message: WhatsAppMessage): UpdateData;
169
+ filterCheck(text: string): boolean;
170
+ run(update: Update, context?: UserContext): Promise<void>;
171
+ }
172
+ export interface ReplyMarkup {
173
+ type: ReplyMarkupType;
174
+ markup: any;
175
+ }
176
+ export interface WhatsAppClient {
177
+ id: string;
178
+ token: string;
179
+ versionNumber: number;
180
+ baseUrl: string;
181
+ msgUrl: string;
182
+ mediaUrl: string;
183
+ processUpdate(update: WebhookPayload): Promise<void>;
184
+ sendMessage(phoneNumber: string, text: string, options?: SendMessageOptions): Promise<AxiosResponse>;
185
+ sendTemplateMessage(phoneNumber: string, templateName: string, components?: TemplateComponent[], languageCode?: string): Promise<AxiosResponse>;
186
+ sendMediaMessage(phoneNumber: string, mediaPath: string, options?: SendMediaOptions): Promise<AxiosResponse>;
187
+ markAsRead(message: WhatsAppMessage): Promise<AxiosResponse>;
188
+ getMediaUrl(mediaId: string): Promise<any>;
189
+ downloadMedia(mediaId: string, filePath: string): Promise<string>;
190
+ }
191
+ export interface DispatcherConfig {
192
+ markAsRead: boolean;
193
+ }
194
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function keysExist(element: any, ...keys: (string | number)[]): boolean;
2
+ export declare function isValidPhoneNumber(phoneNumber: string): boolean;
3
+ export declare function formatPhoneNumber(phoneNumber: string): string;
4
+ export declare function isLink(str: string): boolean;
5
+ export declare function getExtensionFromMimeType(mimeType: string): string;
6
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"AAiBA,wBAAgB,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAkB7E;AAOD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAK/D;AAOD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAOD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3C;AAwCD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkBjE"}
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "whatsapp-cloud-bot",
3
+ "version": "1.0.0",
4
+ "description": "A TypeScript/JavaScript client library for building WhatsApp bots using the WhatsApp Business Cloud API",
5
+ "keywords": [
6
+ "whatsapp",
7
+ "whatsapp-bot",
8
+ "whatsapp-api",
9
+ "whatsapp-business",
10
+ "whatsapp-cloud-api",
11
+ "bot",
12
+ "chatbot",
13
+ "messaging",
14
+ "typescript",
15
+ "async"
16
+ ],
17
+ "homepage": "https://github.com/radi-dev/whatsapp-cloud-bot-ts#readme",
18
+ "bugs": {
19
+ "url": "https://github.com/radi-dev/whatsapp-cloud-bot-ts/issues"
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/radi-dev/whatsapp-cloud-bot-ts.git"
24
+ },
25
+ "license": "MIT",
26
+ "author": "Radi <evaradi18@gmail.com>",
27
+ "type": "module",
28
+ "exports": {
29
+ ".": {
30
+ "import": "./dist/esm/index.js",
31
+ "require": "./dist/cjs/index.js",
32
+ "types": "./dist/types/index.d.ts"
33
+ }
34
+ },
35
+ "main": "dist/cjs/index.js",
36
+ "types": "dist/types/index.d.ts",
37
+ "directories": {
38
+ "doc": "docs",
39
+ "test": "tests"
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "README.md",
44
+ "LICENSE"
45
+ ],
46
+ "scripts": {
47
+ "build": "npm run clean && npm run build:cjs && npm run build:esm && npm run build:types",
48
+ "build:cjs": "tsc --project tsconfig.cjs.json",
49
+ "build:esm": "tsc --project tsconfig.esm.json",
50
+ "build:types": "tsc --project tsconfig.types.json",
51
+ "clean": "rm -rf dist",
52
+ "test": "jest",
53
+ "test:watch": "jest --watch",
54
+ "test:coverage": "jest --coverage",
55
+ "lint": "eslint 'src/**/*.ts'",
56
+ "lint:fix": "eslint 'src/**/*.ts' --fix",
57
+ "format": "prettier --write 'src/**/*.ts'",
58
+ "prepublishOnly": "npm run build && npm test"
59
+ },
60
+ "dependencies": {
61
+ "axios": "^1.6.0",
62
+ "form-data": "^4.0.0"
63
+ },
64
+ "devDependencies": {
65
+ "@types/jest": "^29.5.0",
66
+ "@types/node": "^20.0.0",
67
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
68
+ "@typescript-eslint/parser": "^6.0.0",
69
+ "eslint": "^8.50.0",
70
+ "eslint-config-prettier": "^9.0.0",
71
+ "eslint-plugin-prettier": "^5.0.0",
72
+ "jest": "^29.7.0",
73
+ "prettier": "^3.0.0",
74
+ "ts-jest": "^29.1.0",
75
+ "typescript": "^5.2.0"
76
+ },
77
+ "engines": {
78
+ "node": ">=14.0.0"
79
+ },
80
+ "module": "dist/esm/index.js"
81
+ }