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