@neelegirl/baileys 1.5.2 → 1.5.4
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/README.md +26 -18
- package/WAProto/GenerateStatics.sh +3 -0
- package/WAProto/WAProto.proto +291 -665
- package/WAProto/fix-imports.js +29 -0
- package/WAProto/index.d.ts +2297 -48040
- package/WAProto/index.js +45500 -140101
- package/engine-requirements.js +10 -0
- package/lib/Defaults/index.d.ts +58 -64
- package/lib/Defaults/index.d.ts.map +1 -0
- package/lib/Defaults/index.js +74 -96
- package/lib/Defaults/index.js.map +1 -0
- package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
- package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
- package/lib/Signal/Group/ciphertext-message.js +12 -0
- package/lib/Signal/Group/ciphertext-message.js.map +1 -0
- package/lib/Signal/Group/group-session-builder.d.ts +15 -0
- package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
- package/lib/Signal/Group/group-session-builder.js +30 -0
- package/lib/Signal/Group/group-session-builder.js.map +1 -0
- package/lib/Signal/Group/group_cipher.d.ts +17 -0
- package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
- package/lib/Signal/Group/group_cipher.js +82 -0
- package/lib/Signal/Group/group_cipher.js.map +1 -0
- package/lib/Signal/Group/index.d.ts +12 -0
- package/lib/Signal/Group/index.d.ts.map +1 -0
- package/lib/Signal/Group/index.js +12 -0
- package/lib/Signal/Group/index.js.map +1 -0
- package/lib/Signal/Group/keyhelper.d.ts +11 -0
- package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
- package/lib/Signal/Group/keyhelper.js +18 -0
- package/lib/Signal/Group/keyhelper.js.map +1 -0
- package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
- package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
- package/lib/Signal/Group/sender-chain-key.js +26 -0
- package/lib/Signal/Group/sender-chain-key.js.map +1 -0
- package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
- package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
- package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
- package/lib/Signal/Group/sender-key-message.d.ts +19 -0
- package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-message.js +66 -0
- package/lib/Signal/Group/sender-key-message.js.map +1 -0
- package/lib/Signal/Group/sender-key-name.d.ts +18 -0
- package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-name.js +48 -0
- package/lib/Signal/Group/sender-key-name.js.map +1 -0
- package/lib/Signal/Group/sender-key-record.d.ts +31 -0
- package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-record.js +41 -0
- package/lib/Signal/Group/sender-key-record.js.map +1 -0
- package/lib/Signal/Group/sender-key-state.d.ts +39 -0
- package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-state.js +84 -0
- package/lib/Signal/Group/sender-key-state.js.map +1 -0
- package/lib/Signal/Group/sender-message-key.d.ts +12 -0
- package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
- package/lib/Signal/{WASignalGroup/sender_message_key.js → Group/sender-message-key.js} +3 -16
- package/lib/Signal/Group/sender-message-key.js.map +1 -0
- package/lib/Signal/libsignal.d.ts +5 -4
- package/lib/Signal/libsignal.d.ts.map +1 -0
- package/lib/Signal/libsignal.js +292 -112
- package/lib/Signal/libsignal.js.map +1 -0
- package/lib/Signal/lid-mapping.d.ts +23 -0
- package/lib/Signal/lid-mapping.d.ts.map +1 -0
- package/lib/Signal/lid-mapping.js +171 -0
- package/lib/Signal/lid-mapping.js.map +1 -0
- package/lib/Socket/Client/index.d.ts +3 -2
- package/lib/Socket/Client/index.d.ts.map +1 -0
- package/lib/Socket/Client/index.js +3 -22
- package/lib/Socket/Client/index.js.map +1 -0
- package/lib/Socket/Client/types.d.ts +15 -15
- package/lib/Socket/Client/types.d.ts.map +1 -0
- package/lib/Socket/Client/types.js +8 -15
- package/lib/Socket/Client/types.js.map +1 -0
- package/lib/Socket/Client/websocket.d.ts +12 -12
- package/lib/Socket/Client/websocket.d.ts.map +1 -0
- package/lib/Socket/Client/websocket.js +24 -36
- package/lib/Socket/Client/websocket.js.map +1 -0
- package/lib/Socket/business.d.ts +178 -177
- package/lib/Socket/business.d.ts.map +1 -0
- package/lib/Socket/business.js +179 -71
- package/lib/Socket/business.js.map +1 -0
- package/lib/Socket/chats.d.ts +93 -93
- package/lib/Socket/chats.d.ts.map +1 -0
- package/lib/Socket/chats.js +474 -625
- package/lib/Socket/chats.js.map +1 -0
- package/lib/Socket/communities.d.ts +83 -62
- package/lib/Socket/communities.d.ts.map +1 -0
- package/lib/Socket/communities.js +412 -414
- package/lib/Socket/communities.js.map +1 -0
- package/lib/Socket/groups.d.ts +118 -112
- package/lib/Socket/groups.d.ts.map +1 -0
- package/lib/Socket/groups.js +146 -171
- package/lib/Socket/groups.js.map +1 -0
- package/lib/Socket/index.d.ts +222 -182
- package/lib/Socket/index.d.ts.map +1 -0
- package/lib/Socket/index.js +12 -17
- package/lib/Socket/index.js.map +1 -0
- package/lib/Socket/messages-recv.d.ts +165 -169
- package/lib/Socket/messages-recv.d.ts.map +1 -0
- package/lib/Socket/messages-recv.js +1185 -1721
- package/lib/Socket/messages-recv.js.map +1 -0
- package/lib/Socket/messages-send.d.ts +161 -159
- package/lib/Socket/messages-send.d.ts.map +1 -0
- package/lib/Socket/messages-send.js +650 -991
- package/lib/Socket/messages-send.js.map +1 -0
- package/lib/Socket/mex.d.ts +1 -0
- package/lib/Socket/mex.d.ts.map +1 -0
- package/lib/Socket/mex.js +4 -9
- package/lib/Socket/mex.js.map +1 -0
- package/lib/Socket/newsletter.d.ts +139 -139
- package/lib/Socket/newsletter.d.ts.map +1 -0
- package/lib/Socket/newsletter.js +153 -258
- package/lib/Socket/newsletter.js.map +1 -0
- package/lib/Socket/socket.d.ts +42 -36
- package/lib/Socket/socket.d.ts.map +1 -0
- package/lib/Socket/socket.js +623 -507
- package/lib/Socket/socket.js.map +1 -0
- package/lib/Types/Auth.d.ts +87 -96
- package/lib/Types/Auth.d.ts.map +1 -0
- package/lib/Types/Auth.js +2 -3
- package/lib/Types/Auth.js.map +1 -0
- package/lib/Types/Bussines.d.ts +25 -0
- package/lib/Types/Bussines.d.ts.map +1 -0
- package/lib/Types/Bussines.js +2 -0
- package/lib/Types/Bussines.js.map +1 -0
- package/lib/Types/Call.d.ts +13 -13
- package/lib/Types/Call.d.ts.map +1 -0
- package/lib/Types/Call.js +2 -3
- package/lib/Types/Call.js.map +1 -0
- package/lib/Types/Chat.d.ts +79 -94
- package/lib/Types/Chat.d.ts.map +1 -0
- package/lib/Types/Chat.js +8 -9
- package/lib/Types/Chat.js.map +1 -0
- package/lib/Types/Contact.d.ts +13 -9
- package/lib/Types/Contact.d.ts.map +1 -0
- package/lib/Types/Contact.js +2 -3
- package/lib/Types/Contact.js.map +1 -0
- package/lib/Types/Events.d.ts +152 -179
- package/lib/Types/Events.d.ts.map +1 -0
- package/lib/Types/Events.js +2 -3
- package/lib/Types/Events.js.map +1 -0
- package/lib/Types/GroupMetadata.d.ts +49 -48
- package/lib/Types/GroupMetadata.d.ts.map +1 -0
- package/lib/Types/GroupMetadata.js +2 -3
- package/lib/Types/GroupMetadata.js.map +1 -0
- package/lib/Types/Label.d.ts +13 -14
- package/lib/Types/Label.d.ts.map +1 -0
- package/lib/Types/Label.js +24 -30
- package/lib/Types/Label.js.map +1 -0
- package/lib/Types/LabelAssociation.d.ts +15 -20
- package/lib/Types/LabelAssociation.d.ts.map +1 -0
- package/lib/Types/LabelAssociation.js +6 -12
- package/lib/Types/LabelAssociation.js.map +1 -0
- package/lib/Types/Message.d.ts +234 -404
- package/lib/Types/Message.d.ts.map +1 -0
- package/lib/Types/Message.js +11 -13
- package/lib/Types/Message.js.map +1 -0
- package/lib/Types/Newsletter.d.ts +130 -104
- package/lib/Types/Newsletter.d.ts.map +1 -0
- package/lib/Types/Newsletter.js +31 -40
- package/lib/Types/Newsletter.js.map +1 -0
- package/lib/Types/Product.d.ts +58 -71
- package/lib/Types/Product.d.ts.map +1 -0
- package/lib/Types/Product.js +2 -3
- package/lib/Types/Product.js.map +1 -0
- package/lib/Types/Signal.d.ts +63 -55
- package/lib/Types/Signal.d.ts.map +1 -0
- package/lib/Types/Signal.js +2 -3
- package/lib/Types/Signal.js.map +1 -0
- package/lib/Types/Socket.d.ts +78 -65
- package/lib/Types/Socket.d.ts.map +1 -0
- package/lib/Types/Socket.js +3 -3
- package/lib/Types/Socket.js.map +1 -0
- package/lib/Types/State.d.ts +17 -19
- package/lib/Types/State.d.ts.map +1 -0
- package/lib/Types/State.js +13 -14
- package/lib/Types/State.js.map +1 -0
- package/lib/Types/USync.d.ts +8 -8
- package/lib/Types/USync.d.ts.map +1 -0
- package/lib/Types/USync.js +2 -3
- package/lib/Types/USync.js.map +1 -0
- package/lib/Types/index.d.ts +47 -61
- package/lib/Types/index.d.ts.map +1 -0
- package/lib/Types/index.js +26 -48
- package/lib/Types/index.js.map +1 -0
- package/lib/Utils/auth-utils.d.ts +8 -10
- package/lib/Utils/auth-utils.d.ts.map +1 -0
- package/lib/Utils/auth-utils.js +206 -154
- package/lib/Utils/auth-utils.js.map +1 -0
- package/lib/Utils/baileys-event-stream.d.ts +6 -7
- package/lib/Utils/baileys-event-stream.d.ts.map +1 -0
- package/lib/Utils/baileys-event-stream.js +29 -43
- package/lib/Utils/baileys-event-stream.js.map +1 -0
- package/lib/Utils/browser-utils.d.ts +4 -0
- package/lib/Utils/browser-utils.d.ts.map +1 -0
- package/lib/Utils/browser-utils.js +28 -0
- package/lib/Utils/browser-utils.js.map +1 -0
- package/lib/Utils/business.d.ts +14 -20
- package/lib/Utils/business.d.ts.map +1 -0
- package/lib/Utils/business.js +110 -134
- package/lib/Utils/business.js.map +1 -0
- package/lib/Utils/chat-utils.d.ts +57 -69
- package/lib/Utils/chat-utils.d.ts.map +1 -0
- package/lib/Utils/chat-utils.js +362 -380
- package/lib/Utils/chat-utils.js.map +1 -0
- package/lib/Utils/crypto.d.ts +30 -45
- package/lib/Utils/crypto.d.ts.map +1 -0
- package/lib/Utils/crypto.js +141 -178
- package/lib/Utils/crypto.js.map +1 -0
- package/lib/Utils/decode-wa-message.d.ts +42 -35
- package/lib/Utils/decode-wa-message.d.ts.map +1 -0
- package/lib/Utils/decode-wa-message.js +176 -150
- package/lib/Utils/decode-wa-message.js.map +1 -0
- package/lib/Utils/event-buffer.d.ts +12 -17
- package/lib/Utils/event-buffer.d.ts.map +1 -0
- package/lib/Utils/event-buffer.js +269 -286
- package/lib/Utils/event-buffer.js.map +1 -0
- package/lib/Utils/generics.d.ts +60 -99
- package/lib/Utils/generics.d.ts.map +1 -0
- package/lib/Utils/generics.js +244 -487
- package/lib/Utils/generics.js.map +1 -0
- package/lib/Utils/history.d.ts +18 -22
- package/lib/Utils/history.d.ts.map +1 -0
- package/lib/Utils/history.js +54 -80
- package/lib/Utils/history.js.map +1 -0
- package/lib/Utils/index.d.ts +20 -19
- package/lib/Utils/index.d.ts.map +1 -0
- package/lib/Utils/index.js +19 -39
- package/lib/Utils/index.js.map +1 -0
- package/lib/Utils/link-preview.d.ts +12 -14
- package/lib/Utils/link-preview.d.ts.map +1 -0
- package/lib/Utils/link-preview.js +40 -75
- package/lib/Utils/link-preview.js.map +1 -0
- package/lib/Utils/logger.d.ts +10 -11
- package/lib/Utils/logger.d.ts.map +1 -0
- package/lib/Utils/logger.js +3 -7
- package/lib/Utils/logger.js.map +1 -0
- package/lib/Utils/lt-hash.d.ts +12 -13
- package/lib/Utils/lt-hash.d.ts.map +1 -0
- package/lib/Utils/lt-hash.js +27 -37
- package/lib/Utils/lt-hash.js.map +1 -0
- package/lib/Utils/make-mutex.d.ts +6 -7
- package/lib/Utils/make-mutex.d.ts.map +1 -0
- package/lib/Utils/make-mutex.js +20 -29
- package/lib/Utils/make-mutex.js.map +1 -0
- package/lib/Utils/message-retry-manager.d.ts +82 -0
- package/lib/Utils/message-retry-manager.d.ts.map +1 -0
- package/lib/Utils/message-retry-manager.js +149 -0
- package/lib/Utils/message-retry-manager.js.map +1 -0
- package/lib/Utils/messages-media.d.ts +87 -102
- package/lib/Utils/messages-media.d.ts.map +1 -0
- package/lib/Utils/messages-media.js +427 -570
- package/lib/Utils/messages-media.js.map +1 -0
- package/lib/Utils/messages.d.ts +37 -64
- package/lib/Utils/messages.d.ts.map +1 -0
- package/lib/Utils/messages.js +511 -1270
- package/lib/Utils/messages.js.map +1 -0
- package/lib/Utils/noise-handler.d.ts +18 -18
- package/lib/Utils/noise-handler.d.ts.map +1 -0
- package/lib/Utils/noise-handler.js +101 -109
- package/lib/Utils/noise-handler.js.map +1 -0
- package/lib/Utils/pre-key-manager.d.ts +28 -0
- package/lib/Utils/pre-key-manager.d.ts.map +1 -0
- package/lib/Utils/pre-key-manager.js +106 -0
- package/lib/Utils/pre-key-manager.js.map +1 -0
- package/lib/Utils/process-message.d.ts +25 -32
- package/lib/Utils/process-message.d.ts.map +1 -0
- package/lib/Utils/process-message.js +266 -281
- package/lib/Utils/process-message.js.map +1 -0
- package/lib/Utils/signal.d.ts +24 -32
- package/lib/Utils/signal.d.ts.map +1 -0
- package/lib/Utils/signal.js +98 -105
- package/lib/Utils/signal.js.map +1 -0
- package/lib/Utils/use-multi-file-auth-state.d.ts +5 -10
- package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
- package/lib/Utils/use-multi-file-auth-state.js +69 -186
- package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
- package/lib/Utils/validate-connection.d.ts +11 -13
- package/lib/Utils/validate-connection.d.ts.map +1 -0
- package/lib/Utils/validate-connection.js +124 -116
- package/lib/Utils/validate-connection.js.map +1 -0
- package/lib/WABinary/constants.d.ts +25 -27
- package/lib/WABinary/constants.d.ts.map +1 -0
- package/lib/WABinary/constants.js +1277 -1292
- package/lib/WABinary/constants.js.map +1 -0
- package/lib/WABinary/decode.d.ts +7 -9
- package/lib/WABinary/decode.d.ts.map +1 -0
- package/lib/WABinary/decode.js +139 -189
- package/lib/WABinary/decode.js.map +1 -0
- package/lib/WABinary/encode.d.ts +3 -3
- package/lib/WABinary/encode.d.ts.map +1 -0
- package/lib/WABinary/encode.js +105 -154
- package/lib/WABinary/encode.js.map +1 -0
- package/lib/WABinary/generic-utils.d.ts +14 -27
- package/lib/WABinary/generic-utils.d.ts.map +1 -0
- package/lib/WABinary/generic-utils.js +62 -102
- package/lib/WABinary/generic-utils.js.map +1 -0
- package/lib/WABinary/index.d.ts +6 -5
- package/lib/WABinary/index.d.ts.map +1 -0
- package/lib/WABinary/index.js +6 -25
- package/lib/WABinary/index.js.map +1 -0
- package/lib/WABinary/jid-utils.d.ts +41 -46
- package/lib/WABinary/jid-utils.d.ts.map +1 -0
- package/lib/WABinary/jid-utils.js +84 -80
- package/lib/WABinary/jid-utils.js.map +1 -0
- package/lib/WABinary/types.d.ts +10 -13
- package/lib/WABinary/types.d.ts.map +1 -0
- package/lib/WABinary/types.js +2 -3
- package/lib/WABinary/types.js.map +1 -0
- package/lib/WAM/BinaryInfo.d.ts +8 -15
- package/lib/WAM/BinaryInfo.d.ts.map +1 -0
- package/lib/WAM/BinaryInfo.js +7 -14
- package/lib/WAM/BinaryInfo.js.map +1 -0
- package/lib/WAM/constants.d.ts +30 -37
- package/lib/WAM/constants.d.ts.map +1 -0
- package/lib/WAM/constants.js +19193 -11711
- package/lib/WAM/constants.js.map +1 -0
- package/lib/WAM/encode.d.ts +3 -3
- package/lib/WAM/encode.d.ts.map +1 -0
- package/lib/WAM/encode.js +95 -110
- package/lib/WAM/encode.js.map +1 -0
- package/lib/WAM/index.d.ts +4 -3
- package/lib/WAM/index.d.ts.map +1 -0
- package/lib/WAM/index.js +4 -23
- package/lib/WAM/index.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +12 -19
- package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +19 -22
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +18 -26
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +11 -12
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +12 -20
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +11 -12
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +16 -24
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/index.d.ts +5 -6
- package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/index.js +5 -26
- package/lib/WAUSync/Protocols/index.js.map +1 -0
- package/lib/WAUSync/USyncQuery.d.ts +26 -28
- package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
- package/lib/WAUSync/USyncQuery.js +64 -62
- package/lib/WAUSync/USyncQuery.js.map +1 -0
- package/lib/WAUSync/USyncUser.d.ts +11 -10
- package/lib/WAUSync/USyncUser.d.ts.map +1 -0
- package/lib/WAUSync/USyncUser.js +12 -19
- package/lib/WAUSync/USyncUser.js.map +1 -0
- package/lib/WAUSync/index.d.ts +4 -3
- package/lib/WAUSync/index.d.ts.map +1 -0
- package/lib/WAUSync/index.js +4 -23
- package/lib/WAUSync/index.js.map +1 -0
- package/lib/index.d.ts +10 -11
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +11 -33
- package/lib/index.js.map +1 -0
- package/package.json +48 -43
- package/lib/Defaults/baileys-version.json +0 -3
- package/lib/Defaults/phonenumber-mcc.json +0 -223
- package/lib/Signal/WASignalGroup/GroupProtocol.js +0 -1909
- package/lib/Signal/WASignalGroup/ciphertext_message.js +0 -16
- package/lib/Signal/WASignalGroup/generate-proto.sh +0 -1
- package/lib/Signal/WASignalGroup/group.proto +0 -42
- package/lib/Signal/WASignalGroup/group_cipher.js +0 -120
- package/lib/Signal/WASignalGroup/group_session_builder.js +0 -46
- package/lib/Signal/WASignalGroup/index.js +0 -6
- package/lib/Signal/WASignalGroup/keyhelper.js +0 -21
- package/lib/Signal/WASignalGroup/protobufs.js +0 -3
- package/lib/Signal/WASignalGroup/queue_job.js +0 -69
- package/lib/Signal/WASignalGroup/readme.md +0 -6
- package/lib/Signal/WASignalGroup/sender_chain_key.js +0 -50
- package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +0 -78
- package/lib/Signal/WASignalGroup/sender_key_message.js +0 -92
- package/lib/Signal/WASignalGroup/sender_key_name.js +0 -70
- package/lib/Signal/WASignalGroup/sender_key_record.js +0 -56
- package/lib/Signal/WASignalGroup/sender_key_state.js +0 -129
- package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
- package/lib/Socket/Client/abstract-socket-client.js +0 -13
- package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
- package/lib/Socket/Client/mobile-socket-client.js +0 -65
- package/lib/Socket/registration.d.ts +0 -266
- package/lib/Socket/registration.js +0 -166
- package/lib/Socket/usync.d.ts +0 -37
- package/lib/Socket/usync.js +0 -83
- package/lib/Store/index.d.ts +0 -4
- package/lib/Store/index.js +0 -24
- package/lib/Store/make-cache-manager-store.d.ts +0 -14
- package/lib/Store/make-cache-manager-store.js +0 -90
- package/lib/Store/make-in-memory-store.d.ts +0 -123
- package/lib/Store/make-in-memory-store.js +0 -429
- package/lib/Store/make-ordered-dictionary.d.ts +0 -12
- package/lib/Store/make-ordered-dictionary.js +0 -86
- package/lib/Store/object-repository.d.ts +0 -10
- package/lib/Store/object-repository.js +0 -31
- package/lib/Types/MexUpdates.d.ts +0 -9
- package/lib/Types/MexUpdates.js +0 -18
- package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
- package/lib/Utils/use-mongo-file-auth-state.js +0 -84
- package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
- package/lib/Utils/use-single-file-auth-state.js +0 -80
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -69
- package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -9
- package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -30
|
@@ -1,17 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true })
|
|
8
|
-
|
|
9
|
-
const events_1 = __importDefault(require("events"))
|
|
10
|
-
const Types_1 = require("../Types")
|
|
11
|
-
const generics_1 = require("./generics")
|
|
12
|
-
const messages_1 = require("./messages")
|
|
13
|
-
const process_message_1 = require("./process-message")
|
|
14
|
-
|
|
1
|
+
import EventEmitter from 'events';
|
|
2
|
+
import { WAMessageStatus } from '../Types/index.js';
|
|
3
|
+
import { trimUndefined } from './generics.js';
|
|
4
|
+
import { updateMessageWithReaction, updateMessageWithReceipt } from './messages.js';
|
|
5
|
+
import { isRealMessage, shouldIncrementChatUnread } from './process-message.js';
|
|
15
6
|
const BUFFERABLE_EVENT = [
|
|
16
7
|
'messaging-history.set',
|
|
17
8
|
'chats.upsert',
|
|
@@ -22,107 +13,139 @@ const BUFFERABLE_EVENT = [
|
|
|
22
13
|
'messages.upsert',
|
|
23
14
|
'messages.update',
|
|
24
15
|
'messages.delete',
|
|
25
|
-
//'messages.poll',
|
|
26
16
|
'messages.reaction',
|
|
27
17
|
'message-receipt.update',
|
|
28
|
-
'groups.update'
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const BUFFERABLE_EVENT_SET = new Set(BUFFERABLE_EVENT)
|
|
33
|
-
|
|
18
|
+
'groups.update'
|
|
19
|
+
];
|
|
20
|
+
const BUFFERABLE_EVENT_SET = new Set(BUFFERABLE_EVENT);
|
|
34
21
|
/**
|
|
35
22
|
* The event buffer logically consolidates different events into a single event
|
|
36
23
|
* making the data processing more efficient.
|
|
37
|
-
* @param ev the baileys event emitter
|
|
38
24
|
*/
|
|
39
|
-
const makeEventBuffer = (logger) => {
|
|
40
|
-
const ev = new
|
|
41
|
-
const historyCache = new Set()
|
|
42
|
-
let data = makeBufferData()
|
|
43
|
-
let
|
|
25
|
+
export const makeEventBuffer = (logger) => {
|
|
26
|
+
const ev = new EventEmitter();
|
|
27
|
+
const historyCache = new Set();
|
|
28
|
+
let data = makeBufferData();
|
|
29
|
+
let isBuffering = false;
|
|
30
|
+
let bufferTimeout = null;
|
|
31
|
+
let bufferCount = 0;
|
|
32
|
+
const MAX_HISTORY_CACHE_SIZE = 10000; // Limit the history cache size to prevent memory bloat
|
|
33
|
+
const BUFFER_TIMEOUT_MS = 30000; // 30 seconds
|
|
44
34
|
// take the generic event and fire it as a baileys event
|
|
45
35
|
ev.on('event', (map) => {
|
|
46
36
|
for (const event in map) {
|
|
47
|
-
ev.emit(event, map[event])
|
|
37
|
+
ev.emit(event, map[event]);
|
|
48
38
|
}
|
|
49
|
-
})
|
|
39
|
+
});
|
|
50
40
|
function buffer() {
|
|
51
|
-
|
|
41
|
+
if (!isBuffering) {
|
|
42
|
+
logger.debug('Event buffer activated');
|
|
43
|
+
isBuffering = true;
|
|
44
|
+
bufferCount++;
|
|
45
|
+
// Auto-flush after a timeout to prevent infinite buffering
|
|
46
|
+
if (bufferTimeout) {
|
|
47
|
+
clearTimeout(bufferTimeout);
|
|
48
|
+
}
|
|
49
|
+
bufferTimeout = setTimeout(() => {
|
|
50
|
+
if (isBuffering) {
|
|
51
|
+
logger.warn('Buffer timeout reached, auto-flushing');
|
|
52
|
+
flush();
|
|
53
|
+
}
|
|
54
|
+
}, BUFFER_TIMEOUT_MS);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
bufferCount++;
|
|
58
|
+
}
|
|
52
59
|
}
|
|
53
|
-
function flush(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return false
|
|
60
|
+
function flush() {
|
|
61
|
+
if (!isBuffering) {
|
|
62
|
+
return false;
|
|
57
63
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
64
|
+
logger.debug({ bufferCount }, 'Flushing event buffer');
|
|
65
|
+
isBuffering = false;
|
|
66
|
+
bufferCount = 0;
|
|
67
|
+
// Clear timeout
|
|
68
|
+
if (bufferTimeout) {
|
|
69
|
+
clearTimeout(bufferTimeout);
|
|
70
|
+
bufferTimeout = null;
|
|
66
71
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
// Clear history cache if it exceeds the max size
|
|
73
|
+
if (historyCache.size > MAX_HISTORY_CACHE_SIZE) {
|
|
74
|
+
logger.debug({ cacheSize: historyCache.size }, 'Clearing history cache');
|
|
75
|
+
historyCache.clear();
|
|
76
|
+
}
|
|
77
|
+
const newData = makeBufferData();
|
|
78
|
+
const chatUpdates = Object.values(data.chatUpdates);
|
|
79
|
+
let conditionalChatUpdatesLeft = 0;
|
|
71
80
|
for (const update of chatUpdates) {
|
|
72
81
|
if (update.conditional) {
|
|
73
|
-
conditionalChatUpdatesLeft += 1
|
|
74
|
-
newData.chatUpdates[update.id] = update
|
|
75
|
-
delete data.chatUpdates[update.id]
|
|
82
|
+
conditionalChatUpdatesLeft += 1;
|
|
83
|
+
newData.chatUpdates[update.id] = update;
|
|
84
|
+
delete data.chatUpdates[update.id];
|
|
76
85
|
}
|
|
77
86
|
}
|
|
78
|
-
const consolidatedData = consolidateEvents(data)
|
|
87
|
+
const consolidatedData = consolidateEvents(data);
|
|
79
88
|
if (Object.keys(consolidatedData).length) {
|
|
80
|
-
ev.emit('event', consolidatedData)
|
|
89
|
+
ev.emit('event', consolidatedData);
|
|
81
90
|
}
|
|
82
|
-
data = newData
|
|
83
|
-
logger.trace({ conditionalChatUpdatesLeft }, 'released buffered events')
|
|
84
|
-
return true
|
|
91
|
+
data = newData;
|
|
92
|
+
logger.trace({ conditionalChatUpdatesLeft }, 'released buffered events');
|
|
93
|
+
return true;
|
|
85
94
|
}
|
|
86
95
|
return {
|
|
87
96
|
process(handler) {
|
|
88
97
|
const listener = (map) => {
|
|
89
|
-
handler(map)
|
|
90
|
-
}
|
|
91
|
-
ev.on('event', listener)
|
|
98
|
+
handler(map);
|
|
99
|
+
};
|
|
100
|
+
ev.on('event', listener);
|
|
92
101
|
return () => {
|
|
93
|
-
ev.off('event', listener)
|
|
94
|
-
}
|
|
102
|
+
ev.off('event', listener);
|
|
103
|
+
};
|
|
95
104
|
},
|
|
96
105
|
emit(event, evData) {
|
|
97
|
-
if (
|
|
98
|
-
append(data, historyCache, event, evData, logger)
|
|
99
|
-
return true
|
|
106
|
+
if (isBuffering && BUFFERABLE_EVENT_SET.has(event)) {
|
|
107
|
+
append(data, historyCache, event, evData, logger);
|
|
108
|
+
return true;
|
|
100
109
|
}
|
|
101
|
-
return ev.emit('event', { [event]: evData })
|
|
110
|
+
return ev.emit('event', { [event]: evData });
|
|
102
111
|
},
|
|
103
112
|
isBuffering() {
|
|
104
|
-
return
|
|
113
|
+
return isBuffering;
|
|
105
114
|
},
|
|
106
115
|
buffer,
|
|
107
116
|
flush,
|
|
108
117
|
createBufferedFunction(work) {
|
|
109
118
|
return async (...args) => {
|
|
110
|
-
buffer()
|
|
119
|
+
buffer();
|
|
111
120
|
try {
|
|
112
|
-
const result = await work(...args)
|
|
113
|
-
|
|
121
|
+
const result = await work(...args);
|
|
122
|
+
// If this is the only buffer, flush after a small delay
|
|
123
|
+
if (bufferCount === 1) {
|
|
124
|
+
setTimeout(() => {
|
|
125
|
+
if (isBuffering && bufferCount === 1) {
|
|
126
|
+
flush();
|
|
127
|
+
}
|
|
128
|
+
}, 100); // Small delay to allow nested buffers
|
|
129
|
+
}
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
throw error;
|
|
114
134
|
}
|
|
115
135
|
finally {
|
|
116
|
-
|
|
136
|
+
bufferCount = Math.max(0, bufferCount - 1);
|
|
137
|
+
if (bufferCount === 0) {
|
|
138
|
+
// Auto-flush when no other buffers are active
|
|
139
|
+
setTimeout(flush, 100);
|
|
140
|
+
}
|
|
117
141
|
}
|
|
118
|
-
}
|
|
142
|
+
};
|
|
119
143
|
},
|
|
120
144
|
on: (...args) => ev.on(...args),
|
|
121
145
|
off: (...args) => ev.off(...args),
|
|
122
|
-
removeAllListeners: (...args) => ev.removeAllListeners(...args)
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
146
|
+
removeAllListeners: (...args) => ev.removeAllListeners(...args)
|
|
147
|
+
};
|
|
148
|
+
};
|
|
126
149
|
const makeBufferData = () => {
|
|
127
150
|
return {
|
|
128
151
|
historySets: {
|
|
@@ -139,342 +162,313 @@ const makeBufferData = () => {
|
|
|
139
162
|
contactUpdates: {},
|
|
140
163
|
messageUpserts: {},
|
|
141
164
|
messageUpdates: {},
|
|
142
|
-
//messagePollings: {},
|
|
143
165
|
messageReactions: {},
|
|
144
166
|
messageDeletes: {},
|
|
145
167
|
messageReceipts: {},
|
|
146
|
-
groupUpdates: {}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
var _a, _b, _c
|
|
168
|
+
groupUpdates: {}
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
function append(data, historyCache, event,
|
|
172
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
173
|
+
eventData, logger) {
|
|
153
174
|
switch (event) {
|
|
154
175
|
case 'messaging-history.set':
|
|
155
176
|
for (const chat of eventData.chats) {
|
|
156
|
-
const
|
|
177
|
+
const id = chat.id || '';
|
|
178
|
+
const existingChat = data.historySets.chats[id];
|
|
157
179
|
if (existingChat) {
|
|
158
|
-
existingChat.endOfHistoryTransferType = chat.endOfHistoryTransferType
|
|
180
|
+
existingChat.endOfHistoryTransferType = chat.endOfHistoryTransferType;
|
|
159
181
|
}
|
|
160
|
-
if (!existingChat && !historyCache.has(
|
|
161
|
-
data.historySets.chats[
|
|
162
|
-
historyCache.add(
|
|
163
|
-
absorbingChatUpdate(chat)
|
|
182
|
+
if (!existingChat && !historyCache.has(id)) {
|
|
183
|
+
data.historySets.chats[id] = chat;
|
|
184
|
+
historyCache.add(id);
|
|
185
|
+
absorbingChatUpdate(chat);
|
|
164
186
|
}
|
|
165
187
|
}
|
|
166
188
|
for (const contact of eventData.contacts) {
|
|
167
|
-
const existingContact = data.historySets.contacts[contact.id]
|
|
189
|
+
const existingContact = data.historySets.contacts[contact.id];
|
|
168
190
|
if (existingContact) {
|
|
169
|
-
Object.assign(existingContact,
|
|
191
|
+
Object.assign(existingContact, trimUndefined(contact));
|
|
170
192
|
}
|
|
171
193
|
else {
|
|
172
|
-
const historyContactId = `c:${contact.id}
|
|
173
|
-
const hasAnyName = contact.notify || contact.name || contact.verifiedName
|
|
194
|
+
const historyContactId = `c:${contact.id}`;
|
|
195
|
+
const hasAnyName = contact.notify || contact.name || contact.verifiedName;
|
|
174
196
|
if (!historyCache.has(historyContactId) || hasAnyName) {
|
|
175
|
-
data.historySets.contacts[contact.id] = contact
|
|
176
|
-
historyCache.add(historyContactId)
|
|
197
|
+
data.historySets.contacts[contact.id] = contact;
|
|
198
|
+
historyCache.add(historyContactId);
|
|
177
199
|
}
|
|
178
200
|
}
|
|
179
201
|
}
|
|
180
202
|
for (const message of eventData.messages) {
|
|
181
|
-
const key = stringifyMessageKey(message.key)
|
|
182
|
-
const existingMsg = data.historySets.messages[key]
|
|
203
|
+
const key = stringifyMessageKey(message.key);
|
|
204
|
+
const existingMsg = data.historySets.messages[key];
|
|
183
205
|
if (!existingMsg && !historyCache.has(key)) {
|
|
184
|
-
data.historySets.messages[key] = message
|
|
185
|
-
historyCache.add(key)
|
|
206
|
+
data.historySets.messages[key] = message;
|
|
207
|
+
historyCache.add(key);
|
|
186
208
|
}
|
|
187
209
|
}
|
|
188
|
-
data.historySets.empty = false
|
|
189
|
-
data.historySets.syncType = eventData.syncType
|
|
190
|
-
data.historySets.progress = eventData.progress
|
|
191
|
-
data.historySets.peerDataRequestSessionId = eventData.peerDataRequestSessionId
|
|
192
|
-
data.historySets.isLatest = eventData.isLatest || data.historySets.isLatest
|
|
193
|
-
break
|
|
210
|
+
data.historySets.empty = false;
|
|
211
|
+
data.historySets.syncType = eventData.syncType;
|
|
212
|
+
data.historySets.progress = eventData.progress;
|
|
213
|
+
data.historySets.peerDataRequestSessionId = eventData.peerDataRequestSessionId;
|
|
214
|
+
data.historySets.isLatest = eventData.isLatest || data.historySets.isLatest;
|
|
215
|
+
break;
|
|
194
216
|
case 'chats.upsert':
|
|
195
217
|
for (const chat of eventData) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
218
|
+
const id = chat.id || '';
|
|
219
|
+
let upsert = data.chatUpserts[id];
|
|
220
|
+
if (id && !upsert) {
|
|
221
|
+
upsert = data.historySets.chats[id];
|
|
199
222
|
if (upsert) {
|
|
200
|
-
logger.debug({ chatId:
|
|
223
|
+
logger.debug({ chatId: id }, 'absorbed chat upsert in chat set');
|
|
201
224
|
}
|
|
202
225
|
}
|
|
203
226
|
if (upsert) {
|
|
204
|
-
upsert = concatChats(upsert, chat)
|
|
227
|
+
upsert = concatChats(upsert, chat);
|
|
205
228
|
}
|
|
206
229
|
else {
|
|
207
|
-
upsert = chat
|
|
208
|
-
data.chatUpserts[
|
|
230
|
+
upsert = chat;
|
|
231
|
+
data.chatUpserts[id] = upsert;
|
|
209
232
|
}
|
|
210
|
-
absorbingChatUpdate(upsert)
|
|
211
|
-
if (data.chatDeletes.has(
|
|
212
|
-
data.chatDeletes.delete(
|
|
233
|
+
absorbingChatUpdate(upsert);
|
|
234
|
+
if (data.chatDeletes.has(id)) {
|
|
235
|
+
data.chatDeletes.delete(id);
|
|
213
236
|
}
|
|
214
237
|
}
|
|
215
|
-
break
|
|
238
|
+
break;
|
|
216
239
|
case 'chats.update':
|
|
217
240
|
for (const update of eventData) {
|
|
218
|
-
const chatId = update.id
|
|
219
|
-
const conditionMatches = update.conditional ? update.conditional(data) : true
|
|
241
|
+
const chatId = update.id;
|
|
242
|
+
const conditionMatches = update.conditional ? update.conditional(data) : true;
|
|
220
243
|
if (conditionMatches) {
|
|
221
|
-
delete update.conditional
|
|
244
|
+
delete update.conditional;
|
|
222
245
|
// if there is an existing upsert, merge the update into it
|
|
223
|
-
const upsert = data.historySets.chats[chatId] || data.chatUpserts[chatId]
|
|
246
|
+
const upsert = data.historySets.chats[chatId] || data.chatUpserts[chatId];
|
|
224
247
|
if (upsert) {
|
|
225
|
-
concatChats(upsert, update)
|
|
248
|
+
concatChats(upsert, update);
|
|
226
249
|
}
|
|
227
250
|
else {
|
|
228
251
|
// merge the update into the existing update
|
|
229
|
-
const chatUpdate = data.chatUpdates[chatId] || {}
|
|
230
|
-
data.chatUpdates[chatId] = concatChats(chatUpdate, update)
|
|
252
|
+
const chatUpdate = data.chatUpdates[chatId] || {};
|
|
253
|
+
data.chatUpdates[chatId] = concatChats(chatUpdate, update);
|
|
231
254
|
}
|
|
232
255
|
}
|
|
233
256
|
else if (conditionMatches === undefined) {
|
|
234
257
|
// condition yet to be fulfilled
|
|
235
|
-
data.chatUpdates[chatId] = update
|
|
258
|
+
data.chatUpdates[chatId] = update;
|
|
236
259
|
}
|
|
237
260
|
// otherwise -- condition not met, update is invalid
|
|
238
261
|
// if the chat has been updated
|
|
239
262
|
// ignore any existing chat delete
|
|
240
263
|
if (data.chatDeletes.has(chatId)) {
|
|
241
|
-
data.chatDeletes.delete(chatId)
|
|
264
|
+
data.chatDeletes.delete(chatId);
|
|
242
265
|
}
|
|
243
266
|
}
|
|
244
|
-
break
|
|
267
|
+
break;
|
|
245
268
|
case 'chats.delete':
|
|
246
269
|
for (const chatId of eventData) {
|
|
247
270
|
if (!data.chatDeletes.has(chatId)) {
|
|
248
|
-
data.chatDeletes.add(chatId)
|
|
271
|
+
data.chatDeletes.add(chatId);
|
|
249
272
|
}
|
|
250
273
|
// remove any prior updates & upserts
|
|
251
274
|
if (data.chatUpdates[chatId]) {
|
|
252
|
-
delete data.chatUpdates[chatId]
|
|
275
|
+
delete data.chatUpdates[chatId];
|
|
253
276
|
}
|
|
254
277
|
if (data.chatUpserts[chatId]) {
|
|
255
|
-
delete data.chatUpserts[chatId]
|
|
278
|
+
delete data.chatUpserts[chatId];
|
|
256
279
|
}
|
|
257
280
|
if (data.historySets.chats[chatId]) {
|
|
258
|
-
delete data.historySets.chats[chatId]
|
|
281
|
+
delete data.historySets.chats[chatId];
|
|
259
282
|
}
|
|
260
283
|
}
|
|
261
|
-
break
|
|
284
|
+
break;
|
|
262
285
|
case 'contacts.upsert':
|
|
263
286
|
for (const contact of eventData) {
|
|
264
|
-
let upsert = data.contactUpserts[contact.id]
|
|
287
|
+
let upsert = data.contactUpserts[contact.id];
|
|
265
288
|
if (!upsert) {
|
|
266
|
-
upsert = data.historySets.contacts[contact.id]
|
|
289
|
+
upsert = data.historySets.contacts[contact.id];
|
|
267
290
|
if (upsert) {
|
|
268
|
-
logger.debug({ contactId: contact.id }, 'absorbed contact upsert in contact set')
|
|
291
|
+
logger.debug({ contactId: contact.id }, 'absorbed contact upsert in contact set');
|
|
269
292
|
}
|
|
270
293
|
}
|
|
271
294
|
if (upsert) {
|
|
272
|
-
upsert = Object.assign(upsert,
|
|
295
|
+
upsert = Object.assign(upsert, trimUndefined(contact));
|
|
273
296
|
}
|
|
274
297
|
else {
|
|
275
|
-
upsert = contact
|
|
276
|
-
data.contactUpserts[contact.id] = upsert
|
|
298
|
+
upsert = contact;
|
|
299
|
+
data.contactUpserts[contact.id] = upsert;
|
|
277
300
|
}
|
|
278
301
|
if (data.contactUpdates[contact.id]) {
|
|
279
|
-
upsert = Object.assign(data.contactUpdates[contact.id],
|
|
280
|
-
delete data.contactUpdates[contact.id]
|
|
302
|
+
upsert = Object.assign(data.contactUpdates[contact.id], trimUndefined(contact));
|
|
303
|
+
delete data.contactUpdates[contact.id];
|
|
281
304
|
}
|
|
282
305
|
}
|
|
283
|
-
break
|
|
306
|
+
break;
|
|
284
307
|
case 'contacts.update':
|
|
285
|
-
const contactUpdates = eventData
|
|
308
|
+
const contactUpdates = eventData;
|
|
286
309
|
for (const update of contactUpdates) {
|
|
287
|
-
const id = update.id
|
|
310
|
+
const id = update.id;
|
|
288
311
|
// merge into prior upsert
|
|
289
|
-
const upsert = data.historySets.contacts[id] || data.contactUpserts[id]
|
|
312
|
+
const upsert = data.historySets.contacts[id] || data.contactUpserts[id];
|
|
290
313
|
if (upsert) {
|
|
291
|
-
Object.assign(upsert, update)
|
|
314
|
+
Object.assign(upsert, update);
|
|
292
315
|
}
|
|
293
316
|
else {
|
|
294
317
|
// merge into prior update
|
|
295
|
-
const contactUpdate = data.contactUpdates[id] || {}
|
|
296
|
-
data.contactUpdates[id] = Object.assign(contactUpdate, update)
|
|
318
|
+
const contactUpdate = data.contactUpdates[id] || {};
|
|
319
|
+
data.contactUpdates[id] = Object.assign(contactUpdate, update);
|
|
297
320
|
}
|
|
298
321
|
}
|
|
299
|
-
break
|
|
322
|
+
break;
|
|
300
323
|
case 'messages.upsert':
|
|
301
|
-
const { messages, type } = eventData
|
|
324
|
+
const { messages, type } = eventData;
|
|
302
325
|
for (const message of messages) {
|
|
303
|
-
const key = stringifyMessageKey(message.key)
|
|
304
|
-
let existing =
|
|
326
|
+
const key = stringifyMessageKey(message.key);
|
|
327
|
+
let existing = data.messageUpserts[key]?.message;
|
|
305
328
|
if (!existing) {
|
|
306
|
-
existing = data.historySets.messages[key]
|
|
329
|
+
existing = data.historySets.messages[key];
|
|
307
330
|
if (existing) {
|
|
308
|
-
logger.debug({ messageId: key }, 'absorbed message upsert in message set')
|
|
331
|
+
logger.debug({ messageId: key }, 'absorbed message upsert in message set');
|
|
309
332
|
}
|
|
310
333
|
}
|
|
311
334
|
if (existing) {
|
|
312
|
-
message.messageTimestamp = existing.messageTimestamp
|
|
335
|
+
message.messageTimestamp = existing.messageTimestamp;
|
|
313
336
|
}
|
|
314
337
|
if (data.messageUpdates[key]) {
|
|
315
|
-
logger.debug('absorbed prior message update in message upsert')
|
|
316
|
-
Object.assign(message, data.messageUpdates[key].update)
|
|
317
|
-
delete data.messageUpdates[key]
|
|
338
|
+
logger.debug('absorbed prior message update in message upsert');
|
|
339
|
+
Object.assign(message, data.messageUpdates[key].update);
|
|
340
|
+
delete data.messageUpdates[key];
|
|
318
341
|
}
|
|
319
342
|
if (data.historySets.messages[key]) {
|
|
320
|
-
data.historySets.messages[key] = message
|
|
343
|
+
data.historySets.messages[key] = message;
|
|
321
344
|
}
|
|
322
345
|
else {
|
|
323
346
|
data.messageUpserts[key] = {
|
|
324
347
|
message,
|
|
325
|
-
type: type === 'notify' ||
|
|
326
|
-
|
|
327
|
-
: type
|
|
328
|
-
}
|
|
348
|
+
type: type === 'notify' || data.messageUpserts[key]?.type === 'notify' ? 'notify' : type
|
|
349
|
+
};
|
|
329
350
|
}
|
|
330
351
|
}
|
|
331
|
-
break
|
|
352
|
+
break;
|
|
332
353
|
case 'messages.update':
|
|
333
|
-
const msgUpdates = eventData
|
|
354
|
+
const msgUpdates = eventData;
|
|
334
355
|
for (const { key, update } of msgUpdates) {
|
|
335
|
-
const keyStr = stringifyMessageKey(key)
|
|
336
|
-
const existing = data.historySets.messages[keyStr] ||
|
|
356
|
+
const keyStr = stringifyMessageKey(key);
|
|
357
|
+
const existing = data.historySets.messages[keyStr] || data.messageUpserts[keyStr]?.message;
|
|
337
358
|
if (existing) {
|
|
338
|
-
Object.assign(existing, update)
|
|
359
|
+
Object.assign(existing, update);
|
|
339
360
|
// if the message was received & read by us
|
|
340
361
|
// the chat counter must have been incremented
|
|
341
362
|
// so we need to decrement it
|
|
342
|
-
if (update.status ===
|
|
343
|
-
decrementChatReadCounterIfMsgDidUnread(existing)
|
|
363
|
+
if (update.status === WAMessageStatus.READ && !key.fromMe) {
|
|
364
|
+
decrementChatReadCounterIfMsgDidUnread(existing);
|
|
344
365
|
}
|
|
345
366
|
}
|
|
346
367
|
else {
|
|
347
|
-
const msgUpdate = data.messageUpdates[keyStr] || { key, update: {} }
|
|
348
|
-
Object.assign(msgUpdate.update, update)
|
|
349
|
-
data.messageUpdates[keyStr] = msgUpdate
|
|
368
|
+
const msgUpdate = data.messageUpdates[keyStr] || { key, update: {} };
|
|
369
|
+
Object.assign(msgUpdate.update, update);
|
|
370
|
+
data.messageUpdates[keyStr] = msgUpdate;
|
|
350
371
|
}
|
|
351
372
|
}
|
|
352
|
-
break
|
|
373
|
+
break;
|
|
353
374
|
case 'messages.delete':
|
|
354
|
-
const deleteData = eventData
|
|
375
|
+
const deleteData = eventData;
|
|
355
376
|
if ('keys' in deleteData) {
|
|
356
|
-
const { keys } = deleteData
|
|
377
|
+
const { keys } = deleteData;
|
|
357
378
|
for (const key of keys) {
|
|
358
|
-
const keyStr = stringifyMessageKey(key)
|
|
379
|
+
const keyStr = stringifyMessageKey(key);
|
|
359
380
|
if (!data.messageDeletes[keyStr]) {
|
|
360
|
-
data.messageDeletes[keyStr] = key
|
|
381
|
+
data.messageDeletes[keyStr] = key;
|
|
361
382
|
}
|
|
362
383
|
if (data.messageUpserts[keyStr]) {
|
|
363
|
-
delete data.messageUpserts[keyStr]
|
|
384
|
+
delete data.messageUpserts[keyStr];
|
|
364
385
|
}
|
|
365
386
|
if (data.messageUpdates[keyStr]) {
|
|
366
|
-
delete data.messageUpdates[keyStr]
|
|
387
|
+
delete data.messageUpdates[keyStr];
|
|
367
388
|
}
|
|
368
389
|
}
|
|
369
390
|
}
|
|
370
391
|
else {
|
|
371
392
|
// TODO: add support
|
|
372
393
|
}
|
|
373
|
-
break
|
|
374
|
-
// case 'messages.poll':
|
|
375
|
-
// const pollUpdates = eventData
|
|
376
|
-
// for(const { vote, pollUpdateMessageKey } of pollUpdates) {
|
|
377
|
-
// const keyStr = stringifyMessageKey(pollUpdateMessageKey)
|
|
378
|
-
// const existing = data.messagePollings[keyStr]
|
|
379
|
-
// if(existing) {
|
|
380
|
-
// messages_1.updateMessageWithPollUpdate(existing.message, pollUpdates)
|
|
381
|
-
// } else {
|
|
382
|
-
// data.messagePollings[keyStr] = data.messagePollings[keyStr]
|
|
383
|
-
// || { pollUpdateMessageKey, pollUpdates: [] }
|
|
384
|
-
// messages_1.updateMessageWithPollUpdate(data.messagePollings[keyStr], vote)
|
|
385
|
-
// }
|
|
386
|
-
// }
|
|
387
|
-
// break
|
|
394
|
+
break;
|
|
388
395
|
case 'messages.reaction':
|
|
389
|
-
const reactions = eventData
|
|
396
|
+
const reactions = eventData;
|
|
390
397
|
for (const { key, reaction } of reactions) {
|
|
391
|
-
const keyStr = stringifyMessageKey(key)
|
|
392
|
-
const existing = data.messageUpserts[keyStr]
|
|
398
|
+
const keyStr = stringifyMessageKey(key);
|
|
399
|
+
const existing = data.messageUpserts[keyStr];
|
|
393
400
|
if (existing) {
|
|
394
|
-
|
|
401
|
+
updateMessageWithReaction(existing.message, reaction);
|
|
395
402
|
}
|
|
396
403
|
else {
|
|
397
|
-
data.messageReactions[keyStr] = data.messageReactions[keyStr]
|
|
398
|
-
|
|
399
|
-
messages_1.updateMessageWithReaction(data.messageReactions[keyStr], reaction)
|
|
404
|
+
data.messageReactions[keyStr] = data.messageReactions[keyStr] || { key, reactions: [] };
|
|
405
|
+
updateMessageWithReaction(data.messageReactions[keyStr], reaction);
|
|
400
406
|
}
|
|
401
407
|
}
|
|
402
|
-
break
|
|
408
|
+
break;
|
|
403
409
|
case 'message-receipt.update':
|
|
404
|
-
const receipts = eventData
|
|
410
|
+
const receipts = eventData;
|
|
405
411
|
for (const { key, receipt } of receipts) {
|
|
406
|
-
const keyStr = stringifyMessageKey(key)
|
|
407
|
-
const existing = data.messageUpserts[keyStr]
|
|
412
|
+
const keyStr = stringifyMessageKey(key);
|
|
413
|
+
const existing = data.messageUpserts[keyStr];
|
|
408
414
|
if (existing) {
|
|
409
|
-
|
|
415
|
+
updateMessageWithReceipt(existing.message, receipt);
|
|
410
416
|
}
|
|
411
417
|
else {
|
|
412
|
-
data.messageReceipts[keyStr] = data.messageReceipts[keyStr]
|
|
413
|
-
|
|
414
|
-
messages_1.updateMessageWithReceipt(data.messageReceipts[keyStr], receipt)
|
|
418
|
+
data.messageReceipts[keyStr] = data.messageReceipts[keyStr] || { key, userReceipt: [] };
|
|
419
|
+
updateMessageWithReceipt(data.messageReceipts[keyStr], receipt);
|
|
415
420
|
}
|
|
416
421
|
}
|
|
417
|
-
break
|
|
422
|
+
break;
|
|
418
423
|
case 'groups.update':
|
|
419
|
-
const groupUpdates = eventData
|
|
424
|
+
const groupUpdates = eventData;
|
|
420
425
|
for (const update of groupUpdates) {
|
|
421
|
-
const id = update.id
|
|
422
|
-
const groupUpdate = data.groupUpdates[id] || {}
|
|
426
|
+
const id = update.id;
|
|
427
|
+
const groupUpdate = data.groupUpdates[id] || {};
|
|
423
428
|
if (!data.groupUpdates[id]) {
|
|
424
|
-
data.groupUpdates[id] = Object.assign(groupUpdate, update)
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
break
|
|
428
|
-
case 'communities.update':
|
|
429
|
-
const communityUpdates = eventData
|
|
430
|
-
console.log('community updates', communityUpdates )
|
|
431
|
-
for (const update of communityUpdates) {
|
|
432
|
-
const id = update.id
|
|
433
|
-
const communityUpdate = data.communityUpdates[id] || {}
|
|
434
|
-
if (!data.communityUpdates[id]) {
|
|
435
|
-
data.communityUpdates[id] = Object.assign(communityUpdate, update)
|
|
429
|
+
data.groupUpdates[id] = Object.assign(groupUpdate, update);
|
|
436
430
|
}
|
|
437
431
|
}
|
|
438
|
-
break
|
|
432
|
+
break;
|
|
439
433
|
default:
|
|
440
|
-
throw new Error(`"${event}" cannot be buffered`)
|
|
434
|
+
throw new Error(`"${event}" cannot be buffered`);
|
|
441
435
|
}
|
|
442
436
|
function absorbingChatUpdate(existing) {
|
|
443
|
-
const chatId = existing.id
|
|
444
|
-
const update = data.chatUpdates[chatId]
|
|
437
|
+
const chatId = existing.id || '';
|
|
438
|
+
const update = data.chatUpdates[chatId];
|
|
445
439
|
if (update) {
|
|
446
|
-
const conditionMatches = update.conditional ? update.conditional(data) : true
|
|
440
|
+
const conditionMatches = update.conditional ? update.conditional(data) : true;
|
|
447
441
|
if (conditionMatches) {
|
|
448
|
-
delete update.conditional
|
|
449
|
-
logger.debug({ chatId }, 'absorbed chat update in existing chat')
|
|
450
|
-
Object.assign(existing, concatChats(update, existing))
|
|
451
|
-
delete data.chatUpdates[chatId]
|
|
442
|
+
delete update.conditional;
|
|
443
|
+
logger.debug({ chatId }, 'absorbed chat update in existing chat');
|
|
444
|
+
Object.assign(existing, concatChats(update, existing));
|
|
445
|
+
delete data.chatUpdates[chatId];
|
|
452
446
|
}
|
|
453
447
|
else if (conditionMatches === false) {
|
|
454
|
-
logger.debug({ chatId }, 'chat update condition fail, removing')
|
|
455
|
-
delete data.chatUpdates[chatId]
|
|
448
|
+
logger.debug({ chatId }, 'chat update condition fail, removing');
|
|
449
|
+
delete data.chatUpdates[chatId];
|
|
456
450
|
}
|
|
457
451
|
}
|
|
458
452
|
}
|
|
459
453
|
function decrementChatReadCounterIfMsgDidUnread(message) {
|
|
460
454
|
// decrement chat unread counter
|
|
461
455
|
// if the message has already been marked read by us
|
|
462
|
-
const chatId = message.key.remoteJid
|
|
463
|
-
const chat = data.chatUpdates[chatId] || data.chatUpserts[chatId]
|
|
464
|
-
if (
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
logger.debug({ chatId: chat.id }, 'decrementing chat counter')
|
|
469
|
-
chat.unreadCount -= 1
|
|
456
|
+
const chatId = message.key.remoteJid;
|
|
457
|
+
const chat = data.chatUpdates[chatId] || data.chatUpserts[chatId];
|
|
458
|
+
if (isRealMessage(message) &&
|
|
459
|
+
shouldIncrementChatUnread(message) &&
|
|
460
|
+
typeof chat?.unreadCount === 'number' &&
|
|
461
|
+
chat.unreadCount > 0) {
|
|
462
|
+
logger.debug({ chatId: chat.id }, 'decrementing chat counter');
|
|
463
|
+
chat.unreadCount -= 1;
|
|
470
464
|
if (chat.unreadCount === 0) {
|
|
471
|
-
delete chat.unreadCount
|
|
465
|
+
delete chat.unreadCount;
|
|
472
466
|
}
|
|
473
467
|
}
|
|
474
468
|
}
|
|
475
469
|
}
|
|
476
470
|
function consolidateEvents(data) {
|
|
477
|
-
const map = {}
|
|
471
|
+
const map = {};
|
|
478
472
|
if (!data.historySets.empty) {
|
|
479
473
|
map['messaging-history.set'] = {
|
|
480
474
|
chats: Object.values(data.historySets.chats),
|
|
@@ -484,82 +478,71 @@ function consolidateEvents(data) {
|
|
|
484
478
|
progress: data.historySets.progress,
|
|
485
479
|
isLatest: data.historySets.isLatest,
|
|
486
480
|
peerDataRequestSessionId: data.historySets.peerDataRequestSessionId
|
|
487
|
-
}
|
|
481
|
+
};
|
|
488
482
|
}
|
|
489
|
-
const chatUpsertList = Object.values(data.chatUpserts)
|
|
483
|
+
const chatUpsertList = Object.values(data.chatUpserts);
|
|
490
484
|
if (chatUpsertList.length) {
|
|
491
|
-
map['chats.upsert'] = chatUpsertList
|
|
485
|
+
map['chats.upsert'] = chatUpsertList;
|
|
492
486
|
}
|
|
493
|
-
const chatUpdateList = Object.values(data.chatUpdates)
|
|
487
|
+
const chatUpdateList = Object.values(data.chatUpdates);
|
|
494
488
|
if (chatUpdateList.length) {
|
|
495
|
-
map['chats.update'] = chatUpdateList
|
|
489
|
+
map['chats.update'] = chatUpdateList;
|
|
496
490
|
}
|
|
497
|
-
const chatDeleteList = Array.from(data.chatDeletes)
|
|
491
|
+
const chatDeleteList = Array.from(data.chatDeletes);
|
|
498
492
|
if (chatDeleteList.length) {
|
|
499
|
-
map['chats.delete'] = chatDeleteList
|
|
493
|
+
map['chats.delete'] = chatDeleteList;
|
|
500
494
|
}
|
|
501
|
-
const messageUpsertList = Object.values(data.messageUpserts)
|
|
495
|
+
const messageUpsertList = Object.values(data.messageUpserts);
|
|
502
496
|
if (messageUpsertList.length) {
|
|
503
|
-
const type = messageUpsertList[0].type
|
|
497
|
+
const type = messageUpsertList[0].type;
|
|
504
498
|
map['messages.upsert'] = {
|
|
505
499
|
messages: messageUpsertList.map(m => m.message),
|
|
506
500
|
type
|
|
507
|
-
}
|
|
501
|
+
};
|
|
508
502
|
}
|
|
509
|
-
const messageUpdateList = Object.values(data.messageUpdates)
|
|
503
|
+
const messageUpdateList = Object.values(data.messageUpdates);
|
|
510
504
|
if (messageUpdateList.length) {
|
|
511
|
-
map['messages.update'] = messageUpdateList
|
|
505
|
+
map['messages.update'] = messageUpdateList;
|
|
512
506
|
}
|
|
513
|
-
const messageDeleteList = Object.values(data.messageDeletes)
|
|
507
|
+
const messageDeleteList = Object.values(data.messageDeletes);
|
|
514
508
|
if (messageDeleteList.length) {
|
|
515
|
-
map['messages.delete'] = { keys: messageDeleteList }
|
|
509
|
+
map['messages.delete'] = { keys: messageDeleteList };
|
|
516
510
|
}
|
|
517
|
-
|
|
518
|
-
// if(messagePollingList.length) {
|
|
519
|
-
// map['messages.poll'] = messagePollingList
|
|
520
|
-
// }
|
|
521
|
-
const messageReactionList = Object.values(data.messageReactions).flatMap(({ key, reactions }) => reactions.flatMap(reaction => ({ key, reaction })))
|
|
511
|
+
const messageReactionList = Object.values(data.messageReactions).flatMap(({ key, reactions }) => reactions.flatMap(reaction => ({ key, reaction })));
|
|
522
512
|
if (messageReactionList.length) {
|
|
523
|
-
map['messages.reaction'] = messageReactionList
|
|
513
|
+
map['messages.reaction'] = messageReactionList;
|
|
524
514
|
}
|
|
525
|
-
const messageReceiptList = Object.values(data.messageReceipts).flatMap(({ key, userReceipt }) => userReceipt.flatMap(receipt => ({ key, receipt })))
|
|
515
|
+
const messageReceiptList = Object.values(data.messageReceipts).flatMap(({ key, userReceipt }) => userReceipt.flatMap(receipt => ({ key, receipt })));
|
|
526
516
|
if (messageReceiptList.length) {
|
|
527
|
-
map['message-receipt.update'] = messageReceiptList
|
|
517
|
+
map['message-receipt.update'] = messageReceiptList;
|
|
528
518
|
}
|
|
529
|
-
const contactUpsertList = Object.values(data.contactUpserts)
|
|
519
|
+
const contactUpsertList = Object.values(data.contactUpserts);
|
|
530
520
|
if (contactUpsertList.length) {
|
|
531
|
-
map['contacts.upsert'] = contactUpsertList
|
|
521
|
+
map['contacts.upsert'] = contactUpsertList;
|
|
532
522
|
}
|
|
533
|
-
const contactUpdateList = Object.values(data.contactUpdates)
|
|
523
|
+
const contactUpdateList = Object.values(data.contactUpdates);
|
|
534
524
|
if (contactUpdateList.length) {
|
|
535
|
-
map['contacts.update'] = contactUpdateList
|
|
525
|
+
map['contacts.update'] = contactUpdateList;
|
|
536
526
|
}
|
|
537
|
-
const groupUpdateList = Object.values(data.groupUpdates)
|
|
527
|
+
const groupUpdateList = Object.values(data.groupUpdates);
|
|
538
528
|
if (groupUpdateList.length) {
|
|
539
|
-
map['groups.update'] = groupUpdateList
|
|
540
|
-
}
|
|
541
|
-
const communityUpdateList = Object.values(data.communityUpdates)
|
|
542
|
-
if (communityUpdateList.length) {
|
|
543
|
-
map['communities.update'] = communityUpdateList
|
|
529
|
+
map['groups.update'] = groupUpdateList;
|
|
544
530
|
}
|
|
545
|
-
return map
|
|
531
|
+
return map;
|
|
546
532
|
}
|
|
547
533
|
function concatChats(a, b) {
|
|
548
534
|
if (b.unreadCount === null && // neutralize unread counter
|
|
549
535
|
a.unreadCount < 0) {
|
|
550
|
-
a.unreadCount = undefined
|
|
551
|
-
b.unreadCount = undefined
|
|
536
|
+
a.unreadCount = undefined;
|
|
537
|
+
b.unreadCount = undefined;
|
|
552
538
|
}
|
|
553
539
|
if (typeof a.unreadCount === 'number' && typeof b.unreadCount === 'number') {
|
|
554
|
-
b = { ...b }
|
|
540
|
+
b = { ...b };
|
|
555
541
|
if (b.unreadCount >= 0) {
|
|
556
|
-
b.unreadCount = Math.max(b.unreadCount, 0) + Math.max(a.unreadCount, 0)
|
|
542
|
+
b.unreadCount = Math.max(b.unreadCount, 0) + Math.max(a.unreadCount, 0);
|
|
557
543
|
}
|
|
558
544
|
}
|
|
559
|
-
return Object.assign(a, b)
|
|
545
|
+
return Object.assign(a, b);
|
|
560
546
|
}
|
|
561
|
-
const stringifyMessageKey = (key) => `${key.remoteJid},${key.id},${key.fromMe ? '1' : '0'}
|
|
562
|
-
|
|
563
|
-
module.exports = {
|
|
564
|
-
makeEventBuffer
|
|
565
|
-
}
|
|
547
|
+
const stringifyMessageKey = (key) => `${key.remoteJid},${key.id},${key.fromMe ? '1' : '0'}`;
|
|
548
|
+
//# sourceMappingURL=event-buffer.js.map
|