@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
package/lib/Utils/generics.js
CHANGED
|
@@ -1,624 +1,381 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Object.defineProperty(o, k2, desc)
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k
|
|
12
|
-
o[k2] = m[k]
|
|
13
|
-
}))
|
|
14
|
-
|
|
15
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v })
|
|
17
|
-
}) : function(o, v) {
|
|
18
|
-
o["default"] = v
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
-
if (mod && mod.__esModule) return mod
|
|
23
|
-
var result = {}
|
|
24
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k)
|
|
25
|
-
__setModuleDefault(result, mod)
|
|
26
|
-
return result
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
-
return (mod && mod.__esModule) ? mod : { "default": mod }
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
Object.defineProperty(exports, "__esModule", { value: true })
|
|
34
|
-
|
|
35
|
-
const boom_1 = require("@hapi/boom")
|
|
36
|
-
const axios_1 = __importDefault(require("axios"))
|
|
37
|
-
const crypto_1 = require("crypto")
|
|
38
|
-
const os_1 = require("os")
|
|
39
|
-
const WAProto_1 = require("../../WAProto")
|
|
40
|
-
const baileys_version_json_1 = require("../Defaults/baileys-version.json")
|
|
41
|
-
const Types_1 = require("../Types")
|
|
42
|
-
const WABinary_1 = require("../WABinary")
|
|
43
|
-
|
|
44
|
-
const COMPANION_PLATFORM_MAP = {
|
|
45
|
-
'Chrome': '49',
|
|
46
|
-
'Edge': '50',
|
|
47
|
-
'Firefox': '51',
|
|
48
|
-
'Opera': '53',
|
|
49
|
-
'Safari': '54',
|
|
50
|
-
'Brave': '1.79.112',
|
|
51
|
-
'Vivaldi': '6.2.3105.58',
|
|
52
|
-
'Tor': '12.5.3',
|
|
53
|
-
'Yandex': '23.7.1',
|
|
54
|
-
'Falkon': '22.08.3',
|
|
55
|
-
'Epiphany': '44.2'
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const PLATFORM_MAP = {
|
|
59
|
-
'aix': 'AIX',
|
|
60
|
-
'darwin': 'Mac OS',
|
|
61
|
-
'win32': 'Windows',
|
|
62
|
-
'android': 'Android',
|
|
63
|
-
'freebsd': 'FreeBSD',
|
|
64
|
-
'openbsd': 'OpenBSD',
|
|
65
|
-
'sunos': 'Solaris',
|
|
66
|
-
'linux': 'Linux',
|
|
67
|
-
'ubuntu': 'Ubuntu',
|
|
68
|
-
'ios': 'iOS',
|
|
69
|
-
'baileys': 'Baileys',
|
|
70
|
-
'chromeos': 'Chrome OS',
|
|
71
|
-
'tizen': 'Tizen',
|
|
72
|
-
'watchos': 'watchOS',
|
|
73
|
-
'wearos': 'Wear OS',
|
|
74
|
-
'harmonyos': 'HarmonyOS',
|
|
75
|
-
'kaios': 'KaiOS',
|
|
76
|
-
'smarttv': 'Smart TV',
|
|
77
|
-
'raspberrypi': 'Raspberry Pi OS',
|
|
78
|
-
'symbian': 'Symbian',
|
|
79
|
-
'blackberry': 'Blackberry OS',
|
|
80
|
-
'windowsphone': 'Windows Phone'
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const PLATFORM_VERSIONS = {
|
|
84
|
-
'ubuntu': '22.04.4',
|
|
85
|
-
'darwin': '18.5',
|
|
86
|
-
'win32': '10.0.22631',
|
|
87
|
-
'android': '14.0.0',
|
|
88
|
-
'freebsd': '13.2',
|
|
89
|
-
'openbsd': '7.3',
|
|
90
|
-
'sunos': '11',
|
|
91
|
-
'linux': '6.5',
|
|
92
|
-
'ios': '18.2',
|
|
93
|
-
'baileys': '6.5.0',
|
|
94
|
-
'chromeos': '117.0.5938.132',
|
|
95
|
-
'tizen': '6.5',
|
|
96
|
-
'watchos': '10.1',
|
|
97
|
-
'wearos': '4.1',
|
|
98
|
-
'harmonyos': '4.0.0',
|
|
99
|
-
'kaios': '3.1',
|
|
100
|
-
'smarttv': '23.3.1',
|
|
101
|
-
'raspberrypi': '11 (Bullseye)',
|
|
102
|
-
'symbian': '3',
|
|
103
|
-
'blackberry': '10.3.3',
|
|
104
|
-
'windowsphone': '8.1'
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const Browsers = {
|
|
108
|
-
ubuntu: (browser) => {
|
|
109
|
-
return [PLATFORM_MAP['ubuntu'], browser, PLATFORM_VERSIONS['ubuntu']]
|
|
110
|
-
},
|
|
111
|
-
macOS: (browser) => {
|
|
112
|
-
return [PLATFORM_MAP['darwin'], browser, PLATFORM_VERSIONS['darwin']]
|
|
113
|
-
},
|
|
114
|
-
windows: (browser) => {
|
|
115
|
-
return [PLATFORM_MAP['win32'], browser, PLATFORM_VERSIONS['win32']]
|
|
116
|
-
},
|
|
117
|
-
linux: (browser) => {
|
|
118
|
-
return [PLATFORM_MAP['linux'], browser, PLATFORM_VERSIONS['linux']]
|
|
119
|
-
},
|
|
120
|
-
solaris: (browser) => {
|
|
121
|
-
return [PLATFORM_MAP['sunos'], browser, PLATFORM_VERSIONS['sunos']]
|
|
122
|
-
},
|
|
123
|
-
baileys: (browser) => {
|
|
124
|
-
return [PLATFORM_MAP['baileys'], browser, PLATFORM_VERSIONS['baileys']]
|
|
125
|
-
},
|
|
126
|
-
android: (browser) => {
|
|
127
|
-
return [PLATFORM_MAP['android'], browser, PLATFORM_VERSIONS['android']]
|
|
128
|
-
},
|
|
129
|
-
iOS: (browser) => {
|
|
130
|
-
return [PLATFORM_MAP['ios'], browser, PLATFORM_VERSIONS['ios']]
|
|
131
|
-
},
|
|
132
|
-
kaiOS: (browser) => {
|
|
133
|
-
return [PLATFORM_MAP['kaios'], browser, PLATFORM_VERSIONS['kaios']]
|
|
134
|
-
},
|
|
135
|
-
chromeOS: (browser) => {
|
|
136
|
-
return [PLATFORM_MAP['chromeos'], browser, PLATFORM_VERSIONS['chromeos']]
|
|
137
|
-
},
|
|
138
|
-
appropriate: (browser) => {
|
|
139
|
-
const platform = os_1.platform()
|
|
140
|
-
const platformName = PLATFORM_MAP[platform] || 'Unknown OS'
|
|
141
|
-
return [platformName, browser, PLATFORM_VERSIONS[platform] || 'latest']
|
|
142
|
-
},
|
|
143
|
-
custom: (platform, browser, version) => {
|
|
144
|
-
const platformName = PLATFORM_MAP[platform.toLowerCase()] || platform
|
|
145
|
-
return [platformName, browser, version || PLATFORM_VERSIONS[platform] || 'latest']
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
const BufferJSON = {
|
|
1
|
+
import { Boom } from '@hapi/boom';
|
|
2
|
+
import { createHash, randomBytes } from 'crypto';
|
|
3
|
+
import { proto } from '../../WAProto/index.js';
|
|
4
|
+
const baileysVersion = [2, 3000, 1027934701];
|
|
5
|
+
import { DisconnectReason } from '../Types/index.js';
|
|
6
|
+
import { getAllBinaryNodeChildren, jidDecode } from '../WABinary/index.js';
|
|
7
|
+
import { sha256 } from './crypto.js';
|
|
8
|
+
export const BufferJSON = {
|
|
152
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
153
10
|
replacer: (k, value) => {
|
|
154
11
|
if (Buffer.isBuffer(value) || value instanceof Uint8Array || value?.type === 'Buffer') {
|
|
155
|
-
return { type: 'Buffer', data: Buffer.from(value?.data || value).toString('base64') }
|
|
12
|
+
return { type: 'Buffer', data: Buffer.from(value?.data || value).toString('base64') };
|
|
156
13
|
}
|
|
157
|
-
return value
|
|
14
|
+
return value;
|
|
158
15
|
},
|
|
159
16
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
160
17
|
reviver: (_, value) => {
|
|
161
|
-
if (typeof value === 'object' &&
|
|
162
|
-
|
|
163
|
-
return typeof val === 'string' ? Buffer.from(val, 'base64') : Buffer.from(val || [])
|
|
18
|
+
if (typeof value === 'object' && value !== null && value.type === 'Buffer' && typeof value.data === 'string') {
|
|
19
|
+
return Buffer.from(value.data, 'base64');
|
|
164
20
|
}
|
|
165
|
-
|
|
21
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
22
|
+
const keys = Object.keys(value);
|
|
23
|
+
if (keys.length > 0 && keys.every(k => !isNaN(parseInt(k, 10)))) {
|
|
24
|
+
const values = Object.values(value);
|
|
25
|
+
if (values.every(v => typeof v === 'number')) {
|
|
26
|
+
return Buffer.from(values);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return value;
|
|
166
31
|
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
const
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
const writeRandomPadMax16 = (msg) => {
|
|
179
|
-
const pad = crypto_1.randomBytes(1)
|
|
180
|
-
const padLength = (pad[0] & 0x0f) + 1
|
|
181
|
-
|
|
182
|
-
return Buffer.concat([msg, Buffer.alloc(padLength, padLength)])
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
const unpadRandomMax16 = (e) => {
|
|
186
|
-
const t = new Uint8Array(e)
|
|
32
|
+
};
|
|
33
|
+
export const getKeyAuthor = (key, meId = 'me') => (key?.fromMe ? meId : key?.participant || key?.remoteJid) || '';
|
|
34
|
+
export const writeRandomPadMax16 = (msg) => {
|
|
35
|
+
const pad = randomBytes(1);
|
|
36
|
+
const padLength = (pad[0] & 0x0f) + 1;
|
|
37
|
+
return Buffer.concat([msg, Buffer.alloc(padLength, padLength)]);
|
|
38
|
+
};
|
|
39
|
+
export const unpadRandomMax16 = (e) => {
|
|
40
|
+
const t = new Uint8Array(e);
|
|
187
41
|
if (0 === t.length) {
|
|
188
|
-
throw new Error('unpadPkcs7 given empty bytes')
|
|
42
|
+
throw new Error('unpadPkcs7 given empty bytes');
|
|
189
43
|
}
|
|
190
|
-
var r = t[t.length - 1]
|
|
44
|
+
var r = t[t.length - 1];
|
|
191
45
|
if (r > t.length) {
|
|
192
|
-
throw new Error(`unpad given ${t.length} bytes, but pad is ${r}`)
|
|
46
|
+
throw new Error(`unpad given ${t.length} bytes, but pad is ${r}`);
|
|
193
47
|
}
|
|
194
|
-
return new Uint8Array(t.buffer, t.byteOffset, t.length - r)
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
const
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
const encodeBigEndian = (e, t = 4) => {
|
|
210
|
-
let r = e
|
|
211
|
-
const a = new Uint8Array(t)
|
|
48
|
+
return new Uint8Array(t.buffer, t.byteOffset, t.length - r);
|
|
49
|
+
};
|
|
50
|
+
// code is inspired by whatsmeow
|
|
51
|
+
export const generateParticipantHashV2 = (participants) => {
|
|
52
|
+
participants.sort();
|
|
53
|
+
const sha256Hash = sha256(Buffer.from(participants.join(''))).toString('base64');
|
|
54
|
+
return '2:' + sha256Hash.slice(0, 6);
|
|
55
|
+
};
|
|
56
|
+
export const encodeWAMessage = (message) => writeRandomPadMax16(proto.Message.encode(message).finish());
|
|
57
|
+
export const generateRegistrationId = () => {
|
|
58
|
+
return Uint16Array.from(randomBytes(2))[0] & 16383;
|
|
59
|
+
};
|
|
60
|
+
export const encodeBigEndian = (e, t = 4) => {
|
|
61
|
+
let r = e;
|
|
62
|
+
const a = new Uint8Array(t);
|
|
212
63
|
for (let i = t - 1; i >= 0; i--) {
|
|
213
|
-
a[i] = 255 & r
|
|
214
|
-
r >>>= 8
|
|
64
|
+
a[i] = 255 & r;
|
|
65
|
+
r >>>= 8;
|
|
215
66
|
}
|
|
216
|
-
return a
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
const toNumber = (t) => ((typeof t === 'object' && t) ? ('toNumber' in t ? t.toNumber() : t.low) : t || 0)
|
|
220
|
-
|
|
67
|
+
return a;
|
|
68
|
+
};
|
|
69
|
+
export const toNumber = (t) => typeof t === 'object' && t ? ('toNumber' in t ? t.toNumber() : t.low) : t || 0;
|
|
221
70
|
/** unix timestamp of a date in seconds */
|
|
222
|
-
const unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000)
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
let timeout
|
|
71
|
+
export const unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000);
|
|
72
|
+
export const debouncedTimeout = (intervalMs = 1000, task) => {
|
|
73
|
+
let timeout;
|
|
226
74
|
return {
|
|
227
75
|
start: (newIntervalMs, newTask) => {
|
|
228
|
-
task = newTask || task
|
|
229
|
-
intervalMs = newIntervalMs || intervalMs
|
|
230
|
-
timeout && clearTimeout(timeout)
|
|
231
|
-
timeout = setTimeout(() => task?.(), intervalMs)
|
|
76
|
+
task = newTask || task;
|
|
77
|
+
intervalMs = newIntervalMs || intervalMs;
|
|
78
|
+
timeout && clearTimeout(timeout);
|
|
79
|
+
timeout = setTimeout(() => task?.(), intervalMs);
|
|
232
80
|
},
|
|
233
81
|
cancel: () => {
|
|
234
|
-
timeout && clearTimeout(timeout)
|
|
235
|
-
timeout = undefined
|
|
82
|
+
timeout && clearTimeout(timeout);
|
|
83
|
+
timeout = undefined;
|
|
236
84
|
},
|
|
237
|
-
setTask: (newTask) => task = newTask,
|
|
238
|
-
setInterval: (newInterval) => intervalMs = newInterval
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
const delayCancellable = (ms) => {
|
|
247
|
-
const stack = new Error().stack
|
|
248
|
-
let timeout
|
|
249
|
-
let reject
|
|
85
|
+
setTask: (newTask) => (task = newTask),
|
|
86
|
+
setInterval: (newInterval) => (intervalMs = newInterval)
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
export const delay = (ms) => delayCancellable(ms).delay;
|
|
90
|
+
export const delayCancellable = (ms) => {
|
|
91
|
+
const stack = new Error().stack;
|
|
92
|
+
let timeout;
|
|
93
|
+
let reject;
|
|
250
94
|
const delay = new Promise((resolve, _reject) => {
|
|
251
|
-
timeout = setTimeout(resolve, ms)
|
|
252
|
-
reject = _reject
|
|
253
|
-
})
|
|
95
|
+
timeout = setTimeout(resolve, ms);
|
|
96
|
+
reject = _reject;
|
|
97
|
+
});
|
|
254
98
|
const cancel = () => {
|
|
255
|
-
clearTimeout(timeout)
|
|
256
|
-
reject(new
|
|
99
|
+
clearTimeout(timeout);
|
|
100
|
+
reject(new Boom('Cancelled', {
|
|
257
101
|
statusCode: 500,
|
|
258
102
|
data: {
|
|
259
103
|
stack
|
|
260
104
|
}
|
|
261
|
-
}))
|
|
262
|
-
}
|
|
263
|
-
return { delay, cancel }
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
async function promiseTimeout(ms, promise) {
|
|
105
|
+
}));
|
|
106
|
+
};
|
|
107
|
+
return { delay, cancel };
|
|
108
|
+
};
|
|
109
|
+
export async function promiseTimeout(ms, promise) {
|
|
267
110
|
if (!ms) {
|
|
268
|
-
return new Promise(promise)
|
|
111
|
+
return new Promise(promise);
|
|
269
112
|
}
|
|
270
|
-
const stack = new Error().stack
|
|
113
|
+
const stack = new Error().stack;
|
|
271
114
|
// Create a promise that rejects in <ms> milliseconds
|
|
272
|
-
const { delay, cancel } = delayCancellable(ms)
|
|
115
|
+
const { delay, cancel } = delayCancellable(ms);
|
|
273
116
|
const p = new Promise((resolve, reject) => {
|
|
274
|
-
delay
|
|
275
|
-
|
|
117
|
+
delay
|
|
118
|
+
.then(() => reject(new Boom('Timed Out', {
|
|
119
|
+
statusCode: DisconnectReason.timedOut,
|
|
276
120
|
data: {
|
|
277
121
|
stack
|
|
278
122
|
}
|
|
279
|
-
})))
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
const middle = 'NEELE'; // Fester Name in der ID
|
|
289
|
-
|
|
290
|
-
const fillLen = targetLength - prefix.length - middle.length;
|
|
291
|
-
const leftLen = Math.floor(Math.random() * (fillLen + 1));
|
|
292
|
-
const rightLen = fillLen - leftLen;
|
|
293
|
-
|
|
294
|
-
const randomHex = (len) => {
|
|
295
|
-
const hexChars = '0123456789ABCDEF';
|
|
296
|
-
let s = '';
|
|
297
|
-
for (let i = 0; i < len; i++) {
|
|
298
|
-
s += hexChars.charAt(Math.floor(Math.random() * hexChars.length));
|
|
299
|
-
}
|
|
300
|
-
return s;
|
|
301
|
-
};
|
|
302
|
-
|
|
303
|
-
const leftPart = randomHex(leftLen);
|
|
304
|
-
const rightPart = randomHex(rightLen);
|
|
305
|
-
|
|
306
|
-
return prefix + leftPart + middle + rightPart;
|
|
307
|
-
};
|
|
308
|
-
|
|
309
|
-
const generateMessageIDV2 = (userId) => {
|
|
123
|
+
})))
|
|
124
|
+
.catch(err => reject(err));
|
|
125
|
+
promise(resolve, reject);
|
|
126
|
+
}).finally(cancel);
|
|
127
|
+
return p;
|
|
128
|
+
}
|
|
129
|
+
// inspired from whatsmeow code
|
|
130
|
+
// https://github.com/tulir/whatsmeow/blob/64bc969fbe78d31ae0dd443b8d4c80a5d026d07a/send.go#L42
|
|
131
|
+
export const generateMessageIDV2 = (userId) => {
|
|
310
132
|
const data = Buffer.alloc(8 + 20 + 16);
|
|
311
133
|
data.writeBigUInt64BE(BigInt(Math.floor(Date.now() / 1000)));
|
|
312
134
|
if (userId) {
|
|
313
|
-
const id =
|
|
314
|
-
if (id
|
|
135
|
+
const id = jidDecode(userId);
|
|
136
|
+
if (id?.user) {
|
|
315
137
|
data.write(id.user, 8);
|
|
316
138
|
data.write('@c.us', 8 + id.user.length);
|
|
317
139
|
}
|
|
318
140
|
}
|
|
319
|
-
const random =
|
|
141
|
+
const random = randomBytes(16);
|
|
320
142
|
random.copy(data, 28);
|
|
321
|
-
const hash =
|
|
322
|
-
return '
|
|
323
|
-
};
|
|
324
|
-
const generateAndroidMessageID = () => {
|
|
325
|
-
const random = crypto_1.randomBytes(16); // 16 bytes = 32 hex chars
|
|
326
|
-
return random.toString('hex').toUpperCase(); // 32-stellig
|
|
327
|
-
};
|
|
328
|
-
|
|
329
|
-
const generateIOSMessageID = () => {
|
|
330
|
-
const prefix = '3A';
|
|
331
|
-
const random = crypto_1.randomBytes(9.5); // 19 hex chars = 9.5 bytes
|
|
332
|
-
return (prefix + random.toString('hex')).toUpperCase().substring(0, 21);
|
|
143
|
+
const hash = createHash('sha256').update(data).digest();
|
|
144
|
+
return '3EB0' + hash.toString('hex').toUpperCase().substring(0, 18);
|
|
333
145
|
};
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
return (prefix + random.toString('hex')).toUpperCase(); // ergibt 18 Zeichen
|
|
338
|
-
};
|
|
339
|
-
|
|
340
|
-
function bindWaitForEvent(ev, event) {
|
|
146
|
+
// generate a random ID to attach to a message
|
|
147
|
+
export const generateMessageID = () => '3EB0' + randomBytes(18).toString('hex').toUpperCase();
|
|
148
|
+
export function bindWaitForEvent(ev, event) {
|
|
341
149
|
return async (check, timeoutMs) => {
|
|
342
|
-
let listener
|
|
343
|
-
let closeListener
|
|
344
|
-
await
|
|
150
|
+
let listener;
|
|
151
|
+
let closeListener;
|
|
152
|
+
await promiseTimeout(timeoutMs, (resolve, reject) => {
|
|
345
153
|
closeListener = ({ connection, lastDisconnect }) => {
|
|
346
154
|
if (connection === 'close') {
|
|
347
|
-
reject(
|
|
348
|
-
|| new boom_1.Boom('Connection Closed', { statusCode: Types_1.DisconnectReason.connectionClosed }))
|
|
155
|
+
reject(lastDisconnect?.error || new Boom('Connection Closed', { statusCode: DisconnectReason.connectionClosed }));
|
|
349
156
|
}
|
|
350
|
-
}
|
|
351
|
-
ev.on('connection.update', closeListener)
|
|
157
|
+
};
|
|
158
|
+
ev.on('connection.update', closeListener);
|
|
352
159
|
listener = async (update) => {
|
|
353
160
|
if (await check(update)) {
|
|
354
|
-
resolve()
|
|
161
|
+
resolve();
|
|
355
162
|
}
|
|
356
|
-
}
|
|
357
|
-
ev.on(event, listener)
|
|
163
|
+
};
|
|
164
|
+
ev.on(event, listener);
|
|
358
165
|
}).finally(() => {
|
|
359
|
-
ev.off(event, listener)
|
|
360
|
-
ev.off('connection.update', closeListener)
|
|
361
|
-
})
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
const bindWaitForConnectionUpdate = (ev) => {
|
|
366
|
-
return bindWaitForEvent(ev, 'connection.update')
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
const printQRIfNecessaryListener = (ev, logger) => {
|
|
370
|
-
ev.on('connection.update', async ({ qr }) => {
|
|
371
|
-
if (qr) {
|
|
372
|
-
const QR = await Promise.resolve().then(() => __importStar(require('qrcode-terminal'))).then(m => m.default || m)
|
|
373
|
-
.catch(() => {
|
|
374
|
-
logger.error('QR code terminal not added as dependency')
|
|
375
|
-
})
|
|
376
|
-
QR?.generate(qr, { small: true })
|
|
377
|
-
}
|
|
378
|
-
})
|
|
166
|
+
ev.off(event, listener);
|
|
167
|
+
ev.off('connection.update', closeListener);
|
|
168
|
+
});
|
|
169
|
+
};
|
|
379
170
|
}
|
|
380
|
-
|
|
171
|
+
export const bindWaitForConnectionUpdate = (ev) => bindWaitForEvent(ev, 'connection.update');
|
|
381
172
|
/**
|
|
382
173
|
* utility that fetches latest baileys version from the master branch.
|
|
383
174
|
* Use to ensure your WA connection is always on the latest version
|
|
384
175
|
*/
|
|
385
|
-
const fetchLatestBaileysVersion = async (options = {}) => {
|
|
386
|
-
const URL = 'https://raw.githubusercontent.com/WhiskeySockets/Baileys/master/src/Defaults/
|
|
176
|
+
export const fetchLatestBaileysVersion = async (options = {}) => {
|
|
177
|
+
const URL = 'https://raw.githubusercontent.com/WhiskeySockets/Baileys/master/src/Defaults/index.ts';
|
|
387
178
|
try {
|
|
388
|
-
const
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
179
|
+
const response = await fetch(URL, {
|
|
180
|
+
dispatcher: options.dispatcher,
|
|
181
|
+
method: 'GET',
|
|
182
|
+
headers: options.headers
|
|
183
|
+
});
|
|
184
|
+
if (!response.ok) {
|
|
185
|
+
throw new Boom(`Failed to fetch latest Baileys version: ${response.statusText}`, { statusCode: response.status });
|
|
186
|
+
}
|
|
187
|
+
const text = await response.text();
|
|
188
|
+
// Extract version from line 7 (const version = [...])
|
|
189
|
+
const lines = text.split('\n');
|
|
190
|
+
const versionLine = lines[6]; // Line 7 (0-indexed)
|
|
191
|
+
const versionMatch = versionLine.match(/const version = \[(\d+),\s*(\d+),\s*(\d+)\]/);
|
|
192
|
+
if (versionMatch) {
|
|
193
|
+
const version = [parseInt(versionMatch[1]), parseInt(versionMatch[2]), parseInt(versionMatch[3])];
|
|
194
|
+
return {
|
|
195
|
+
version,
|
|
196
|
+
isLatest: true
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
throw new Error('Could not parse version from Defaults/index.ts');
|
|
395
201
|
}
|
|
396
202
|
}
|
|
397
203
|
catch (error) {
|
|
398
204
|
return {
|
|
399
|
-
version:
|
|
205
|
+
version: baileysVersion,
|
|
400
206
|
isLatest: false,
|
|
401
207
|
error
|
|
402
|
-
}
|
|
208
|
+
};
|
|
403
209
|
}
|
|
404
|
-
}
|
|
405
|
-
|
|
210
|
+
};
|
|
406
211
|
/**
|
|
407
212
|
* A utility that fetches the latest web version of whatsapp.
|
|
408
213
|
* Use to ensure your WA connection is always on the latest version
|
|
409
214
|
*/
|
|
410
|
-
const fetchLatestWaWebVersion = async (options) => {
|
|
215
|
+
export const fetchLatestWaWebVersion = async (options = {}) => {
|
|
411
216
|
try {
|
|
412
|
-
|
|
217
|
+
// Absolute minimal headers required to bypass anti-bot detection
|
|
218
|
+
const defaultHeaders = {
|
|
219
|
+
'sec-fetch-site': 'none',
|
|
220
|
+
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'
|
|
221
|
+
};
|
|
222
|
+
const headers = { ...defaultHeaders, ...options.headers };
|
|
223
|
+
const response = await fetch('https://web.whatsapp.com/sw.js', {
|
|
413
224
|
...options,
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
225
|
+
method: 'GET',
|
|
226
|
+
headers
|
|
227
|
+
});
|
|
228
|
+
if (!response.ok) {
|
|
229
|
+
throw new Boom(`Failed to fetch sw.js: ${response.statusText}`, { statusCode: response.status });
|
|
230
|
+
}
|
|
231
|
+
const data = await response.text();
|
|
232
|
+
const regex = /\\?"client_revision\\?":\s*(\d+)/;
|
|
233
|
+
const match = data.match(regex);
|
|
234
|
+
if (!match?.[1]) {
|
|
419
235
|
return {
|
|
420
|
-
version:
|
|
236
|
+
version: baileysVersion,
|
|
421
237
|
isLatest: false,
|
|
422
238
|
error: {
|
|
423
239
|
message: 'Could not find client revision in the fetched content'
|
|
424
240
|
}
|
|
425
|
-
}
|
|
241
|
+
};
|
|
426
242
|
}
|
|
427
|
-
const clientRevision = match[1]
|
|
243
|
+
const clientRevision = match[1];
|
|
428
244
|
return {
|
|
429
245
|
version: [2, 3000, +clientRevision],
|
|
430
246
|
isLatest: true
|
|
431
|
-
}
|
|
247
|
+
};
|
|
432
248
|
}
|
|
433
249
|
catch (error) {
|
|
434
250
|
return {
|
|
435
|
-
version:
|
|
251
|
+
version: baileysVersion,
|
|
436
252
|
isLatest: false,
|
|
437
253
|
error
|
|
438
|
-
}
|
|
254
|
+
};
|
|
439
255
|
}
|
|
440
|
-
}
|
|
441
|
-
|
|
256
|
+
};
|
|
442
257
|
/** unique message tag prefix for MD clients */
|
|
443
|
-
const generateMdTagPrefix = () => {
|
|
444
|
-
const bytes =
|
|
445
|
-
return `${bytes.readUInt16BE()}.${bytes.readUInt16BE(2)}
|
|
446
|
-
}
|
|
447
|
-
|
|
258
|
+
export const generateMdTagPrefix = () => {
|
|
259
|
+
const bytes = randomBytes(4);
|
|
260
|
+
return `${bytes.readUInt16BE()}.${bytes.readUInt16BE(2)}-`;
|
|
261
|
+
};
|
|
448
262
|
const STATUS_MAP = {
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
'read-self':
|
|
453
|
-
}
|
|
454
|
-
|
|
263
|
+
sender: proto.WebMessageInfo.Status.SERVER_ACK,
|
|
264
|
+
played: proto.WebMessageInfo.Status.PLAYED,
|
|
265
|
+
read: proto.WebMessageInfo.Status.READ,
|
|
266
|
+
'read-self': proto.WebMessageInfo.Status.READ
|
|
267
|
+
};
|
|
455
268
|
/**
|
|
456
269
|
* Given a type of receipt, returns what the new status of the message should be
|
|
457
270
|
* @param type type from receipt
|
|
458
271
|
*/
|
|
459
|
-
const getStatusFromReceiptType = (type) => {
|
|
460
|
-
const status = STATUS_MAP[type]
|
|
272
|
+
export const getStatusFromReceiptType = (type) => {
|
|
273
|
+
const status = STATUS_MAP[type];
|
|
461
274
|
if (typeof type === 'undefined') {
|
|
462
|
-
return
|
|
275
|
+
return proto.WebMessageInfo.Status.DELIVERY_ACK;
|
|
463
276
|
}
|
|
464
|
-
return status
|
|
465
|
-
}
|
|
466
|
-
|
|
277
|
+
return status;
|
|
278
|
+
};
|
|
467
279
|
const CODE_MAP = {
|
|
468
|
-
conflict:
|
|
469
|
-
}
|
|
470
|
-
|
|
280
|
+
conflict: DisconnectReason.connectionReplaced
|
|
281
|
+
};
|
|
471
282
|
/**
|
|
472
283
|
* Stream errors generally provide a reason, map that to a baileys DisconnectReason
|
|
473
284
|
* @param reason the string reason given, eg. "conflict"
|
|
474
285
|
*/
|
|
475
|
-
const getErrorCodeFromStreamError = (node) => {
|
|
476
|
-
const [reasonNode] =
|
|
477
|
-
let reason = reasonNode?.tag || 'unknown'
|
|
478
|
-
const statusCode = +(node.attrs.code || CODE_MAP[reason] ||
|
|
479
|
-
if (statusCode ===
|
|
480
|
-
reason = 'restart required'
|
|
286
|
+
export const getErrorCodeFromStreamError = (node) => {
|
|
287
|
+
const [reasonNode] = getAllBinaryNodeChildren(node);
|
|
288
|
+
let reason = reasonNode?.tag || 'unknown';
|
|
289
|
+
const statusCode = +(node.attrs.code || CODE_MAP[reason] || DisconnectReason.badSession);
|
|
290
|
+
if (statusCode === DisconnectReason.restartRequired) {
|
|
291
|
+
reason = 'restart required';
|
|
481
292
|
}
|
|
482
293
|
return {
|
|
483
294
|
reason,
|
|
484
295
|
statusCode
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
let status
|
|
296
|
+
};
|
|
297
|
+
};
|
|
298
|
+
export const getCallStatusFromNode = ({ tag, attrs }) => {
|
|
299
|
+
let status;
|
|
490
300
|
switch (tag) {
|
|
491
301
|
case 'offer':
|
|
492
302
|
case 'offer_notice':
|
|
493
|
-
status = 'offer'
|
|
494
|
-
break
|
|
303
|
+
status = 'offer';
|
|
304
|
+
break;
|
|
495
305
|
case 'terminate':
|
|
496
306
|
if (attrs.reason === 'timeout') {
|
|
497
|
-
status = 'timeout'
|
|
307
|
+
status = 'timeout';
|
|
498
308
|
}
|
|
499
309
|
else {
|
|
500
310
|
//fired when accepted/rejected/timeout/caller hangs up
|
|
501
|
-
status = 'terminate'
|
|
311
|
+
status = 'terminate';
|
|
502
312
|
}
|
|
503
|
-
break
|
|
313
|
+
break;
|
|
504
314
|
case 'reject':
|
|
505
|
-
status = 'reject'
|
|
506
|
-
break
|
|
315
|
+
status = 'reject';
|
|
316
|
+
break;
|
|
507
317
|
case 'accept':
|
|
508
|
-
status = 'accept'
|
|
509
|
-
break
|
|
318
|
+
status = 'accept';
|
|
319
|
+
break;
|
|
510
320
|
default:
|
|
511
|
-
status = 'ringing'
|
|
512
|
-
break
|
|
321
|
+
status = 'ringing';
|
|
322
|
+
break;
|
|
513
323
|
}
|
|
514
|
-
return status
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
const getCodeFromWSError = (error) => {
|
|
518
|
-
let statusCode = 500
|
|
519
|
-
if (error?.message?.includes(
|
|
520
|
-
const code = +
|
|
324
|
+
return status;
|
|
325
|
+
};
|
|
326
|
+
const UNEXPECTED_SERVER_CODE_TEXT = 'Unexpected server response: ';
|
|
327
|
+
export const getCodeFromWSError = (error) => {
|
|
328
|
+
let statusCode = 500;
|
|
329
|
+
if (error?.message?.includes(UNEXPECTED_SERVER_CODE_TEXT)) {
|
|
330
|
+
const code = +error?.message.slice(UNEXPECTED_SERVER_CODE_TEXT.length);
|
|
521
331
|
if (!Number.isNaN(code) && code >= 400) {
|
|
522
|
-
statusCode = code
|
|
332
|
+
statusCode = code;
|
|
523
333
|
}
|
|
524
334
|
}
|
|
525
|
-
else if (
|
|
526
|
-
|
|
335
|
+
else if (
|
|
336
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
337
|
+
error?.code?.startsWith('E') ||
|
|
338
|
+
error?.message?.includes('timed out')) {
|
|
339
|
+
// handle ETIMEOUT, ENOTFOUND etc
|
|
340
|
+
statusCode = 408;
|
|
527
341
|
}
|
|
528
|
-
return statusCode
|
|
529
|
-
}
|
|
530
|
-
|
|
342
|
+
return statusCode;
|
|
343
|
+
};
|
|
531
344
|
/**
|
|
532
345
|
* Is the given platform WA business
|
|
533
346
|
* @param platform AuthenticationCreds.platform
|
|
534
347
|
*/
|
|
535
|
-
const isWABusinessPlatform = (platform) => {
|
|
536
|
-
return platform === 'smbi' || platform === 'smba'
|
|
537
|
-
}
|
|
538
|
-
|
|
348
|
+
export const isWABusinessPlatform = (platform) => {
|
|
349
|
+
return platform === 'smbi' || platform === 'smba';
|
|
350
|
+
};
|
|
539
351
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
540
|
-
function trimUndefined(obj) {
|
|
352
|
+
export function trimUndefined(obj) {
|
|
541
353
|
for (const key in obj) {
|
|
542
354
|
if (typeof obj[key] === 'undefined') {
|
|
543
|
-
delete obj[key]
|
|
355
|
+
delete obj[key];
|
|
544
356
|
}
|
|
545
357
|
}
|
|
546
|
-
return obj
|
|
358
|
+
return obj;
|
|
547
359
|
}
|
|
548
|
-
|
|
549
|
-
function bytesToCrockford(buffer) {
|
|
550
|
-
let value = 0
|
|
551
|
-
let bitCount = 0
|
|
552
|
-
const crockford = []
|
|
360
|
+
const CROCKFORD_CHARACTERS = '123456789ABCDEFGHJKLMNPQRSTVWXYZ';
|
|
361
|
+
export function bytesToCrockford(buffer) {
|
|
362
|
+
let value = 0;
|
|
363
|
+
let bitCount = 0;
|
|
364
|
+
const crockford = [];
|
|
553
365
|
for (const element of buffer) {
|
|
554
|
-
value = (value << 8) | (element & 0xff)
|
|
555
|
-
bitCount += 8
|
|
366
|
+
value = (value << 8) | (element & 0xff);
|
|
367
|
+
bitCount += 8;
|
|
556
368
|
while (bitCount >= 5) {
|
|
557
|
-
crockford.push(
|
|
558
|
-
bitCount -= 5
|
|
369
|
+
crockford.push(CROCKFORD_CHARACTERS.charAt((value >>> (bitCount - 5)) & 31));
|
|
370
|
+
bitCount -= 5;
|
|
559
371
|
}
|
|
560
372
|
}
|
|
561
373
|
if (bitCount > 0) {
|
|
562
|
-
crockford.push(
|
|
374
|
+
crockford.push(CROCKFORD_CHARACTERS.charAt((value << (5 - bitCount)) & 31));
|
|
563
375
|
}
|
|
564
|
-
return crockford.join('')
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
const toUnicodeEscape = (text) => {
|
|
568
|
-
return text.split("").map(char => "\\u" + char.charCodeAt(0).toString(16).padStart(4, "0")).join("")
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
const fromUnicodeEscape = (escapedText) => {
|
|
572
|
-
return escapedText.replace(/\\u[\dA-Fa-f]{4}/g, match => String.fromCharCode(parseInt(match.slice(2), 16)))
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
const asciiEncode = (text) => {
|
|
576
|
-
var encoded = text.split("").map(c => c.charCodeAt(0))
|
|
577
|
-
return encoded
|
|
376
|
+
return crockford.join('');
|
|
578
377
|
}
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
var codeArray = Array.isArray(codes[0]) ? codes[0] : codes
|
|
582
|
-
return codeArray.map(c => String.fromCharCode(c)).join("")
|
|
378
|
+
export function encodeNewsletterMessage(message) {
|
|
379
|
+
return proto.Message.encode(message).finish();
|
|
583
380
|
}
|
|
584
|
-
|
|
585
|
-
module.exports = {
|
|
586
|
-
Browsers,
|
|
587
|
-
BufferJSON,
|
|
588
|
-
getPlatformId,
|
|
589
|
-
getKeyAuthor,
|
|
590
|
-
writeRandomPadMax16,
|
|
591
|
-
unpadRandomMax16,
|
|
592
|
-
encodeWAMessage,
|
|
593
|
-
encodeNewsletterMessage,
|
|
594
|
-
generateRegistrationId,
|
|
595
|
-
encodeBigEndian,
|
|
596
|
-
toNumber,
|
|
597
|
-
unixTimestampSeconds,
|
|
598
|
-
debouncedTimeout,
|
|
599
|
-
delay,
|
|
600
|
-
delayCancellable,
|
|
601
|
-
promiseTimeout,
|
|
602
|
-
generateMessageID,
|
|
603
|
-
generateMessageIDV2,
|
|
604
|
-
generateAndroidMessageID,
|
|
605
|
-
generateIOSMessageID,
|
|
606
|
-
generateDesktopMessageID,
|
|
607
|
-
bindWaitForEvent,
|
|
608
|
-
bindWaitForConnectionUpdate,
|
|
609
|
-
printQRIfNecessaryListener,
|
|
610
|
-
fetchLatestBaileysVersion,
|
|
611
|
-
fetchLatestWaWebVersion,
|
|
612
|
-
generateMdTagPrefix,
|
|
613
|
-
getStatusFromReceiptType,
|
|
614
|
-
getErrorCodeFromStreamError,
|
|
615
|
-
getCallStatusFromNode,
|
|
616
|
-
getCodeFromWSError,
|
|
617
|
-
isWABusinessPlatform,
|
|
618
|
-
trimUndefined,
|
|
619
|
-
bytesToCrockford,
|
|
620
|
-
toUnicodeEscape,
|
|
621
|
-
fromUnicodeEscape,
|
|
622
|
-
asciiEncode,
|
|
623
|
-
asciiDecode
|
|
624
|
-
}
|
|
381
|
+
//# sourceMappingURL=generics.js.map
|