@raphaelvserafim/client-api-whatsapp 1.0.9 → 1.3.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 (66) hide show
  1. package/README.md +512 -297
  2. package/dist/WhatsApp.d.ts +177 -33
  3. package/dist/WhatsApp.js +146 -167
  4. package/dist/WhatsApp.js.map +1 -1
  5. package/dist/client/HttpClient.d.ts +6 -0
  6. package/dist/client/HttpClient.js +29 -0
  7. package/dist/client/HttpClient.js.map +1 -0
  8. package/dist/client/IHttpClient.d.ts +9 -0
  9. package/dist/client/IHttpClient.js +3 -0
  10. package/dist/client/IHttpClient.js.map +1 -0
  11. package/dist/errors.d.ts +5 -0
  12. package/dist/errors.js +13 -0
  13. package/dist/errors.js.map +1 -0
  14. package/dist/index.d.ts +16 -1
  15. package/dist/index.js +37 -3
  16. package/dist/index.js.map +1 -1
  17. package/dist/services/ActionService.d.ts +9 -0
  18. package/dist/services/ActionService.js +32 -0
  19. package/dist/services/ActionService.js.map +1 -0
  20. package/dist/services/BusinessService.d.ts +10 -0
  21. package/dist/services/BusinessService.js +43 -0
  22. package/dist/services/BusinessService.js.map +1 -0
  23. package/dist/services/CallService.d.ts +10 -0
  24. package/dist/services/CallService.js +38 -0
  25. package/dist/services/CallService.js.map +1 -0
  26. package/dist/services/ChatService.d.ts +19 -0
  27. package/dist/services/ChatService.js +63 -0
  28. package/dist/services/ChatService.js.map +1 -0
  29. package/dist/services/CommunityService.d.ts +35 -0
  30. package/dist/services/CommunityService.js +125 -0
  31. package/dist/services/CommunityService.js.map +1 -0
  32. package/dist/services/ContactService.d.ts +21 -0
  33. package/dist/services/ContactService.js +68 -0
  34. package/dist/services/ContactService.js.map +1 -0
  35. package/dist/services/GroupService.d.ts +37 -0
  36. package/dist/services/GroupService.js +117 -0
  37. package/dist/services/GroupService.js.map +1 -0
  38. package/dist/services/InstanceService.d.ts +29 -0
  39. package/dist/services/InstanceService.js +130 -0
  40. package/dist/services/InstanceService.js.map +1 -0
  41. package/dist/services/LabelService.d.ts +18 -0
  42. package/dist/services/LabelService.js +49 -0
  43. package/dist/services/LabelService.js.map +1 -0
  44. package/dist/services/MessageService.d.ts +60 -0
  45. package/dist/services/MessageService.js +171 -0
  46. package/dist/services/MessageService.js.map +1 -0
  47. package/dist/services/NewsletterService.d.ts +23 -0
  48. package/dist/services/NewsletterService.js +129 -0
  49. package/dist/services/NewsletterService.js.map +1 -0
  50. package/dist/services/StatusService.d.ts +14 -0
  51. package/dist/services/StatusService.js +46 -0
  52. package/dist/services/StatusService.js.map +1 -0
  53. package/dist/types/index.d.ts +206 -11
  54. package/dist/types/index.js +12 -0
  55. package/dist/types/index.js.map +1 -1
  56. package/package.json +6 -11
  57. package/.babelrc +0 -3
  58. package/dist/exemple.d.ts +0 -1
  59. package/dist/exemple.js +0 -264
  60. package/dist/exemple.js.map +0 -1
  61. package/src/WhatsApp.ts +0 -245
  62. package/src/exemple.ts +0 -312
  63. package/src/index.ts +0 -2
  64. package/src/types/index.ts +0 -190
  65. package/tsconfig.compile.json +0 -15
  66. package/tsconfig.json +0 -35
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LabelService.js","sourceRoot":"","sources":["../../src/services/LabelService.ts"],"names":[],"mappings":";;;AACA,oCAAgF;AAEhF,MAAa,YAAY;IACvB,YAA6B,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IAAG,CAAC;IAElD,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwC;YAC9D,KAAK,EAAE,cAAM,CAAC,MAAM;YACpB,MAAM,EAAE,kBAAU,CAAC,GAAG;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAgB;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc;YACpC,KAAK,EAAE,cAAM,CAAC,MAAM;YACpB,MAAM,EAAE,kBAAU,CAAC,IAAI;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuC;YAC7D,KAAK,EAAE,GAAG,cAAM,CAAC,MAAM,IAAI,OAAO,EAAE;YACpC,MAAM,EAAE,kBAAU,CAAC,GAAG;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,EAAU;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc;YACpC,KAAK,EAAE,GAAG,cAAM,CAAC,MAAM,IAAI,OAAO,EAAE;YACpC,MAAM,EAAE,kBAAU,CAAC,IAAI;YACvB,IAAI,EAAE,EAAE,EAAE,EAAE;SACb,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc;YACpC,KAAK,EAAE,GAAG,cAAM,CAAC,MAAM,IAAI,OAAO,EAAE;YACpC,MAAM,EAAE,kBAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,EAAU;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc;YACpC,KAAK,EAAE,GAAG,cAAM,CAAC,MAAM,IAAI,OAAO,SAAS,EAAE,EAAE;YAC/C,MAAM,EAAE,kBAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;CACF;AA9CD,oCA8CC","sourcesContent":["import { IHttpClient } from '../client/IHttpClient';\nimport { Routes, HttpMethod, ApiResponse, LabelInfo, ChatInfo } from '../types';\n\nexport class LabelService {\n constructor(private readonly http: IHttpClient) {}\n\n async list(): Promise<{ status: number; data: LabelInfo[] }> {\n return this.http.request<{ status: number; data: LabelInfo[] }>({\n route: Routes.LABELS,\n method: HttpMethod.GET,\n });\n }\n\n async create(name: string, labelId?: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: Routes.LABELS,\n method: HttpMethod.POST,\n body: { name, labelId },\n });\n }\n\n async getChats(labelId: string): Promise<{ status: number; data: ChatInfo[] }> {\n return this.http.request<{ status: number; data: ChatInfo[] }>({\n route: `${Routes.LABELS}/${labelId}`,\n method: HttpMethod.GET,\n });\n }\n\n async addToChat(labelId: string, to: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.LABELS}/${labelId}`,\n method: HttpMethod.POST,\n body: { to },\n });\n }\n\n async delete(labelId: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.LABELS}/${labelId}`,\n method: HttpMethod.DELETE,\n });\n }\n\n async removeFromChat(labelId: string, to: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.LABELS}/${labelId}/chat/${to}`,\n method: HttpMethod.DELETE,\n });\n }\n}\n"]}
@@ -0,0 +1,60 @@
1
+ import { IHttpClient } from '../client/IHttpClient';
2
+ import { TypeMessage, StatusPresence, Contact, Section, Location, Buttons, Items, HeaderMedia, SendMessageRoot, ApiResponse, EventData, ListMessagesResponse, LiveLocationData, SendContactsData, ProductMessageData, GroupInviteMessageData } from '../types';
3
+ export declare class MessageService {
4
+ private readonly http;
5
+ constructor(http: IHttpClient);
6
+ list(phoneNumber: string, page?: number, limit?: number): Promise<ListMessagesResponse>;
7
+ send(data: {
8
+ type: TypeMessage;
9
+ body: {
10
+ to: string;
11
+ msgId?: string;
12
+ header?: HeaderMedia;
13
+ status?: StatusPresence;
14
+ text?: string;
15
+ url?: string;
16
+ caption?: string;
17
+ mimetype?: string;
18
+ fileName?: string;
19
+ contact?: Contact;
20
+ location?: Location;
21
+ name?: string;
22
+ options?: string[];
23
+ sections?: Section[];
24
+ buttons?: Buttons[];
25
+ footer?: string;
26
+ description?: string;
27
+ title?: string;
28
+ buttonText?: string;
29
+ thumbnailUrl?: string;
30
+ sourceUrl?: string;
31
+ referenceId?: string;
32
+ code?: string;
33
+ key?: string;
34
+ merchantName?: string;
35
+ keyType?: "CNPJ" | "CPF" | "EMAIL" | "PHONE";
36
+ subtotal?: string;
37
+ totalAmount?: string;
38
+ items?: Items[];
39
+ };
40
+ }, reply?: boolean): Promise<SendMessageRoot>;
41
+ forward(to: string, msgId: string): Promise<SendMessageRoot>;
42
+ sendSticker(to: string, url: string): Promise<SendMessageRoot>;
43
+ sendVideoNote(to: string, url: string): Promise<SendMessageRoot>;
44
+ sendPoll(to: string, name: string, values: Array<string | number | boolean>, selectableCount?: number): Promise<SendMessageRoot>;
45
+ sendEvent(data: EventData): Promise<SendMessageRoot>;
46
+ pin(id: string, duration?: number): Promise<ApiResponse>;
47
+ sendCallLink(to: string, type: string, caption?: string): Promise<SendMessageRoot>;
48
+ sendImageBase64(to: string, base64: string, caption?: string): Promise<SendMessageRoot>;
49
+ sendAudioBase64(to: string, base64: string): Promise<SendMessageRoot>;
50
+ sendDocumentBase64(to: string, base64: string, mimetype: string, fileName?: string, caption?: string): Promise<SendMessageRoot>;
51
+ sendContacts(data: SendContactsData): Promise<SendMessageRoot>;
52
+ sendLiveLocation(data: LiveLocationData): Promise<SendMessageRoot>;
53
+ unpin(id: string): Promise<ApiResponse>;
54
+ getDetails(messageId: string): Promise<ApiResponse>;
55
+ getMedia(messageId: string, format?: string): Promise<ApiResponse>;
56
+ sendProduct(data: ProductMessageData): Promise<SendMessageRoot>;
57
+ sendGroupInvite(data: GroupInviteMessageData): Promise<SendMessageRoot>;
58
+ requestPhone(to: string): Promise<ApiResponse>;
59
+ createCallLink(type: string): Promise<ApiResponse>;
60
+ }
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageService = void 0;
4
+ const errors_1 = require("../errors");
5
+ const types_1 = require("../types");
6
+ class MessageService {
7
+ constructor(http) {
8
+ this.http = http;
9
+ }
10
+ async list(phoneNumber, page, limit) {
11
+ const params = { phoneNumber };
12
+ if (page !== undefined)
13
+ params.page = page;
14
+ if (limit !== undefined)
15
+ params.limit = limit;
16
+ return this.http.request({
17
+ route: types_1.Routes.MESSAGES,
18
+ method: types_1.HttpMethod.GET,
19
+ params,
20
+ });
21
+ }
22
+ async send(data, reply = false) {
23
+ if (data.type === types_1.TypeMessage.BUTTON_PIX) {
24
+ const { key, keyType, merchantName, subtotal, totalAmount, items } = data.body;
25
+ if (!key || !keyType || !merchantName || !subtotal || !totalAmount || !items || items.length === 0) {
26
+ throw new errors_1.WhatsAppError("Campos obrigatorios para pagamento via PIX estao ausentes.");
27
+ }
28
+ }
29
+ const route = reply
30
+ ? `${types_1.Routes.MESSAGES}/${data.body.msgId}/${data.type}`
31
+ : `${types_1.Routes.MESSAGES}/${data.type}`;
32
+ return this.http.request({ route, method: types_1.HttpMethod.POST, body: data.body });
33
+ }
34
+ async forward(to, msgId) {
35
+ return this.http.request({
36
+ route: `${types_1.Routes.MESSAGES}/${msgId}/forwarding`,
37
+ method: types_1.HttpMethod.POST,
38
+ body: { to },
39
+ });
40
+ }
41
+ async sendSticker(to, url) {
42
+ return this.http.request({
43
+ route: `${types_1.Routes.MESSAGES}/sticker`,
44
+ method: types_1.HttpMethod.POST,
45
+ body: { to, url },
46
+ });
47
+ }
48
+ async sendVideoNote(to, url) {
49
+ return this.http.request({
50
+ route: `${types_1.Routes.MESSAGES}/video-note`,
51
+ method: types_1.HttpMethod.POST,
52
+ body: { to, url },
53
+ });
54
+ }
55
+ async sendPoll(to, name, values, selectableCount) {
56
+ return this.http.request({
57
+ route: `${types_1.Routes.MESSAGES}/poll`,
58
+ method: types_1.HttpMethod.POST,
59
+ body: { to, name, values, selectableCount },
60
+ });
61
+ }
62
+ async sendEvent(data) {
63
+ return this.http.request({
64
+ route: `${types_1.Routes.MESSAGES}/event`,
65
+ method: types_1.HttpMethod.POST,
66
+ body: data,
67
+ });
68
+ }
69
+ async pin(id, duration) {
70
+ return this.http.request({
71
+ route: `${types_1.Routes.MESSAGES}/pin`,
72
+ method: types_1.HttpMethod.POST,
73
+ body: { id, duration },
74
+ });
75
+ }
76
+ async sendCallLink(to, type, caption) {
77
+ return this.http.request({
78
+ route: `${types_1.Routes.MESSAGES}/call-link`,
79
+ method: types_1.HttpMethod.POST,
80
+ body: { to, type, caption },
81
+ });
82
+ }
83
+ async sendImageBase64(to, base64, caption) {
84
+ return this.http.request({
85
+ route: `${types_1.Routes.MESSAGES}/base64/image`,
86
+ method: types_1.HttpMethod.POST,
87
+ body: { to, base64, caption },
88
+ });
89
+ }
90
+ async sendAudioBase64(to, base64) {
91
+ return this.http.request({
92
+ route: `${types_1.Routes.MESSAGES}/base64/audio`,
93
+ method: types_1.HttpMethod.POST,
94
+ body: { to, base64 },
95
+ });
96
+ }
97
+ async sendDocumentBase64(to, base64, mimetype, fileName, caption) {
98
+ return this.http.request({
99
+ route: `${types_1.Routes.MESSAGES}/base64/document`,
100
+ method: types_1.HttpMethod.POST,
101
+ body: { to, base64, mimetype, fileName, caption },
102
+ });
103
+ }
104
+ async sendContacts(data) {
105
+ return this.http.request({
106
+ route: `${types_1.Routes.MESSAGES}/contacts`,
107
+ method: types_1.HttpMethod.POST,
108
+ body: data,
109
+ });
110
+ }
111
+ async sendLiveLocation(data) {
112
+ return this.http.request({
113
+ route: `${types_1.Routes.MESSAGES}/live-location`,
114
+ method: types_1.HttpMethod.POST,
115
+ body: data,
116
+ });
117
+ }
118
+ async unpin(id) {
119
+ return this.http.request({
120
+ route: `${types_1.Routes.MESSAGES}/unpin`,
121
+ method: types_1.HttpMethod.POST,
122
+ body: { id },
123
+ });
124
+ }
125
+ async getDetails(messageId) {
126
+ return this.http.request({
127
+ route: `${types_1.Routes.MESSAGES}/${messageId}`,
128
+ method: types_1.HttpMethod.GET,
129
+ });
130
+ }
131
+ async getMedia(messageId, format) {
132
+ const params = {};
133
+ if (format)
134
+ params.format = format;
135
+ return this.http.request({
136
+ route: `${types_1.Routes.MESSAGES}/${messageId}/media`,
137
+ method: types_1.HttpMethod.GET,
138
+ params,
139
+ });
140
+ }
141
+ async sendProduct(data) {
142
+ return this.http.request({
143
+ route: `${types_1.Routes.MESSAGES}/product`,
144
+ method: types_1.HttpMethod.POST,
145
+ body: data,
146
+ });
147
+ }
148
+ async sendGroupInvite(data) {
149
+ return this.http.request({
150
+ route: `${types_1.Routes.MESSAGES}/group-invite`,
151
+ method: types_1.HttpMethod.POST,
152
+ body: data,
153
+ });
154
+ }
155
+ async requestPhone(to) {
156
+ return this.http.request({
157
+ route: `${types_1.Routes.MESSAGES}/request-phone`,
158
+ method: types_1.HttpMethod.POST,
159
+ body: { to },
160
+ });
161
+ }
162
+ async createCallLink(type) {
163
+ return this.http.request({
164
+ route: `${types_1.Routes.MESSAGES}/create-call-link`,
165
+ method: types_1.HttpMethod.POST,
166
+ body: { type },
167
+ });
168
+ }
169
+ }
170
+ exports.MessageService = MessageService;
171
+ //# sourceMappingURL=MessageService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageService.js","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"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","sourcesContent":["import { IHttpClient } from '../client/IHttpClient';\nimport { WhatsAppError } from '../errors';\nimport {\n Routes, HttpMethod, TypeMessage, StatusPresence, Contact, Section,\n Location, Buttons, Items, HeaderMedia, SendMessageRoot, ApiResponse,\n EventData, ListMessagesResponse, LiveLocationData, SendContactsData,\n ProductMessageData, GroupInviteMessageData,\n} from '../types';\n\nexport class MessageService {\n constructor(private readonly http: IHttpClient) {}\n\n async list(phoneNumber: string, page?: number, limit?: number): Promise<ListMessagesResponse> {\n const params: Record<string, string | number> = { phoneNumber };\n if (page !== undefined) params.page = page;\n if (limit !== undefined) params.limit = limit;\n return this.http.request<ListMessagesResponse>({\n route: Routes.MESSAGES,\n method: HttpMethod.GET,\n params,\n });\n }\n\n async send(\n data: {\n type: TypeMessage;\n body: {\n to: string;\n msgId?: string;\n header?: HeaderMedia;\n status?: StatusPresence;\n text?: string;\n url?: string;\n caption?: string;\n mimetype?: string;\n fileName?: string;\n contact?: Contact;\n location?: Location;\n name?: string;\n options?: string[];\n sections?: Section[];\n buttons?: Buttons[];\n footer?: string;\n description?: string;\n title?: string;\n buttonText?: string;\n thumbnailUrl?: string;\n sourceUrl?: string;\n referenceId?: string;\n code?: string;\n key?: string;\n merchantName?: string;\n keyType?: \"CNPJ\" | \"CPF\" | \"EMAIL\" | \"PHONE\";\n subtotal?: string;\n totalAmount?: string;\n items?: Items[];\n };\n },\n reply: boolean = false,\n ): Promise<SendMessageRoot> {\n if (data.type === TypeMessage.BUTTON_PIX) {\n const { key, keyType, merchantName, subtotal, totalAmount, items } = data.body;\n if (!key || !keyType || !merchantName || !subtotal || !totalAmount || !items || items.length === 0) {\n throw new WhatsAppError(\"Campos obrigatorios para pagamento via PIX estao ausentes.\");\n }\n }\n\n const route = reply\n ? `${Routes.MESSAGES}/${data.body.msgId}/${data.type}`\n : `${Routes.MESSAGES}/${data.type}`;\n\n return this.http.request<SendMessageRoot>({ route, method: HttpMethod.POST, body: data.body });\n }\n\n async forward(to: string, msgId: string): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/${msgId}/forwarding`,\n method: HttpMethod.POST,\n body: { to },\n });\n }\n\n async sendSticker(to: string, url: string): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/sticker`,\n method: HttpMethod.POST,\n body: { to, url },\n });\n }\n\n async sendVideoNote(to: string, url: string): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/video-note`,\n method: HttpMethod.POST,\n body: { to, url },\n });\n }\n\n async sendPoll(to: string, name: string, values: Array<string | number | boolean>, selectableCount?: number): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/poll`,\n method: HttpMethod.POST,\n body: { to, name, values, selectableCount },\n });\n }\n\n async sendEvent(data: EventData): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/event`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n\n async pin(id: string, duration?: number): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.MESSAGES}/pin`,\n method: HttpMethod.POST,\n body: { id, duration },\n });\n }\n\n async sendCallLink(to: string, type: string, caption?: string): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/call-link`,\n method: HttpMethod.POST,\n body: { to, type, caption },\n });\n }\n\n async sendImageBase64(to: string, base64: string, caption?: string): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/base64/image`,\n method: HttpMethod.POST,\n body: { to, base64, caption },\n });\n }\n\n async sendAudioBase64(to: string, base64: string): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/base64/audio`,\n method: HttpMethod.POST,\n body: { to, base64 },\n });\n }\n\n async sendDocumentBase64(to: string, base64: string, mimetype: string, fileName?: string, caption?: string): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/base64/document`,\n method: HttpMethod.POST,\n body: { to, base64, mimetype, fileName, caption },\n });\n }\n\n async sendContacts(data: SendContactsData): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/contacts`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n\n async sendLiveLocation(data: LiveLocationData): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/live-location`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n\n async unpin(id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.MESSAGES}/unpin`,\n method: HttpMethod.POST,\n body: { id },\n });\n }\n\n async getDetails(messageId: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.MESSAGES}/${messageId}`,\n method: HttpMethod.GET,\n });\n }\n\n async getMedia(messageId: string, format?: string): Promise<ApiResponse> {\n const params: Record<string, string> = {};\n if (format) params.format = format;\n return this.http.request<ApiResponse>({\n route: `${Routes.MESSAGES}/${messageId}/media`,\n method: HttpMethod.GET,\n params,\n });\n }\n\n async sendProduct(data: ProductMessageData): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/product`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n\n async sendGroupInvite(data: GroupInviteMessageData): Promise<SendMessageRoot> {\n return this.http.request<SendMessageRoot>({\n route: `${Routes.MESSAGES}/group-invite`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n\n async requestPhone(to: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.MESSAGES}/request-phone`,\n method: HttpMethod.POST,\n body: { to },\n });\n }\n\n async createCallLink(type: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.MESSAGES}/create-call-link`,\n method: HttpMethod.POST,\n body: { type },\n });\n }\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import { IHttpClient } from '../client/IHttpClient';
2
+ import { ApiResponse } from '../types';
3
+ export declare class NewsletterService {
4
+ private readonly http;
5
+ constructor(http: IHttpClient);
6
+ create(name: string, description?: string): Promise<ApiResponse>;
7
+ getMetadata(type: string, id: string): Promise<ApiResponse>;
8
+ getSubscribers(id: string): Promise<ApiResponse>;
9
+ getAdmins(id: string): Promise<ApiResponse>;
10
+ follow(id: string): Promise<ApiResponse>;
11
+ unfollow(id: string): Promise<ApiResponse>;
12
+ updateName(id: string, name: string): Promise<ApiResponse>;
13
+ updateDescription(id: string, description: string): Promise<ApiResponse>;
14
+ updatePicture(id: string, url: string): Promise<ApiResponse>;
15
+ removePicture(id: string): Promise<ApiResponse>;
16
+ transferOwnership(id: string, newOwnerJid: string): Promise<ApiResponse>;
17
+ demoteAdmin(id: string, userJid: string): Promise<ApiResponse>;
18
+ getMessages(id: string, count?: number, since?: number, after?: number): Promise<ApiResponse>;
19
+ react(id: string, serverId: string, reaction: string): Promise<ApiResponse>;
20
+ mute(id: string): Promise<ApiResponse>;
21
+ unmute(id: string): Promise<ApiResponse>;
22
+ delete(id: string): Promise<ApiResponse>;
23
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NewsletterService = void 0;
4
+ const types_1 = require("../types");
5
+ class NewsletterService {
6
+ constructor(http) {
7
+ this.http = http;
8
+ }
9
+ async create(name, description) {
10
+ return this.http.request({
11
+ route: types_1.Routes.NEWSLETTER,
12
+ method: types_1.HttpMethod.POST,
13
+ body: { name, description },
14
+ });
15
+ }
16
+ async getMetadata(type, id) {
17
+ return this.http.request({
18
+ route: `${types_1.Routes.NEWSLETTER}/metadata`,
19
+ method: types_1.HttpMethod.GET,
20
+ params: { type, id },
21
+ });
22
+ }
23
+ async getSubscribers(id) {
24
+ return this.http.request({
25
+ route: `${types_1.Routes.NEWSLETTER}/${id}/subscribers`,
26
+ method: types_1.HttpMethod.GET,
27
+ });
28
+ }
29
+ async getAdmins(id) {
30
+ return this.http.request({
31
+ route: `${types_1.Routes.NEWSLETTER}/${id}/admins`,
32
+ method: types_1.HttpMethod.GET,
33
+ });
34
+ }
35
+ async follow(id) {
36
+ return this.http.request({
37
+ route: `${types_1.Routes.NEWSLETTER}/${id}/follow`,
38
+ method: types_1.HttpMethod.POST,
39
+ });
40
+ }
41
+ async unfollow(id) {
42
+ return this.http.request({
43
+ route: `${types_1.Routes.NEWSLETTER}/${id}/unfollow`,
44
+ method: types_1.HttpMethod.POST,
45
+ });
46
+ }
47
+ async updateName(id, name) {
48
+ return this.http.request({
49
+ route: `${types_1.Routes.NEWSLETTER}/${id}/name`,
50
+ method: types_1.HttpMethod.PUT,
51
+ body: { name },
52
+ });
53
+ }
54
+ async updateDescription(id, description) {
55
+ return this.http.request({
56
+ route: `${types_1.Routes.NEWSLETTER}/${id}/description`,
57
+ method: types_1.HttpMethod.PUT,
58
+ body: { description },
59
+ });
60
+ }
61
+ async updatePicture(id, url) {
62
+ return this.http.request({
63
+ route: `${types_1.Routes.NEWSLETTER}/${id}/picture`,
64
+ method: types_1.HttpMethod.PUT,
65
+ body: { url },
66
+ });
67
+ }
68
+ async removePicture(id) {
69
+ return this.http.request({
70
+ route: `${types_1.Routes.NEWSLETTER}/${id}/picture`,
71
+ method: types_1.HttpMethod.DELETE,
72
+ });
73
+ }
74
+ async transferOwnership(id, newOwnerJid) {
75
+ return this.http.request({
76
+ route: `${types_1.Routes.NEWSLETTER}/${id}/owner`,
77
+ method: types_1.HttpMethod.PUT,
78
+ body: { newOwnerJid },
79
+ });
80
+ }
81
+ async demoteAdmin(id, userJid) {
82
+ return this.http.request({
83
+ route: `${types_1.Routes.NEWSLETTER}/${id}/demote`,
84
+ method: types_1.HttpMethod.PUT,
85
+ body: { userJid },
86
+ });
87
+ }
88
+ async getMessages(id, count, since, after) {
89
+ const params = {};
90
+ if (count !== undefined)
91
+ params.count = count;
92
+ if (since !== undefined)
93
+ params.since = since;
94
+ if (after !== undefined)
95
+ params.after = after;
96
+ return this.http.request({
97
+ route: `${types_1.Routes.NEWSLETTER}/${id}/messages`,
98
+ method: types_1.HttpMethod.GET,
99
+ params,
100
+ });
101
+ }
102
+ async react(id, serverId, reaction) {
103
+ return this.http.request({
104
+ route: `${types_1.Routes.NEWSLETTER}/${id}/react`,
105
+ method: types_1.HttpMethod.POST,
106
+ body: { serverId, reaction },
107
+ });
108
+ }
109
+ async mute(id) {
110
+ return this.http.request({
111
+ route: `${types_1.Routes.NEWSLETTER}/${id}/mute`,
112
+ method: types_1.HttpMethod.POST,
113
+ });
114
+ }
115
+ async unmute(id) {
116
+ return this.http.request({
117
+ route: `${types_1.Routes.NEWSLETTER}/${id}/unmute`,
118
+ method: types_1.HttpMethod.POST,
119
+ });
120
+ }
121
+ async delete(id) {
122
+ return this.http.request({
123
+ route: `${types_1.Routes.NEWSLETTER}/${id}`,
124
+ method: types_1.HttpMethod.DELETE,
125
+ });
126
+ }
127
+ }
128
+ exports.NewsletterService = NewsletterService;
129
+ //# sourceMappingURL=NewsletterService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewsletterService.js","sourceRoot":"","sources":["../../src/services/NewsletterService.ts"],"names":[],"mappings":"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","sourcesContent":["import { IHttpClient } from '../client/IHttpClient';\nimport { Routes, HttpMethod, ApiResponse, NewsletterInfo } from '../types';\n\nexport class NewsletterService {\n constructor(private readonly http: IHttpClient) {}\n\n async create(name: string, description?: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: Routes.NEWSLETTER,\n method: HttpMethod.POST,\n body: { name, description },\n });\n }\n\n async getMetadata(type: string, id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/metadata`,\n method: HttpMethod.GET,\n params: { type, id },\n });\n }\n\n async getSubscribers(id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/subscribers`,\n method: HttpMethod.GET,\n });\n }\n\n async getAdmins(id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/admins`,\n method: HttpMethod.GET,\n });\n }\n\n async follow(id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/follow`,\n method: HttpMethod.POST,\n });\n }\n\n async unfollow(id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/unfollow`,\n method: HttpMethod.POST,\n });\n }\n\n async updateName(id: string, name: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/name`,\n method: HttpMethod.PUT,\n body: { name },\n });\n }\n\n async updateDescription(id: string, description: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/description`,\n method: HttpMethod.PUT,\n body: { description },\n });\n }\n\n async updatePicture(id: string, url: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/picture`,\n method: HttpMethod.PUT,\n body: { url },\n });\n }\n\n async removePicture(id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/picture`,\n method: HttpMethod.DELETE,\n });\n }\n\n async transferOwnership(id: string, newOwnerJid: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/owner`,\n method: HttpMethod.PUT,\n body: { newOwnerJid },\n });\n }\n\n async demoteAdmin(id: string, userJid: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/demote`,\n method: HttpMethod.PUT,\n body: { userJid },\n });\n }\n\n async getMessages(id: string, count?: number, since?: number, after?: number): Promise<ApiResponse> {\n const params: Record<string, number> = {};\n if (count !== undefined) params.count = count;\n if (since !== undefined) params.since = since;\n if (after !== undefined) params.after = after;\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/messages`,\n method: HttpMethod.GET,\n params,\n });\n }\n\n async react(id: string, serverId: string, reaction: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/react`,\n method: HttpMethod.POST,\n body: { serverId, reaction },\n });\n }\n\n async mute(id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/mute`,\n method: HttpMethod.POST,\n });\n }\n\n async unmute(id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}/unmute`,\n method: HttpMethod.POST,\n });\n }\n\n async delete(id: string): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.NEWSLETTER}/${id}`,\n method: HttpMethod.DELETE,\n });\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { IHttpClient } from '../client/IHttpClient';
2
+ import { ApiResponse, StatusTextData, StatusMediaData, StatusMentionData } from '../types';
3
+ export declare class StatusService {
4
+ private readonly http;
5
+ constructor(http: IHttpClient);
6
+ sendText(data: StatusTextData): Promise<ApiResponse>;
7
+ sendImage(data: StatusMediaData): Promise<ApiResponse>;
8
+ sendVideo(data: StatusMediaData): Promise<ApiResponse>;
9
+ sendAudio(data: {
10
+ url: string;
11
+ statusJidList?: string[];
12
+ }): Promise<ApiResponse>;
13
+ mention(data: StatusMentionData): Promise<ApiResponse>;
14
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusService = void 0;
4
+ const types_1 = require("../types");
5
+ class StatusService {
6
+ constructor(http) {
7
+ this.http = http;
8
+ }
9
+ async sendText(data) {
10
+ return this.http.request({
11
+ route: `${types_1.Routes.STATUS}/text`,
12
+ method: types_1.HttpMethod.POST,
13
+ body: data,
14
+ });
15
+ }
16
+ async sendImage(data) {
17
+ return this.http.request({
18
+ route: `${types_1.Routes.STATUS}/image`,
19
+ method: types_1.HttpMethod.POST,
20
+ body: data,
21
+ });
22
+ }
23
+ async sendVideo(data) {
24
+ return this.http.request({
25
+ route: `${types_1.Routes.STATUS}/video`,
26
+ method: types_1.HttpMethod.POST,
27
+ body: data,
28
+ });
29
+ }
30
+ async sendAudio(data) {
31
+ return this.http.request({
32
+ route: `${types_1.Routes.STATUS}/audio`,
33
+ method: types_1.HttpMethod.POST,
34
+ body: data,
35
+ });
36
+ }
37
+ async mention(data) {
38
+ return this.http.request({
39
+ route: `${types_1.Routes.STATUS}/mention`,
40
+ method: types_1.HttpMethod.POST,
41
+ body: data,
42
+ });
43
+ }
44
+ }
45
+ exports.StatusService = StatusService;
46
+ //# sourceMappingURL=StatusService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusService.js","sourceRoot":"","sources":["../../src/services/StatusService.ts"],"names":[],"mappings":";;;AACA,oCAA+G;AAE/G,MAAa,aAAa;IACxB,YAA6B,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IAAG,CAAC;IAElD,KAAK,CAAC,QAAQ,CAAC,IAAoB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc;YACpC,KAAK,EAAE,GAAG,cAAM,CAAC,MAAM,OAAO;YAC9B,MAAM,EAAE,kBAAU,CAAC,IAAI;YACvB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAqB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc;YACpC,KAAK,EAAE,GAAG,cAAM,CAAC,MAAM,QAAQ;YAC/B,MAAM,EAAE,kBAAU,CAAC,IAAI;YACvB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAqB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc;YACpC,KAAK,EAAE,GAAG,cAAM,CAAC,MAAM,QAAQ;YAC/B,MAAM,EAAE,kBAAU,CAAC,IAAI;YACvB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAA+C;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc;YACpC,KAAK,EAAE,GAAG,cAAM,CAAC,MAAM,QAAQ;YAC/B,MAAM,EAAE,kBAAU,CAAC,IAAI;YACvB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAuB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc;YACpC,KAAK,EAAE,GAAG,cAAM,CAAC,MAAM,UAAU;YACjC,MAAM,EAAE,kBAAU,CAAC,IAAI;YACvB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;CACF;AA1CD,sCA0CC","sourcesContent":["import { IHttpClient } from '../client/IHttpClient';\nimport { Routes, HttpMethod, ApiResponse, StatusTextData, StatusMediaData, StatusMentionData } from '../types';\n\nexport class StatusService {\n constructor(private readonly http: IHttpClient) {}\n\n async sendText(data: StatusTextData): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.STATUS}/text`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n\n async sendImage(data: StatusMediaData): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.STATUS}/image`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n\n async sendVideo(data: StatusMediaData): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.STATUS}/video`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n\n async sendAudio(data: { url: string; statusJidList?: string[] }): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.STATUS}/audio`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n\n async mention(data: StatusMentionData): Promise<ApiResponse> {\n return this.http.request<ApiResponse>({\n route: `${Routes.STATUS}/mention`,\n method: HttpMethod.POST,\n body: data,\n });\n }\n}\n"]}