@queenanya/baileys 9.2.1 → 9.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +349 -1171
- package/WAProto/fix-imports.js +74 -18
- package/WAProto/index.js +201 -160
- package/engine-requirements.js +7 -7
- package/lib/Defaults/index.d.ts +19 -0
- package/lib/Defaults/index.d.ts.map +1 -1
- package/lib/Defaults/index.js +32 -6
- package/lib/Defaults/index.js.map +1 -1
- package/lib/Signal/libsignal.d.ts.map +1 -1
- package/lib/Signal/libsignal.js +61 -2
- package/lib/Signal/libsignal.js.map +1 -1
- package/lib/Signal/lid-mapping.d.ts +5 -9
- package/lib/Signal/lid-mapping.d.ts.map +1 -1
- package/lib/Signal/lid-mapping.js +170 -70
- package/lib/Signal/lid-mapping.js.map +1 -1
- package/lib/Socket/Client/websocket.d.ts +1 -1
- package/lib/Socket/Client/websocket.d.ts.map +1 -1
- package/lib/Socket/Client/websocket.js +5 -1
- package/lib/Socket/Client/websocket.js.map +1 -1
- package/lib/Socket/business.d.ts +125 -5
- package/lib/Socket/business.d.ts.map +1 -1
- package/lib/Socket/business.js +11 -8
- package/lib/Socket/business.js.map +1 -1
- package/lib/Socket/chats.d.ts +22 -3
- package/lib/Socket/chats.d.ts.map +1 -1
- package/lib/Socket/chats.js +277 -58
- package/lib/Socket/chats.js.map +1 -1
- package/lib/Socket/communities.d.ts +125 -5
- package/lib/Socket/communities.d.ts.map +1 -1
- package/lib/Socket/groups.d.ts +19 -3
- package/lib/Socket/groups.d.ts.map +1 -1
- package/lib/Socket/groups.js +7 -1
- package/lib/Socket/groups.js.map +1 -1
- package/lib/Socket/index.d.ts +125 -5
- package/lib/Socket/index.d.ts.map +1 -1
- package/lib/Socket/index.js +0 -6
- package/lib/Socket/index.js.map +1 -1
- package/lib/Socket/messages-recv.d.ts +126 -6
- package/lib/Socket/messages-recv.d.ts.map +1 -1
- package/lib/Socket/messages-recv.js +771 -177
- package/lib/Socket/messages-recv.js.map +1 -1
- package/lib/Socket/messages-send.d.ts +129 -7
- package/lib/Socket/messages-send.d.ts.map +1 -1
- package/lib/Socket/messages-send.js +430 -119
- package/lib/Socket/messages-send.js.map +1 -1
- package/lib/Socket/newsletter.d.ts +20 -5
- package/lib/Socket/newsletter.d.ts.map +1 -1
- package/lib/Socket/newsletter.js +2 -47
- package/lib/Socket/newsletter.js.map +1 -1
- package/lib/Socket/socket.d.ts +3 -1
- package/lib/Socket/socket.d.ts.map +1 -1
- package/lib/Socket/socket.js +151 -29
- package/lib/Socket/socket.js.map +1 -1
- package/lib/Types/Auth.d.ts +2 -0
- package/lib/Types/Auth.d.ts.map +1 -1
- package/lib/Types/Call.d.ts +10 -1
- package/lib/Types/Call.d.ts.map +1 -1
- package/lib/Types/Contact.d.ts +2 -0
- package/lib/Types/Contact.d.ts.map +1 -1
- package/lib/Types/Events.d.ts +60 -6
- package/lib/Types/Events.d.ts.map +1 -1
- package/lib/Types/GroupMetadata.d.ts +4 -0
- package/lib/Types/GroupMetadata.d.ts.map +1 -1
- package/lib/Types/Message.d.ts +530 -16
- package/lib/Types/Message.d.ts.map +1 -1
- package/lib/Types/Message.js.map +1 -1
- package/lib/Types/Newsletter.d.ts +32 -45
- package/lib/Types/Newsletter.d.ts.map +1 -1
- package/lib/Types/Newsletter.js +25 -23
- package/lib/Types/Newsletter.js.map +1 -1
- package/lib/Types/State.d.ts +54 -0
- package/lib/Types/State.d.ts.map +1 -1
- package/lib/Types/State.js +42 -0
- package/lib/Types/State.js.map +1 -1
- package/lib/Types/index.d.ts +9 -0
- package/lib/Types/index.d.ts.map +1 -1
- package/lib/Types/index.js.map +1 -1
- package/lib/Utils/auth-utils.d.ts.map +1 -1
- package/lib/Utils/auth-utils.js +53 -20
- package/lib/Utils/auth-utils.js.map +1 -1
- package/lib/Utils/browser-utils.d.ts +13 -0
- package/lib/Utils/browser-utils.d.ts.map +1 -1
- package/lib/Utils/browser-utils.js +90 -10
- package/lib/Utils/browser-utils.js.map +1 -1
- package/lib/Utils/chat-utils.d.ts +30 -0
- package/lib/Utils/chat-utils.d.ts.map +1 -1
- package/lib/Utils/chat-utils.js +134 -59
- package/lib/Utils/chat-utils.js.map +1 -1
- 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 +34 -0
- package/lib/Utils/companion-reg-client-utils.js.map +1 -0
- package/lib/Utils/crypto.d.ts +4 -8
- package/lib/Utils/crypto.d.ts.map +1 -1
- package/lib/Utils/crypto.js +2 -26
- package/lib/Utils/crypto.js.map +1 -1
- package/lib/Utils/decode-wa-message.d.ts +12 -0
- package/lib/Utils/decode-wa-message.d.ts.map +1 -1
- package/lib/Utils/decode-wa-message.js +16 -0
- package/lib/Utils/decode-wa-message.js.map +1 -1
- package/lib/Utils/event-buffer.d.ts.map +1 -1
- package/lib/Utils/event-buffer.js +43 -8
- package/lib/Utils/event-buffer.js.map +1 -1
- package/lib/Utils/generics.d.ts +3 -1
- package/lib/Utils/generics.d.ts.map +1 -1
- package/lib/Utils/generics.js +17 -4
- package/lib/Utils/generics.js.map +1 -1
- package/lib/Utils/history.d.ts +8 -3
- package/lib/Utils/history.d.ts.map +1 -1
- package/lib/Utils/history.js +60 -16
- package/lib/Utils/history.js.map +1 -1
- 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 +6 -0
- package/lib/Utils/index.d.ts.map +1 -1
- package/lib/Utils/index.js +6 -0
- package/lib/Utils/index.js.map +1 -1
- package/lib/Utils/interactive-message.d.ts +201 -0
- package/lib/Utils/interactive-message.d.ts.map +1 -0
- package/lib/Utils/interactive-message.js +256 -0
- package/lib/Utils/interactive-message.js.map +1 -0
- package/lib/Utils/lt-hash.d.ts +7 -12
- package/lib/Utils/lt-hash.d.ts.map +1 -1
- package/lib/Utils/lt-hash.js +2 -42
- package/lib/Utils/lt-hash.js.map +1 -1
- package/lib/Utils/make-mutex.d.ts +1 -0
- package/lib/Utils/make-mutex.d.ts.map +1 -1
- package/lib/Utils/make-mutex.js +20 -27
- package/lib/Utils/make-mutex.js.map +1 -1
- package/lib/Utils/message-composer.d.ts +5 -0
- package/lib/Utils/message-composer.d.ts.map +1 -0
- package/lib/Utils/message-composer.js +5 -0
- package/lib/Utils/message-composer.js.map +1 -0
- package/lib/Utils/message-retry-manager.d.ts +30 -2
- package/lib/Utils/message-retry-manager.d.ts.map +1 -1
- package/lib/Utils/message-retry-manager.js +58 -5
- package/lib/Utils/message-retry-manager.js.map +1 -1
- package/lib/Utils/messages-media.d.ts +35 -5
- package/lib/Utils/messages-media.d.ts.map +1 -1
- package/lib/Utils/messages-media.js +171 -51
- package/lib/Utils/messages-media.js.map +1 -1
- package/lib/Utils/messages.d.ts +2 -0
- package/lib/Utils/messages.d.ts.map +1 -1
- package/lib/Utils/messages.js +475 -35
- package/lib/Utils/messages.js.map +1 -1
- package/lib/Utils/noise-handler.d.ts +4 -4
- package/lib/Utils/noise-handler.d.ts.map +1 -1
- package/lib/Utils/noise-handler.js +139 -85
- package/lib/Utils/noise-handler.js.map +1 -1
- 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/process-message.d.ts.map +1 -1
- package/lib/Utils/process-message.js +115 -16
- package/lib/Utils/process-message.js.map +1 -1
- 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/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-mongo-file-auth-state.d.ts +16 -0
- package/lib/Utils/use-mongo-file-auth-state.d.ts.map +1 -0
- package/lib/Utils/use-mongo-file-auth-state.js +60 -0
- package/lib/Utils/use-mongo-file-auth-state.js.map +1 -0
- package/lib/Utils/use-multi-file-auth-state.js +1 -1
- package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
- package/lib/Utils/use-single-file-auth-state.d.ts.map +1 -1
- package/lib/Utils/use-single-file-auth-state.js.map +1 -1
- package/lib/Utils/validate-connection.d.ts.map +1 -1
- package/lib/Utils/validate-connection.js +11 -1
- package/lib/Utils/validate-connection.js.map +1 -1
- package/lib/WABinary/decode.d.ts.map +1 -1
- package/lib/WABinary/decode.js +24 -0
- package/lib/WABinary/decode.js.map +1 -1
- package/lib/WABinary/encode.js +5 -1
- package/lib/WABinary/encode.js.map +1 -1
- package/lib/WABinary/generic-utils.d.ts +10 -1
- package/lib/WABinary/generic-utils.d.ts.map +1 -1
- package/lib/WABinary/generic-utils.js +42 -8
- package/lib/WABinary/generic-utils.js.map +1 -1
- package/lib/WABinary/jid-utils.js.map +1 -1
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -1
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +26 -3
- package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -1
- 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/index.d.ts +1 -0
- package/lib/WAUSync/Protocols/index.d.ts.map +1 -1
- package/lib/WAUSync/Protocols/index.js +1 -0
- package/lib/WAUSync/Protocols/index.js.map +1 -1
- package/lib/WAUSync/USyncQuery.d.ts +1 -0
- package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
- package/lib/WAUSync/USyncQuery.js +6 -2
- package/lib/WAUSync/USyncQuery.js.map +1 -1
- package/lib/WAUSync/USyncUser.d.ts +4 -0
- package/lib/WAUSync/USyncUser.d.ts.map +1 -1
- package/lib/WAUSync/USyncUser.js +8 -0
- package/lib/WAUSync/USyncUser.js.map +1 -1
- package/lib/addons/anti-delete.d.ts +72 -0
- package/lib/addons/anti-delete.d.ts.map +1 -0
- package/lib/addons/anti-delete.js +165 -0
- package/lib/addons/anti-delete.js.map +1 -0
- package/lib/addons/auto-reply.d.ts +67 -0
- package/lib/addons/auto-reply.d.ts.map +1 -0
- package/lib/addons/auto-reply.js +145 -0
- package/lib/addons/auto-reply.js.map +1 -0
- package/lib/addons/browser-presets.d.ts +16 -0
- package/lib/addons/browser-presets.d.ts.map +1 -0
- package/lib/addons/browser-presets.js +24 -0
- package/lib/addons/browser-presets.js.map +1 -0
- package/lib/addons/button-sender.d.ts +260 -0
- package/lib/addons/button-sender.d.ts.map +1 -0
- package/lib/addons/button-sender.js +771 -0
- package/lib/addons/button-sender.js.map +1 -0
- package/lib/addons/call-handler.d.ts +79 -0
- package/lib/addons/call-handler.d.ts.map +1 -0
- package/lib/addons/call-handler.js +342 -0
- package/lib/addons/call-handler.js.map +1 -0
- package/lib/addons/from-chats.d.ts +30 -0
- package/lib/addons/from-chats.d.ts.map +1 -0
- package/lib/addons/from-chats.js +38 -0
- package/lib/addons/from-chats.js.map +1 -0
- package/lib/addons/from-messages-recv.d.ts +59 -0
- package/lib/addons/from-messages-recv.d.ts.map +1 -0
- package/lib/addons/from-messages-recv.js +326 -0
- package/lib/addons/from-messages-recv.js.map +1 -0
- package/lib/addons/from-messages-send.d.ts +50 -0
- package/lib/addons/from-messages-send.d.ts.map +1 -0
- package/lib/addons/from-messages-send.js +148 -0
- package/lib/addons/from-messages-send.js.map +1 -0
- package/lib/addons/from-messages.d.ts +52 -0
- package/lib/addons/from-messages.d.ts.map +1 -0
- package/lib/addons/from-messages.js +304 -0
- package/lib/addons/from-messages.js.map +1 -0
- package/lib/addons/index.d.ts +67 -0
- package/lib/addons/index.d.ts.map +1 -0
- package/lib/addons/index.js +86 -0
- package/lib/addons/index.js.map +1 -0
- package/lib/addons/interactive-message.d.ts +201 -0
- package/lib/addons/interactive-message.d.ts.map +1 -0
- package/lib/addons/interactive-message.js +256 -0
- package/lib/addons/interactive-message.js.map +1 -0
- package/lib/addons/jid-plot.d.ts +49 -0
- package/lib/addons/jid-plot.d.ts.map +1 -0
- package/lib/addons/jid-plot.js +84 -0
- package/lib/addons/jid-plot.js.map +1 -0
- package/lib/addons/jid-plotting.d.ts +54 -0
- package/lib/addons/jid-plotting.d.ts.map +1 -0
- package/lib/addons/jid-plotting.js +150 -0
- package/lib/addons/jid-plotting.js.map +1 -0
- package/lib/addons/lid-support.d.ts +41 -0
- package/lib/addons/lid-support.d.ts.map +1 -0
- package/lib/addons/lid-support.js +42 -0
- package/lib/addons/lid-support.js.map +1 -0
- package/lib/addons/message-composer.d.ts +142 -0
- package/lib/addons/message-composer.d.ts.map +1 -0
- package/lib/addons/message-composer.js +377 -0
- package/lib/addons/message-composer.js.map +1 -0
- package/lib/addons/message-scheduler.d.ts +77 -0
- package/lib/addons/message-scheduler.d.ts.map +1 -0
- package/lib/addons/message-scheduler.js +108 -0
- package/lib/addons/message-scheduler.js.map +1 -0
- package/lib/addons/message-search.d.ts +51 -0
- package/lib/addons/message-search.d.ts.map +1 -0
- package/lib/addons/message-search.js +171 -0
- package/lib/addons/message-search.js.map +1 -0
- package/lib/addons/message-utils.d.ts +88 -0
- package/lib/addons/message-utils.d.ts.map +1 -0
- package/lib/addons/message-utils.js +292 -0
- package/lib/addons/message-utils.js.map +1 -0
- package/lib/addons/outgoing-calls.d.ts +64 -0
- package/lib/addons/outgoing-calls.d.ts.map +1 -0
- package/lib/addons/outgoing-calls.js +139 -0
- package/lib/addons/outgoing-calls.js.map +1 -0
- package/lib/addons/pairing-fix.d.ts +31 -0
- package/lib/addons/pairing-fix.d.ts.map +1 -0
- package/lib/addons/pairing-fix.js +74 -0
- package/lib/addons/pairing-fix.js.map +1 -0
- package/lib/addons/past-participants.d.ts +42 -0
- package/lib/addons/past-participants.d.ts.map +1 -0
- package/lib/addons/past-participants.js +41 -0
- package/lib/addons/past-participants.js.map +1 -0
- package/lib/addons/rich-response.d.ts +111 -0
- package/lib/addons/rich-response.d.ts.map +1 -0
- package/lib/addons/rich-response.js +152 -0
- package/lib/addons/rich-response.js.map +1 -0
- package/lib/addons/scheduling.d.ts +41 -0
- package/lib/addons/scheduling.d.ts.map +1 -0
- package/lib/addons/scheduling.js +110 -0
- package/lib/addons/scheduling.js.map +1 -0
- package/lib/addons/status-posting.d.ts +177 -0
- package/lib/addons/status-posting.d.ts.map +1 -0
- package/lib/addons/status-posting.js +240 -0
- package/lib/addons/status-posting.js.map +1 -0
- package/lib/addons/stickerpack.d.ts +37 -0
- package/lib/addons/stickerpack.d.ts.map +1 -0
- package/lib/addons/stickerpack.js +39 -0
- package/lib/addons/stickerpack.js.map +1 -0
- package/lib/addons/templates.d.ts +72 -0
- package/lib/addons/templates.d.ts.map +1 -0
- package/lib/addons/templates.js +145 -0
- package/lib/addons/templates.js.map +1 -0
- package/lib/addons/vcard.d.ts +59 -0
- package/lib/addons/vcard.d.ts.map +1 -0
- package/lib/addons/vcard.js +88 -0
- package/lib/addons/vcard.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* button-sender.ts
|
|
3
|
+
* Ported from @ryuu-reinzz/button-helper v2.2.5 → TypeScript/ESM for @queenanya/baileys
|
|
4
|
+
*
|
|
5
|
+
* Provides runtime helpers to send WhatsApp interactive / native-flow button
|
|
6
|
+
* messages via relayMessage directly, bypassing sendMessage's validation path
|
|
7
|
+
* that does not recognise interactiveMessage payloads.
|
|
8
|
+
*
|
|
9
|
+
* Visibility guarantee:
|
|
10
|
+
* All button types (quick_reply, cta_url, cta_copy, cta_call, list, template,
|
|
11
|
+
* carousel/cards, combined, single_select) render correctly on:
|
|
12
|
+
* • WhatsApp Messenger — Android & iOS
|
|
13
|
+
* • WhatsApp Business — Android & iOS
|
|
14
|
+
*
|
|
15
|
+
* What this file provides:
|
|
16
|
+
* 1. buildInteractiveButtons() — legacy → native_flow normaliser
|
|
17
|
+
* 2. validateAuthoringButtons() — permissive pre-send validation
|
|
18
|
+
* 3. validateSendButtonsPayload() — strict sendButtons payload check
|
|
19
|
+
* 4. validateSendInteractiveMessagePayload()— strict interactive payload check
|
|
20
|
+
* 5. validateInteractiveMessageContent() — post-convert check
|
|
21
|
+
* 6. convertToInteractiveMessage() — high-level authoring → proto shape
|
|
22
|
+
* 7. sendInteractiveMessage() — low-level power function
|
|
23
|
+
* 8. sendInteractiveMessageV2() — extended (thumbnail / externalAdReply)
|
|
24
|
+
* 9. sendButtons() — convenience quick-reply wrapper
|
|
25
|
+
* 10. InteractiveValidationError — structured error class
|
|
26
|
+
*
|
|
27
|
+
* getButtonType / getButtonArgs are imported from ./message-utils (already in
|
|
28
|
+
* this repo — no duplication).
|
|
29
|
+
*
|
|
30
|
+
* Usage:
|
|
31
|
+
* import { sendButtons, sendInteractiveMessage } from '@queenanya/baileys'
|
|
32
|
+
*
|
|
33
|
+
* await sendButtons(sock, jid, {
|
|
34
|
+
* text: 'Choose an option',
|
|
35
|
+
* footer: 'Bot footer',
|
|
36
|
+
* buttons: [
|
|
37
|
+
* { id: 'yes', text: 'Yes' },
|
|
38
|
+
* { id: 'no', text: 'No' },
|
|
39
|
+
* ],
|
|
40
|
+
* })
|
|
41
|
+
*/
|
|
42
|
+
import type { MessageRelayOptions, WAMessageContent } from '../Types/Message.js';
|
|
43
|
+
/** Button already in native-flow wire format */
|
|
44
|
+
export type NativeSendButton = {
|
|
45
|
+
name: string;
|
|
46
|
+
buttonParamsJson: string;
|
|
47
|
+
};
|
|
48
|
+
/** Simple legacy quick-reply { id, text } */
|
|
49
|
+
export type LegacySendButton = {
|
|
50
|
+
id?: string;
|
|
51
|
+
text?: string;
|
|
52
|
+
displayText?: string;
|
|
53
|
+
};
|
|
54
|
+
/** Old Baileys { buttonId, buttonText: { displayText } } */
|
|
55
|
+
export type OldBaileysSendButton = {
|
|
56
|
+
buttonId: string;
|
|
57
|
+
buttonText: {
|
|
58
|
+
displayText: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
export type AnyRawButton = NativeSendButton | LegacySendButton | OldBaileysSendButton | Record<string, unknown>;
|
|
62
|
+
/** Payload for sendButtons() */
|
|
63
|
+
export interface SendButtonsData {
|
|
64
|
+
text: string;
|
|
65
|
+
buttons: AnyRawButton[];
|
|
66
|
+
footer?: string;
|
|
67
|
+
title?: string;
|
|
68
|
+
subtitle?: string;
|
|
69
|
+
}
|
|
70
|
+
/** Payload for sendInteractiveMessage() */
|
|
71
|
+
export interface SendInteractiveData extends Record<string, unknown> {
|
|
72
|
+
text: string;
|
|
73
|
+
interactiveButtons: NativeSendButton[];
|
|
74
|
+
footer?: string;
|
|
75
|
+
title?: string;
|
|
76
|
+
subtitle?: string;
|
|
77
|
+
/** Public URL — thumbnail fetched and embedded as jpegThumbnail */
|
|
78
|
+
thumbnailUrl?: string;
|
|
79
|
+
contextInfo?: Record<string, unknown>;
|
|
80
|
+
}
|
|
81
|
+
export interface ValidationResult {
|
|
82
|
+
valid: boolean;
|
|
83
|
+
errors: string[];
|
|
84
|
+
warnings: string[];
|
|
85
|
+
cleaned?: AnyRawButton[];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Minimal socket interface the send helpers require.
|
|
89
|
+
* A full WASocket instance (ReturnType<typeof makeWASocket>) satisfies this.
|
|
90
|
+
*/
|
|
91
|
+
export interface ButtonSenderSocket {
|
|
92
|
+
authState: {
|
|
93
|
+
creds: {
|
|
94
|
+
me?: {
|
|
95
|
+
id: string;
|
|
96
|
+
lid?: string;
|
|
97
|
+
} | null;
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
logger?: unknown;
|
|
101
|
+
relayMessage: (jid: string, message: WAMessageContent, opts: MessageRelayOptions) => Promise<string>;
|
|
102
|
+
config?: {
|
|
103
|
+
emitOwnEvents?: boolean;
|
|
104
|
+
};
|
|
105
|
+
processingMutex?: {
|
|
106
|
+
mutex: (fn: () => Promise<unknown>) => Promise<unknown>;
|
|
107
|
+
};
|
|
108
|
+
upsertMessage?: (msg: unknown, mode: string) => Promise<unknown>;
|
|
109
|
+
user?: {
|
|
110
|
+
id: string;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Thrown when button payload authoring validation fails.
|
|
115
|
+
* Provides structured errors/warnings + a canonical example so callers can
|
|
116
|
+
* surface actionable feedback to end-users or logs.
|
|
117
|
+
*/
|
|
118
|
+
export declare class InteractiveValidationError extends Error {
|
|
119
|
+
readonly context?: string;
|
|
120
|
+
readonly errors: string[];
|
|
121
|
+
readonly warnings: string[];
|
|
122
|
+
readonly example?: unknown;
|
|
123
|
+
constructor(message: string, { context, errors, warnings, example }?: {
|
|
124
|
+
context?: string;
|
|
125
|
+
errors?: string[];
|
|
126
|
+
warnings?: string[];
|
|
127
|
+
example?: unknown;
|
|
128
|
+
});
|
|
129
|
+
toJSON(): {
|
|
130
|
+
name: string;
|
|
131
|
+
message: string;
|
|
132
|
+
context: string | undefined;
|
|
133
|
+
errors: string[];
|
|
134
|
+
warnings: string[];
|
|
135
|
+
example: unknown;
|
|
136
|
+
};
|
|
137
|
+
formatDetailed(): string;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Normalise various legacy / upstream button shapes into the native-flow format
|
|
141
|
+
* { name, buttonParamsJson }.
|
|
142
|
+
*
|
|
143
|
+
* Accepted input shapes:
|
|
144
|
+
* 1. Already native_flow : { name: string, buttonParamsJson: string }
|
|
145
|
+
* 2. Simple legacy : { id?: string, text?: string, displayText?: string }
|
|
146
|
+
* 3. Old Baileys : { buttonId: string, buttonText: { displayText: string } }
|
|
147
|
+
* 4. Unknown : passed through verbatim
|
|
148
|
+
*/
|
|
149
|
+
export declare function buildInteractiveButtons(buttons?: AnyRawButton[]): NativeSendButton[];
|
|
150
|
+
/**
|
|
151
|
+
* Validate raw button objects before conversion.
|
|
152
|
+
* Permissive: only blocks clearly malformed input.
|
|
153
|
+
*/
|
|
154
|
+
export declare function validateAuthoringButtons(buttons: unknown): ValidationResult;
|
|
155
|
+
/**
|
|
156
|
+
* Strict validator for sendButtons() payload.
|
|
157
|
+
*/
|
|
158
|
+
export declare function validateSendButtonsPayload(data: unknown): ValidationResult;
|
|
159
|
+
/**
|
|
160
|
+
* Strict validator for sendInteractiveMessage() authoring payload.
|
|
161
|
+
*/
|
|
162
|
+
export declare function validateSendInteractiveMessagePayload(data: unknown): ValidationResult;
|
|
163
|
+
/**
|
|
164
|
+
* Validate already-converted interactiveMessage content (just before WAMessage creation).
|
|
165
|
+
*/
|
|
166
|
+
export declare function validateInteractiveMessageContent(content: unknown): ValidationResult;
|
|
167
|
+
/**
|
|
168
|
+
* Convert the high-level authoring shape:
|
|
169
|
+
* { text, footer?, title?, subtitle?, interactiveButtons: [...] }
|
|
170
|
+
* into the exact structure @queenanya/baileys / WAProto expects:
|
|
171
|
+
* { interactiveMessage: { nativeFlowMessage: { buttons: [...] }, body?, header?, footer? } }
|
|
172
|
+
*
|
|
173
|
+
* Authoring-only fields are stripped so they don't leak into
|
|
174
|
+
* generateWAMessageFromContent.
|
|
175
|
+
*/
|
|
176
|
+
export declare function convertToInteractiveMessage(content: Record<string, unknown>): Record<string, unknown>;
|
|
177
|
+
/**
|
|
178
|
+
* Low-level power function — sends any interactive message by:
|
|
179
|
+
*
|
|
180
|
+
* 1. Validate authoring payload (when interactiveButtons is provided).
|
|
181
|
+
* 2. Convert to interactiveMessage / nativeFlowMessage proto shape.
|
|
182
|
+
* 3. Build WAMessage via generateWAMessageFromContent (skips sendMessage
|
|
183
|
+
* validation that rejects interactiveMessage).
|
|
184
|
+
* 4. Derive & inject required binary nodes so buttons render on all platforms:
|
|
185
|
+
* - biz node { tag:'biz', attrs:{} }
|
|
186
|
+
* - interactive child { type:'native_flow', v:'1' }
|
|
187
|
+
* - native_flow child { v:'9', name:'mixed' }
|
|
188
|
+
* - bot node { tag:'bot', attrs:{ biz_bot:'1' } } (private chats only)
|
|
189
|
+
* 5. Relay via sock.relayMessage.
|
|
190
|
+
*
|
|
191
|
+
* iOS/Android + WA Messenger + WA Business compatibility:
|
|
192
|
+
* getButtonArgs() (message-utils.ts) already handles all button categories:
|
|
193
|
+
* single_select, payment flows, mpm/catalog/location specials, standard
|
|
194
|
+
* native_flow (mixed), list, carousel/cards — each with the correct node tree.
|
|
195
|
+
*
|
|
196
|
+
* @param sock Active @queenanya/baileys socket instance.
|
|
197
|
+
* @param jid Destination chat JID.
|
|
198
|
+
* @param content Authoring payload (may include interactiveButtons).
|
|
199
|
+
* @param options Pass-through relay options (additionalNodes, etc.).
|
|
200
|
+
*/
|
|
201
|
+
export declare function sendInteractiveMessage(sock: ButtonSenderSocket, jid: string, content: Record<string, unknown>, options?: MessageRelayOptions): Promise<unknown>;
|
|
202
|
+
/**
|
|
203
|
+
* Extended send variant with thumbnail / externalAdReply patching.
|
|
204
|
+
* Merged best-of-both from button-helper v2.2.3 + v2.2.5.
|
|
205
|
+
*
|
|
206
|
+
* Dummy document priority (Patch 1):
|
|
207
|
+
* 1. content.filePath — load file from local disk path (v2.2.3)
|
|
208
|
+
* 2. content.fileUrl — fetch file buffer from a URL (v2.2.3)
|
|
209
|
+
* 3. content.thumbnailUrl — fetch jpegThumbnail buffer AND use as dummy (v2.2.5)
|
|
210
|
+
* 4. fallback — plain text dummy buffer (v2.2.3)
|
|
211
|
+
* mimetype is taken from content.mimetype if provided, else auto-detected.
|
|
212
|
+
*
|
|
213
|
+
* externalAdReply (Patch 2) — merged fields from both versions:
|
|
214
|
+
* - containsAutoReply : true (v2.2.3)
|
|
215
|
+
* - mediaUrl / thumbnailUrl (v2.2.5)
|
|
216
|
+
* - renderLargerThumbnail : true (v2.2.5)
|
|
217
|
+
* - jpegThumbnail buffer (v2.2.5 — WA trusts this most)
|
|
218
|
+
*
|
|
219
|
+
* axios is a soft peer dependency — errors are non-fatal (console warn only).
|
|
220
|
+
*
|
|
221
|
+
* @example — thumbnail from URL
|
|
222
|
+
* await sendInteractiveMessageV2(sock, jid, {
|
|
223
|
+
* text: 'Hello',
|
|
224
|
+
* thumbnailUrl: 'https://example.com/thumb.jpg',
|
|
225
|
+
* interactiveButtons: [{ name: 'quick_reply', buttonParamsJson: '{"display_text":"Hi","id":"hi"}' }],
|
|
226
|
+
* })
|
|
227
|
+
*
|
|
228
|
+
* @example — dummy file from local path
|
|
229
|
+
* await sendInteractiveMessageV2(sock, jid, {
|
|
230
|
+
* text: 'Hello',
|
|
231
|
+
* filePath: '/tmp/myfile.pdf',
|
|
232
|
+
* mimetype: 'application/pdf',
|
|
233
|
+
* interactiveButtons: [...],
|
|
234
|
+
* })
|
|
235
|
+
*/
|
|
236
|
+
export declare function sendInteractiveMessageV2(sock: ButtonSenderSocket, jid: string, content: Record<string, unknown>, options?: MessageRelayOptions): Promise<unknown>;
|
|
237
|
+
/**
|
|
238
|
+
* Convenience wrapper for the most common quick-reply / CTA button use case.
|
|
239
|
+
*
|
|
240
|
+
* @example — quick-reply
|
|
241
|
+
* await sendButtons(sock, jid, {
|
|
242
|
+
* text: 'Are you sure?',
|
|
243
|
+
* footer: 'Bot v1',
|
|
244
|
+
* buttons: [
|
|
245
|
+
* { id: 'yes', text: 'Yes' },
|
|
246
|
+
* { id: 'no', text: 'No' },
|
|
247
|
+
* ],
|
|
248
|
+
* })
|
|
249
|
+
*
|
|
250
|
+
* @example — mixed quick-reply + CTA URL
|
|
251
|
+
* await sendButtons(sock, jid, {
|
|
252
|
+
* text: 'Check our site',
|
|
253
|
+
* buttons: [
|
|
254
|
+
* { id: 'info', text: 'More Info' },
|
|
255
|
+
* { name: 'cta_url', buttonParamsJson: JSON.stringify({ display_text: 'Open', url: 'https://example.com' }) },
|
|
256
|
+
* ],
|
|
257
|
+
* })
|
|
258
|
+
*/
|
|
259
|
+
export declare function sendButtons(sock: ButtonSenderSocket, jid: string, data?: SendButtonsData, options?: MessageRelayOptions): Promise<unknown>;
|
|
260
|
+
//# sourceMappingURL=button-sender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-sender.d.ts","sourceRoot":"","sources":["../../src/addons/button-sender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAYhF,gDAAgD;AAChD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,4DAA4D;AAC5D,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE/G,gCAAgC;AAChC,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,2CAA2C;AAC3C,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE;QAAE,KAAK,EAAE;YAAE,EAAE,CAAC,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,GAAG,CAAC,EAAE,MAAM,CAAA;aAAE,GAAG,IAAI,CAAA;SAAE,CAAA;KAAE,CAAA;IAClE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACpG,MAAM,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACpC,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IAC7E,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAChE,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CACrB;AAMD;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;gBAGzB,OAAO,EAAE,MAAM,EACf,EACC,OAAO,EACP,MAAW,EACX,QAAa,EACb,OAAO,EACP,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO;IAUxF,MAAM;;;;;;;;IAWN,cAAc,IAAI,MAAM;CAkBxB;AAiID;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,YAAY,EAAO,GAAG,gBAAgB,EAAE,CAiCxF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAgD3E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAwD1E;AAED;;GAEG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CA2CrF;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAsDpF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuCrG;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,OAAO,CAAC,CA4FlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,OAAO,CAAC,CA4FlB;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,eAA2C,EACjD,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,OAAO,CAAC,CA6ClB"}
|