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