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