@gamastudio/sendwave-provider 0.0.21 → 0.0.22

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.
@@ -8,7 +8,7 @@ export interface ParsedMessage {
8
8
  media?: string;
9
9
  caption?: string;
10
10
  remoteJid: string;
11
- remoteJidAlt: string;
11
+ messageId?: string;
12
12
  originalPayload: {
13
13
  key: any;
14
14
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamastudio/sendwave-provider",
3
- "version": "0.0.21",
3
+ "version": "0.0.22",
4
4
  "description": "Librería para interactuar con Sendwave usando configuración dinámica.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -27,7 +27,7 @@ class SendWaveCore extends node_events_1.EventEmitter {
27
27
  res.end("Media handler not implemented yet");
28
28
  };
29
29
  this.incomingMsg = (req, res) => {
30
- var _a, _b, _c, _d, _e;
30
+ var _a, _b;
31
31
  try {
32
32
  const { body } = req;
33
33
  if (!["messages.upsert", "send.message"].includes(body.event)) {
@@ -40,16 +40,18 @@ class SendWaveCore extends node_events_1.EventEmitter {
40
40
  if (!(data === null || data === void 0 ? void 0 : data.fromMe)) {
41
41
  // Emit message event for queue flow system integration
42
42
  this.emit("user-message", data);
43
- if (this.globalVendorArgs.readMessages)
43
+ if (this.globalVendorArgs.readMessages &&
44
+ ((_a = data.messageId) === null || _a === void 0 ? void 0 : _a.trim()) &&
45
+ data.remoteJid.includes("@"))
44
46
  this.sender
45
47
  .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
+ from: data.remoteJid,
49
+ messageId: data.messageId,
48
50
  })
49
- .catch((err) => {
50
- console.error("[AutoRead Error]", (err === null || err === void 0 ? void 0 : err.message) || err);
51
+ .catch((_) => {
52
+ return res.end("Message queued");
51
53
  });
52
- if ((_e = this.globalVendorArgs.message) === null || _e === void 0 ? void 0 : _e.mergeMessage) {
54
+ if ((_b = this.globalVendorArgs.message) === null || _b === void 0 ? void 0 : _b.mergeMessage) {
53
55
  this.bufferMessage(data);
54
56
  }
55
57
  else {
@@ -282,6 +282,9 @@ class SendWaveProvider extends bot_1.ProviderClass {
282
282
  initVendor() {
283
283
  const vendor = new core_1.SendWaveCore(this.globalVendorArgs.port, this.queue, this.globalVendorArgs);
284
284
  this.vendor = vendor;
285
+ // Relay events from vendor to provider
286
+ this.vendor.on("user-message", (data) => this.emit("user-message", data));
287
+ this.vendor.on("flow-message", (data) => this.emit("flow-message", data));
285
288
  return Promise.resolve(this.vendor);
286
289
  }
287
290
  async afterHttpServerInit() {
@@ -71,15 +71,17 @@ class SenderMessage {
71
71
  async sendText(data) {
72
72
  var _a, _b, _c;
73
73
  try {
74
- await this.sendPresence({
75
- from: data.from,
76
- presence: "composing",
77
- delay: data.delay || 2000,
78
- });
74
+ // try {
75
+ // await this.sendPresence({
76
+ // from: data.from,
77
+ // presence: "composing",
78
+ // });
79
+ // } catch (_) {}
79
80
  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}`, {
81
+ delay: data.delay || 2000,
82
+ ...this.globalVendorArgs,
80
83
  number: data.from,
81
84
  text: data.text,
82
- ...this.globalVendorArgs,
83
85
  }));
84
86
  }
85
87
  catch (e) {
@@ -278,14 +280,16 @@ class SenderMessage {
278
280
  detectorMedia_1.detectorMedia.updateLimits(this.globalVendorArgs.payloadLimits.media);
279
281
  }
280
282
  const { media } = await detectorMedia_1.detectorMedia.processMedia(data.url);
281
- await this.sendPresence({
282
- from: data.from,
283
- presence: "recording",
284
- delay: data.delay || 2000,
285
- });
283
+ // try {
284
+ // await this.sendPresence({
285
+ // from: data.from,
286
+ // presence: "recording",
287
+ // });
288
+ // } catch (error) {}
286
289
  return await ((_c = this.sendwaveApi) === null || _c === void 0 ? void 0 : _c.post(`/message/sendWhatsAppAudio/${(_d = this.globalVendorArgs) === null || _d === void 0 ? void 0 : _d.name}`, {
287
290
  number: data.from,
288
291
  audio: media,
292
+ delay: data.delay || 2000,
289
293
  ...this.globalVendorArgs,
290
294
  }));
291
295
  }
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseIncomingMsg = parseIncomingMsg;
4
- const bot_1 = require("@builderbot/bot"); // Asegúrate de importar utils correctamente
5
4
  function parseIncomingMsg(payload) {
6
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
7
5
  try {
8
6
  const msg = payload.data;
9
7
  if (msg.messageType === "reactionMessage")
@@ -12,88 +10,21 @@ function parseIncomingMsg(payload) {
12
10
  return null;
13
11
  }
14
12
  // if (msg.key.fromMe) return null
15
- const fromMe = msg.key.fromMe;
16
- const remoteJid = msg.key.remoteJidAlt || "";
17
- const remoteJidAlt = msg.key.remoteJidAlt;
18
- const from = msg.key.remoteJid.includes("lid")
19
- ? msg.key.remoteJid
20
- : msg.key.remoteJid.split("@")[0].split(":")[0];
21
- // const from = (msg.key?.remoteJid || "")
13
+ const messageId = msg.messageId || "";
14
+ const fromMe = msg.fromMe;
15
+ const remoteJid = msg.remoteJid || "";
16
+ const from = msg.from;
17
+ // const from = (msg?.remoteJid || "")
22
18
  const to = payload.instance || "";
23
- const name = msg.pushName;
24
- const messageContent = msg.message || {};
25
- const messageType = msg.messageType || Object.keys(messageContent)[0];
26
- let body = "";
27
- let type = messageType;
28
- let media;
29
- let caption;
30
- // 🎯 Primero detección especial de eventos por tipo de mensaje
31
- if (messageContent.locationMessage) {
32
- body = bot_1.utils.generateRefProvider("_event_location_");
33
- type = "locationMessage";
34
- }
35
- else if (messageContent.orderMessage) {
36
- body = bot_1.utils.generateRefProvider("_event_order_");
37
- type = "orderMessage";
38
- }
39
- else if (messageContent.videoMessage) {
40
- body = bot_1.utils.generateRefProvider("_event_media_");
41
- type = "videoMessage";
42
- media = (_a = messageContent.videoMessage) === null || _a === void 0 ? void 0 : _a.url;
43
- caption = ((_b = messageContent.videoMessage) === null || _b === void 0 ? void 0 : _b.caption) || "";
44
- }
45
- else if (messageContent.stickerMessage) {
46
- body = bot_1.utils.generateRefProvider("_event_media_");
47
- type = "stickerMessage";
48
- media = (_c = messageContent.stickerMessage) === null || _c === void 0 ? void 0 : _c.url;
49
- }
50
- else if (messageContent.imageMessage) {
51
- body = bot_1.utils.generateRefProvider("_event_media_");
52
- type = "imageMessage";
53
- media = (_d = messageContent.imageMessage) === null || _d === void 0 ? void 0 : _d.url;
54
- caption = ((_e = messageContent.imageMessage) === null || _e === void 0 ? void 0 : _e.caption) || "";
55
- }
56
- else if (messageContent.documentMessage ||
57
- messageContent.documentWithCaptionMessage) {
58
- body = bot_1.utils.generateRefProvider("_event_document_");
59
- type = "documentMessage";
60
- media =
61
- ((_f = messageContent.documentMessage) === null || _f === void 0 ? void 0 : _f.url) ||
62
- ((_g = messageContent.documentWithCaptionMessage) === null || _g === void 0 ? void 0 : _g.url);
63
- caption =
64
- ((_h = messageContent.documentMessage) === null || _h === void 0 ? void 0 : _h.caption) ||
65
- ((_j = messageContent.documentWithCaptionMessage) === null || _j === void 0 ? void 0 : _j.caption) ||
66
- "";
67
- }
68
- else if (messageContent.audioMessage) {
69
- body = bot_1.utils.generateRefProvider("_event_voice_note_");
70
- type = "audioMessage";
71
- media = (_k = messageContent.audioMessage) === null || _k === void 0 ? void 0 : _k.url;
72
- }
73
- else {
74
- // 🎯 Si no es media especial, hacer parsing normal por tipo
75
- switch (type) {
76
- case "conversation":
77
- body = messageContent.conversation || "";
78
- break;
79
- case "buttonsResponseMessage":
80
- body = ((_l = messageContent.buttonsResponseMessage) === null || _l === void 0 ? void 0 : _l.selectedButtonId) || "";
81
- break;
82
- case "listResponseMessage":
83
- body = ((_m = messageContent.listResponseMessage) === null || _m === void 0 ? void 0 : _m.title) || "";
84
- break;
85
- case "listMessage":
86
- body =
87
- `${(_o = messageContent.listMessage) === null || _o === void 0 ? void 0 : _o.title}${((_p = messageContent.listMessage) === null || _p === void 0 ? void 0 : _p.title) ? "\n" : ""}${(_q = messageContent.listMessage) === null || _q === void 0 ? void 0 : _q.description}` || "";
88
- break;
89
- default:
90
- body = "Tipo de mensaje no soportado aún";
91
- }
92
- }
19
+ const name = msg.name;
20
+ const body = msg.body;
21
+ const type = msg.type;
22
+ const media = msg.media;
23
+ const caption = msg.caption;
93
24
  return {
94
25
  fromMe,
95
26
  remoteJid,
96
- remoteJidAlt,
27
+ messageId,
97
28
  from,
98
29
  to,
99
30
  name,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamastudio/sendwave-provider",
3
- "version": "0.0.21",
3
+ "version": "0.0.22",
4
4
  "description": "Librería para interactuar con Sendwave usando configuración dinámica.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",