@peopl-health/nexus 4.1.3 → 4.1.5

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.
@@ -122,7 +122,7 @@ class TwilioProvider extends MessageProvider {
122
122
  const sends = chunks ? chunks.map(body => ({ ...messageParams, body })) : [messageParams];
123
123
 
124
124
  let parentId = messageData.parentMessageId || null;
125
- if (!parentId && !messageData._skipStorage && this.messageStorage?.savePendingMessage) {
125
+ if (!parentId && this.messageStorage?.savePendingMessage) {
126
126
  const pending = await this.messageStorage.savePendingMessage({
127
127
  ...messageData, code: formattedCode, from: formattedFrom,
128
128
  provider: 'twilio', timestamp: new Date(), fromMe: true,
@@ -12,7 +12,6 @@ async function recordDeliveryAttempt({
12
12
 
13
13
  let targetId = messageId;
14
14
  if (!targetId) {
15
- if (messageData?._skipStorage) return null;
16
15
  if (!sid) return null;
17
16
  const msgDoc = await Message.findOne({ message_id: sid }, '_id').lean();
18
17
  if (!msgDoc) {
@@ -22,10 +22,7 @@ async function updateMessageStatus(messageSid, status, errorCode = null, errorMe
22
22
  };
23
23
 
24
24
  let updated = await Message.findOneAndUpdate(
25
- { $or: [
26
- { message_id: messageSid, 'statusInfo.recoveryMessageId': { $exists: false } },
27
- { 'statusInfo.recoveryMessageId': messageSid }
28
- ]},
25
+ { message_id: messageSid },
29
26
  { $set: updateData },
30
27
  { new: true }
31
28
  );
@@ -114,12 +111,7 @@ async function handleStatusCallback(twilioStatusData, { eventBus } = {}) {
114
111
 
115
112
  async function getMessageStatus(messageSid) {
116
113
  try {
117
- return await Message.findOne({
118
- $or: [
119
- { message_id: messageSid },
120
- { 'statusInfo.recoveryMessageId': messageSid }
121
- ]
122
- })
114
+ return await Message.findOne({ message_id: messageSid })
123
115
  .select('statusInfo message_id numero body')
124
116
  .lean();
125
117
  } catch (error) {
@@ -56,7 +56,7 @@ class TemplateApprovalJob extends BaseJob {
56
56
  }
57
57
 
58
58
  const recovery = message.statusInfo || {};
59
- if (recovery.recoveryMessageId || recovery.recoveryRejectedAt) {
59
+ if (recovery.recoverySentAt || recovery.recoveryRejectedAt) {
60
60
  logger.info('[TemplateApprovalJob] Recovery already completed', { messageId, templateSid });
61
61
  return { success: false, reason: 'already_completed' };
62
62
  }
@@ -132,17 +132,7 @@ class TemplateApprovalJob extends BaseJob {
132
132
  throw sendErr;
133
133
  }
134
134
 
135
- try {
136
- await Message.updateOne(
137
- { _id: message._id },
138
- { $set: { 'statusInfo.recoveryMessageId': recoveryMessageId } }
139
- );
140
- logger.info('[TemplateApprovalJob] Recovered', { originalMessageSid, recoveryMessageId, templateSid });
141
- } catch (dbErr) {
142
- logger.error('[TemplateApprovalJob] CRITICAL: send succeeded but DB update failed', {
143
- messageId: message._id, templateSid, recoveryMessageId, error: dbErr.message
144
- });
145
- }
135
+ logger.info('[TemplateApprovalJob] Recovered', { originalMessageSid, recoveryMessageId, templateSid });
146
136
 
147
137
  await recordDeliveryAttempt({
148
138
  messageData: { contentSid: templateSid },
@@ -85,7 +85,6 @@ const messageSchema = new mongoose.Schema({
85
85
  recoveryTemplateSid: { type: String, default: null },
86
86
  recoveryStartedAt: { type: Date, default: null },
87
87
  recoverySentAt: { type: Date, default: null },
88
- recoveryMessageId: { type: String, default: null },
89
88
  recoveryRejectedAt: { type: Date, default: null },
90
89
  latestDeliveryStatus: {
91
90
  type: String,
@@ -111,7 +110,6 @@ messageSchema.index({ nombre_whatsapp: 1, createdAt: -1 }, { name: 'nombre_whats
111
110
 
112
111
  messageSchema.index({ createdAt: -1 }, { name: 'global_sort_idx' });
113
112
 
114
- messageSchema.index({ 'statusInfo.recoveryMessageId': 1 }, { name: 'recovery_message_id_idx', sparse: true });
115
113
  messageSchema.index({ message_id: 1 }, { name: 'message_id_idx', sparse: true });
116
114
 
117
115
  messageSchema.index({ triggeredBy: 1, createdAt: -1 }, { name: 'triggered_by_idx', sparse: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peopl-health/nexus",
3
- "version": "4.1.3",
3
+ "version": "4.1.5",
4
4
  "description": "Core messaging and assistant library for WhatsApp communication platforms",
5
5
  "keywords": [
6
6
  "whatsapp",