@gamastudio/sendwave-provider 0.0.19 → 0.0.21
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/build/core/interface/provider.interface.d.ts +2 -1
- package/build/core/interface/types.d.ts +5 -0
- package/build/package.json +1 -1
- package/build/provider/core.d.ts +1 -0
- package/build/provider/core.js +13 -2
- package/build/provider/provider.d.ts +2 -1
- package/build/provider/provider.js +16 -9
- package/build/provider/sender.d.ts +2 -1
- package/build/provider/sender.js +27 -5
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SendOptions } from "@builderbot/bot/dist/types";
|
|
2
|
-
import { SendButton, SendList, SendLocation, SendMedia, SendMessage, SendPresence, SendReaction } from "../interface/types";
|
|
2
|
+
import { ReadMessage, SendButton, SendList, SendLocation, SendMedia, SendMessage, SendPresence, SendReaction } from "../interface/types";
|
|
3
3
|
export interface ProviderInterface {
|
|
4
4
|
sendMessage?: (number: string, message: string, options?: SendOptions) => Promise<any>;
|
|
5
5
|
sendText: (data: SendMessage) => Promise<any>;
|
|
@@ -15,4 +15,5 @@ export interface ProviderInterface {
|
|
|
15
15
|
sendButton: (data: SendButton) => Promise<any>;
|
|
16
16
|
sendLocation: (data: SendLocation) => Promise<any>;
|
|
17
17
|
sendReaction: (data: SendReaction) => Promise<any>;
|
|
18
|
+
readMessages: (data: ReadMessage) => Promise<any>;
|
|
18
19
|
}
|
|
@@ -13,6 +13,7 @@ export interface GlobalVendorArgs {
|
|
|
13
13
|
host?: string;
|
|
14
14
|
delay?: number;
|
|
15
15
|
linkPreview?: boolean;
|
|
16
|
+
readMessages?: boolean;
|
|
16
17
|
message?: {
|
|
17
18
|
mergeMessage?: boolean;
|
|
18
19
|
timeMergeMessage?: number;
|
|
@@ -113,3 +114,7 @@ export interface SendReaction {
|
|
|
113
114
|
};
|
|
114
115
|
reaction: string;
|
|
115
116
|
}
|
|
117
|
+
export interface ReadMessage {
|
|
118
|
+
from: string;
|
|
119
|
+
messageId: string;
|
|
120
|
+
}
|
package/build/package.json
CHANGED
package/build/provider/core.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare class SendWaveCore extends EventEmitter {
|
|
|
5
5
|
port: number;
|
|
6
6
|
private messageQueue;
|
|
7
7
|
private globalVendorArgs;
|
|
8
|
+
private sender;
|
|
8
9
|
constructor(port: number, queue: Queue, globalVendorArgs: GlobalVendorArgs);
|
|
9
10
|
indexHome: (_: any, res: any) => void;
|
|
10
11
|
indexConnect: (_: any, res: any) => void;
|
package/build/provider/core.js
CHANGED
|
@@ -5,6 +5,7 @@ const node_events_1 = require("node:events");
|
|
|
5
5
|
const parserMsg_1 = require("../utils/parserMsg");
|
|
6
6
|
const home_1 = require("../constants/html/home");
|
|
7
7
|
const error_1 = require("../constants/html/error");
|
|
8
|
+
const sender_1 = require("./sender");
|
|
8
9
|
class SendWaveCore extends node_events_1.EventEmitter {
|
|
9
10
|
constructor(port, queue, globalVendorArgs) {
|
|
10
11
|
super();
|
|
@@ -26,7 +27,7 @@ class SendWaveCore extends node_events_1.EventEmitter {
|
|
|
26
27
|
res.end("Media handler not implemented yet");
|
|
27
28
|
};
|
|
28
29
|
this.incomingMsg = (req, res) => {
|
|
29
|
-
var _a;
|
|
30
|
+
var _a, _b, _c, _d, _e;
|
|
30
31
|
try {
|
|
31
32
|
const { body } = req;
|
|
32
33
|
if (!["messages.upsert", "send.message"].includes(body.event)) {
|
|
@@ -39,7 +40,16 @@ class SendWaveCore extends node_events_1.EventEmitter {
|
|
|
39
40
|
if (!(data === null || data === void 0 ? void 0 : data.fromMe)) {
|
|
40
41
|
// Emit message event for queue flow system integration
|
|
41
42
|
this.emit("user-message", data);
|
|
42
|
-
if (
|
|
43
|
+
if (this.globalVendorArgs.readMessages)
|
|
44
|
+
this.sender
|
|
45
|
+
.readMessages({
|
|
46
|
+
from: (_b = (_a = data.originalPayload) === null || _a === void 0 ? void 0 : _a.key) === null || _b === void 0 ? void 0 : _b.remoteJidAlt,
|
|
47
|
+
messageId: (_d = (_c = data.originalPayload) === null || _c === void 0 ? void 0 : _c.key) === null || _d === void 0 ? void 0 : _d.id,
|
|
48
|
+
})
|
|
49
|
+
.catch((err) => {
|
|
50
|
+
console.error("[AutoRead Error]", (err === null || err === void 0 ? void 0 : err.message) || err);
|
|
51
|
+
});
|
|
52
|
+
if ((_e = this.globalVendorArgs.message) === null || _e === void 0 ? void 0 : _e.mergeMessage) {
|
|
43
53
|
this.bufferMessage(data);
|
|
44
54
|
}
|
|
45
55
|
else {
|
|
@@ -85,6 +95,7 @@ class SendWaveCore extends node_events_1.EventEmitter {
|
|
|
85
95
|
this.port = port;
|
|
86
96
|
this.messageQueue = queue;
|
|
87
97
|
this.globalVendorArgs = globalVendorArgs;
|
|
98
|
+
this.sender = new sender_1.SenderMessage(globalVendorArgs);
|
|
88
99
|
}
|
|
89
100
|
processMessage(message) {
|
|
90
101
|
return new Promise((resolve, reject) => {
|
|
@@ -2,7 +2,7 @@ import { ProviderClass } from "@builderbot/bot";
|
|
|
2
2
|
import Queue from "queue-promise";
|
|
3
3
|
import { SendWaveCore } from "./core";
|
|
4
4
|
import { BotContext, BotCtxMiddlewareOptions } from "@builderbot/bot/dist/types";
|
|
5
|
-
import { GlobalVendorArgs, SendButton, SendList, SendLocation, SendMedia, SendMessage, SendPresence, SendReaction } from "../core/interface/types";
|
|
5
|
+
import { GlobalVendorArgs, ReadMessage, SendButton, SendList, SendLocation, SendMedia, SendMessage, SendPresence, SendReaction } from "../core/interface/types";
|
|
6
6
|
import { SenderMessage } from "./sender";
|
|
7
7
|
import { ParsedMessage } from "../core/interface";
|
|
8
8
|
export declare class SendWaveProvider extends ProviderClass<SendWaveCore> {
|
|
@@ -58,6 +58,7 @@ export declare class SendWaveProvider extends ProviderClass<SendWaveCore> {
|
|
|
58
58
|
sendReaction(data: SendReaction): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
59
59
|
sendLocation(data: SendLocation): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
60
60
|
sendMedia(data: SendMedia): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
61
|
+
readMessages(data: ReadMessage): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
61
62
|
/**
|
|
62
63
|
* Reset user timeout for queue flow system
|
|
63
64
|
*/
|
|
@@ -35,6 +35,7 @@ class SendWaveProvider extends bot_1.ProviderClass {
|
|
|
35
35
|
apiKey: "",
|
|
36
36
|
delay: 0,
|
|
37
37
|
linkPreview: true,
|
|
38
|
+
readMessages: false,
|
|
38
39
|
message: {
|
|
39
40
|
mergeMessage: false,
|
|
40
41
|
timeMergeMessage: 3,
|
|
@@ -117,15 +118,17 @@ class SendWaveProvider extends bot_1.ProviderClass {
|
|
|
117
118
|
}
|
|
118
119
|
return this.vendor.indexError(req, res);
|
|
119
120
|
})
|
|
120
|
-
.get("/health", async (_, res) => {
|
|
121
|
-
res.setHeader("Content-Type", "application/json");
|
|
122
|
-
res.end(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
121
|
+
// .get("/health", async (_: any, res: any) => {
|
|
122
|
+
// res.setHeader("Content-Type", "application/json");
|
|
123
|
+
// res.end(
|
|
124
|
+
// JSON.stringify({
|
|
125
|
+
// connected: this.instanceConnected,
|
|
126
|
+
// state: this.state,
|
|
127
|
+
// port: this.globalVendorArgs.port,
|
|
128
|
+
// uptime: process.uptime(),
|
|
129
|
+
// })
|
|
130
|
+
// );
|
|
131
|
+
// })
|
|
129
132
|
.post("/webhook", this.vendor.incomingMsg);
|
|
130
133
|
};
|
|
131
134
|
this.busEvents = () => [
|
|
@@ -190,6 +193,7 @@ class SendWaveProvider extends bot_1.ProviderClass {
|
|
|
190
193
|
sendVoice: this.sendVoice,
|
|
191
194
|
sendPresence: this.sendPresence,
|
|
192
195
|
sendButton: this.sendButton,
|
|
196
|
+
readMessages: this.readMessages,
|
|
193
197
|
provider: this,
|
|
194
198
|
blacklist: opts === null || opts === void 0 ? void 0 : opts.blacklist,
|
|
195
199
|
dispatch: (customEvent, payload) => {
|
|
@@ -496,6 +500,9 @@ class SendWaveProvider extends bot_1.ProviderClass {
|
|
|
496
500
|
return this.sender.sendMedia(data);
|
|
497
501
|
}
|
|
498
502
|
// Queue Flow Management Methods
|
|
503
|
+
readMessages(data) {
|
|
504
|
+
return this.sender.readMessages(data);
|
|
505
|
+
}
|
|
499
506
|
/**
|
|
500
507
|
* Reset user timeout for queue flow system
|
|
501
508
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GlobalVendorArgs, ProviderInterface, SendButton, SendList, SendMedia, SendMessage, SendPresence, SendLocation, SendReaction } from "../core/interface";
|
|
1
|
+
import { GlobalVendorArgs, ProviderInterface, SendButton, SendList, SendMedia, SendMessage, SendPresence, SendLocation, SendReaction, ReadMessage } from "../core/interface";
|
|
2
2
|
export declare class SenderMessage implements ProviderInterface {
|
|
3
3
|
private sendwaveApi?;
|
|
4
4
|
private globalVendorArgs?;
|
|
@@ -17,4 +17,5 @@ export declare class SenderMessage implements ProviderInterface {
|
|
|
17
17
|
sendButton(data: SendButton): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
18
18
|
sendLocation(data: SendLocation): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
19
19
|
sendReaction(data: SendReaction): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
20
|
+
readMessages(data: ReadMessage): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
20
21
|
}
|
package/build/provider/sender.js
CHANGED
|
@@ -77,7 +77,7 @@ class SenderMessage {
|
|
|
77
77
|
delay: data.delay || 2000,
|
|
78
78
|
});
|
|
79
79
|
return await ((_a = this.sendwaveApi) === null || _a === void 0 ? void 0 : _a.post(`/message/sendText/${(_b = this.globalVendorArgs) === null || _b === void 0 ? void 0 : _b.name}`, {
|
|
80
|
-
number: data.from
|
|
80
|
+
number: data.from,
|
|
81
81
|
text: data.text,
|
|
82
82
|
...this.globalVendorArgs,
|
|
83
83
|
}));
|
|
@@ -118,7 +118,7 @@ class SenderMessage {
|
|
|
118
118
|
})),
|
|
119
119
|
}));
|
|
120
120
|
return await ((_a = this.sendwaveApi) === null || _a === void 0 ? void 0 : _a.post(`/message/sendList/${(_b = this.globalVendorArgs) === null || _b === void 0 ? void 0 : _b.name}`, {
|
|
121
|
-
number: data.from
|
|
121
|
+
number: data.from,
|
|
122
122
|
title,
|
|
123
123
|
description,
|
|
124
124
|
footerText,
|
|
@@ -174,7 +174,7 @@ class SenderMessage {
|
|
|
174
174
|
}
|
|
175
175
|
return await ((_c = this.sendwaveApi) === null || _c === void 0 ? void 0 : _c.post(`/message/sendMedia/${(_d = this.globalVendorArgs) === null || _d === void 0 ? void 0 : _d.name}`, {
|
|
176
176
|
// ...this.globalVendorArgs,
|
|
177
|
-
number: data.from
|
|
177
|
+
number: data.from,
|
|
178
178
|
mediatype: mediaType,
|
|
179
179
|
mimetype: mimeType,
|
|
180
180
|
fileName: data.fileName || `${(0, crypto_1.randomUUID)()}.${mimeType.split("/")[1]}`,
|
|
@@ -314,7 +314,7 @@ class SenderMessage {
|
|
|
314
314
|
var _a, _b, _c, _d, _e;
|
|
315
315
|
try {
|
|
316
316
|
return await ((_a = this.sendwaveApi) === null || _a === void 0 ? void 0 : _a.post(`/message/sendButtons/${(_b = this.globalVendorArgs) === null || _b === void 0 ? void 0 : _b.name}`, {
|
|
317
|
-
number: data.from
|
|
317
|
+
number: data.from,
|
|
318
318
|
title: data.title,
|
|
319
319
|
body: data.body,
|
|
320
320
|
description: data.description,
|
|
@@ -340,7 +340,7 @@ class SenderMessage {
|
|
|
340
340
|
var _a, _b, _c, _d, _e;
|
|
341
341
|
try {
|
|
342
342
|
return await ((_a = this.sendwaveApi) === null || _a === void 0 ? void 0 : _a.post(`/message/sendLocation/${(_b = this.globalVendorArgs) === null || _b === void 0 ? void 0 : _b.name}`, {
|
|
343
|
-
number: data.from
|
|
343
|
+
number: data.from,
|
|
344
344
|
name: data.name,
|
|
345
345
|
address: data.address,
|
|
346
346
|
latitude: data.latitude,
|
|
@@ -373,5 +373,27 @@ class SenderMessage {
|
|
|
373
373
|
throw new Error(msg);
|
|
374
374
|
}
|
|
375
375
|
}
|
|
376
|
+
async readMessages(data) {
|
|
377
|
+
var _a, _b, _c, _d, _e;
|
|
378
|
+
try {
|
|
379
|
+
return await ((_a = this.sendwaveApi) === null || _a === void 0 ? void 0 : _a.post(`/chat/markMessageAsRead/${(_b = this.globalVendorArgs) === null || _b === void 0 ? void 0 : _b.name}`, {
|
|
380
|
+
readMessages: [
|
|
381
|
+
{
|
|
382
|
+
remoteJid: data.from,
|
|
383
|
+
fromMe: false,
|
|
384
|
+
id: data.messageId,
|
|
385
|
+
// ...this.globalVendorArgs,
|
|
386
|
+
},
|
|
387
|
+
],
|
|
388
|
+
}));
|
|
389
|
+
}
|
|
390
|
+
catch (error) {
|
|
391
|
+
const msg = ((_e = (_d = (_c = error === null || error === void 0 ? void 0 : error.response) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.response) === null || _e === void 0 ? void 0 : _e.message) ||
|
|
392
|
+
(error === null || error === void 0 ? void 0 : error.message) ||
|
|
393
|
+
"Unknown error";
|
|
394
|
+
console.error(`[readMessage Error] ${msg}`);
|
|
395
|
+
throw new Error(msg);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
376
398
|
}
|
|
377
399
|
exports.SenderMessage = SenderMessage;
|
package/package.json
CHANGED