@@ -1117,9 +1117,20 @@ export class BaileysStartupService extends ChannelStartupService {
11171117 await this . sendDataWebhook ( Events . MESSAGES_EDITED , editedMessage ) ;
11181118 const oldMessage = await this . getMessage ( editedMessage . key , true ) ;
11191119 if ( ( oldMessage as any ) ?. id ) {
1120- const editedMessageTimestamp = Long . isLong ( editedMessage ?. timestampMs )
1121- ? Math . floor ( editedMessage . timestampMs . toNumber ( ) / 1000 )
1122- : Math . floor ( ( editedMessage . timestampMs as number ) / 1000 ) ;
1120+ let editedMessageTimestamp : number ;
1121+ if ( Long . isLong ( editedMessage ?. timestampMs ) ) {
1122+ editedMessageTimestamp = Math . floor ( editedMessage . timestampMs . toNumber ( ) / 1000 ) ;
1123+ } else if (
1124+ editedMessage ?. timestampMs &&
1125+ typeof editedMessage . timestampMs === 'object' &&
1126+ editedMessage . timestampMs &&
1127+ 'low' in editedMessage . timestampMs &&
1128+ 'high' in editedMessage . timestampMs
1129+ ) {
1130+ editedMessageTimestamp = Math . floor ( Long . fromValue ( editedMessage . timestampMs ) . toNumber ( ) / 1000 ) ;
1131+ } else {
1132+ editedMessageTimestamp = Math . floor ( ( editedMessage ?. timestampMs as number ) / 1000 ) ;
1133+ }
11231134
11241135 await this . prismaRepository . message . update ( {
11251136 where : { id : ( oldMessage as any ) . id } ,
@@ -1498,7 +1509,11 @@ export class BaileysStartupService extends ChannelStartupService {
14981509 ` ) as any [ ] ;
14991510 findMessage = messages [ 0 ] || null ;
15001511
1501- if ( findMessage ) message . messageId = findMessage . id ;
1512+ if ( ! findMessage ?. id ) {
1513+ this . logger . warn ( `Original message not found for update. Skipping. Key: ${ JSON . stringify ( key ) } ` ) ;
1514+ continue ;
1515+ }
1516+ message . messageId = findMessage . id ;
15021517 }
15031518
15041519 if ( update . message === null && update . status === undefined ) {
@@ -4357,6 +4372,18 @@ export class BaileysStartupService extends ChannelStartupService {
43574372 return obj . toNumber ( ) ;
43584373 }
43594374
4375+ // Handle Long-like objects that aren't detected by Long.isLong()
4376+ if (
4377+ obj &&
4378+ typeof obj === 'object' &&
4379+ 'low' in obj &&
4380+ 'high' in obj &&
4381+ typeof obj . low === 'number' &&
4382+ typeof obj . high === 'number'
4383+ ) {
4384+ return Long . fromValue ( obj ) . toNumber ( ) ;
4385+ }
4386+
43604387 if ( Array . isArray ( obj ) ) {
43614388 return obj . map ( ( item ) => this . convertLongToNumber ( item ) ) ;
43624389 }
@@ -4378,6 +4405,23 @@ export class BaileysStartupService extends ChannelStartupService {
43784405 const contentType = getContentType ( message . message ) ;
43794406 const contentMsg = message ?. message [ contentType ] as any ;
43804407
4408+ // Convert messageTimestamp to number properly
4409+ let messageTimestamp : number ;
4410+ if ( Long . isLong ( message . messageTimestamp ) ) {
4411+ messageTimestamp = message . messageTimestamp . toNumber ( ) ;
4412+ } else if (
4413+ message . messageTimestamp &&
4414+ typeof message . messageTimestamp === 'object' &&
4415+ message . messageTimestamp &&
4416+ 'low' in message . messageTimestamp &&
4417+ 'high' in message . messageTimestamp
4418+ ) {
4419+ // Handle Long-like objects that aren't detected by Long.isLong()
4420+ messageTimestamp = Long . fromValue ( message . messageTimestamp ) . toNumber ( ) ;
4421+ } else {
4422+ messageTimestamp = ( message . messageTimestamp as number ) || Date . now ( ) ;
4423+ }
4424+
43814425 const messageRaw = {
43824426 key : message . key , // Save key exactly as it comes from Baileys
43834427 pushName :
@@ -4389,9 +4433,7 @@ export class BaileysStartupService extends ChannelStartupService {
43894433 message : this . convertLongToNumber ( { ...message . message } ) ,
43904434 contextInfo : this . convertLongToNumber ( contentMsg ?. contextInfo ) ,
43914435 messageType : contentType || 'unknown' ,
4392- messageTimestamp : Long . isLong ( message . messageTimestamp )
4393- ? message . messageTimestamp . toNumber ( )
4394- : ( message . messageTimestamp as number ) ,
4436+ messageTimestamp,
43954437 instanceId : this . instanceId ,
43964438 source : getDevice ( message . key . id ) ,
43974439 } ;
@@ -4561,8 +4603,8 @@ export class BaileysStartupService extends ChannelStartupService {
45614603 return response ;
45624604 }
45634605
4564- public async baileysAssertSessions ( jids : string [ ] , force : boolean ) {
4565- const response = await this . client . assertSessions ( jids , force ) ;
4606+ public async baileysAssertSessions ( jids : string [ ] ) {
4607+ const response = await this . client . assertSessions ( jids ) ;
45664608
45674609 return response ;
45684610 }
0 commit comments