@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.
Files changed (327) hide show
  1. package/README.md +349 -1171
  2. package/WAProto/fix-imports.js +74 -18
  3. package/WAProto/index.js +201 -160
  4. package/engine-requirements.js +7 -7
  5. package/lib/Defaults/index.d.ts +19 -0
  6. package/lib/Defaults/index.d.ts.map +1 -1
  7. package/lib/Defaults/index.js +32 -6
  8. package/lib/Defaults/index.js.map +1 -1
  9. package/lib/Signal/libsignal.d.ts.map +1 -1
  10. package/lib/Signal/libsignal.js +61 -2
  11. package/lib/Signal/libsignal.js.map +1 -1
  12. package/lib/Signal/lid-mapping.d.ts +5 -9
  13. package/lib/Signal/lid-mapping.d.ts.map +1 -1
  14. package/lib/Signal/lid-mapping.js +170 -70
  15. package/lib/Signal/lid-mapping.js.map +1 -1
  16. package/lib/Socket/Client/websocket.d.ts +1 -1
  17. package/lib/Socket/Client/websocket.d.ts.map +1 -1
  18. package/lib/Socket/Client/websocket.js +5 -1
  19. package/lib/Socket/Client/websocket.js.map +1 -1
  20. package/lib/Socket/business.d.ts +125 -5
  21. package/lib/Socket/business.d.ts.map +1 -1
  22. package/lib/Socket/business.js +11 -8
  23. package/lib/Socket/business.js.map +1 -1
  24. package/lib/Socket/chats.d.ts +22 -3
  25. package/lib/Socket/chats.d.ts.map +1 -1
  26. package/lib/Socket/chats.js +277 -58
  27. package/lib/Socket/chats.js.map +1 -1
  28. package/lib/Socket/communities.d.ts +125 -5
  29. package/lib/Socket/communities.d.ts.map +1 -1
  30. package/lib/Socket/groups.d.ts +19 -3
  31. package/lib/Socket/groups.d.ts.map +1 -1
  32. package/lib/Socket/groups.js +7 -1
  33. package/lib/Socket/groups.js.map +1 -1
  34. package/lib/Socket/index.d.ts +125 -5
  35. package/lib/Socket/index.d.ts.map +1 -1
  36. package/lib/Socket/index.js +0 -6
  37. package/lib/Socket/index.js.map +1 -1
  38. package/lib/Socket/messages-recv.d.ts +126 -6
  39. package/lib/Socket/messages-recv.d.ts.map +1 -1
  40. package/lib/Socket/messages-recv.js +771 -177
  41. package/lib/Socket/messages-recv.js.map +1 -1
  42. package/lib/Socket/messages-send.d.ts +129 -7
  43. package/lib/Socket/messages-send.d.ts.map +1 -1
  44. package/lib/Socket/messages-send.js +430 -119
  45. package/lib/Socket/messages-send.js.map +1 -1
  46. package/lib/Socket/newsletter.d.ts +20 -5
  47. package/lib/Socket/newsletter.d.ts.map +1 -1
  48. package/lib/Socket/newsletter.js +2 -47
  49. package/lib/Socket/newsletter.js.map +1 -1
  50. package/lib/Socket/socket.d.ts +3 -1
  51. package/lib/Socket/socket.d.ts.map +1 -1
  52. package/lib/Socket/socket.js +151 -29
  53. package/lib/Socket/socket.js.map +1 -1
  54. package/lib/Types/Auth.d.ts +2 -0
  55. package/lib/Types/Auth.d.ts.map +1 -1
  56. package/lib/Types/Call.d.ts +10 -1
  57. package/lib/Types/Call.d.ts.map +1 -1
  58. package/lib/Types/Contact.d.ts +2 -0
  59. package/lib/Types/Contact.d.ts.map +1 -1
  60. package/lib/Types/Events.d.ts +60 -6
  61. package/lib/Types/Events.d.ts.map +1 -1
  62. package/lib/Types/GroupMetadata.d.ts +4 -0
  63. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  64. package/lib/Types/Message.d.ts +530 -16
  65. package/lib/Types/Message.d.ts.map +1 -1
  66. package/lib/Types/Message.js.map +1 -1
  67. package/lib/Types/Newsletter.d.ts +32 -45
  68. package/lib/Types/Newsletter.d.ts.map +1 -1
  69. package/lib/Types/Newsletter.js +25 -23
  70. package/lib/Types/Newsletter.js.map +1 -1
  71. package/lib/Types/State.d.ts +54 -0
  72. package/lib/Types/State.d.ts.map +1 -1
  73. package/lib/Types/State.js +42 -0
  74. package/lib/Types/State.js.map +1 -1
  75. package/lib/Types/index.d.ts +9 -0
  76. package/lib/Types/index.d.ts.map +1 -1
  77. package/lib/Types/index.js.map +1 -1
  78. package/lib/Utils/auth-utils.d.ts.map +1 -1
  79. package/lib/Utils/auth-utils.js +53 -20
  80. package/lib/Utils/auth-utils.js.map +1 -1
  81. package/lib/Utils/browser-utils.d.ts +13 -0
  82. package/lib/Utils/browser-utils.d.ts.map +1 -1
  83. package/lib/Utils/browser-utils.js +90 -10
  84. package/lib/Utils/browser-utils.js.map +1 -1
  85. package/lib/Utils/chat-utils.d.ts +30 -0
  86. package/lib/Utils/chat-utils.d.ts.map +1 -1
  87. package/lib/Utils/chat-utils.js +134 -59
  88. package/lib/Utils/chat-utils.js.map +1 -1
  89. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  90. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  91. package/lib/Utils/companion-reg-client-utils.js +34 -0
  92. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  93. package/lib/Utils/crypto.d.ts +4 -8
  94. package/lib/Utils/crypto.d.ts.map +1 -1
  95. package/lib/Utils/crypto.js +2 -26
  96. package/lib/Utils/crypto.js.map +1 -1
  97. package/lib/Utils/decode-wa-message.d.ts +12 -0
  98. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  99. package/lib/Utils/decode-wa-message.js +16 -0
  100. package/lib/Utils/decode-wa-message.js.map +1 -1
  101. package/lib/Utils/event-buffer.d.ts.map +1 -1
  102. package/lib/Utils/event-buffer.js +43 -8
  103. package/lib/Utils/event-buffer.js.map +1 -1
  104. package/lib/Utils/generics.d.ts +3 -1
  105. package/lib/Utils/generics.d.ts.map +1 -1
  106. package/lib/Utils/generics.js +17 -4
  107. package/lib/Utils/generics.js.map +1 -1
  108. package/lib/Utils/history.d.ts +8 -3
  109. package/lib/Utils/history.d.ts.map +1 -1
  110. package/lib/Utils/history.js +60 -16
  111. package/lib/Utils/history.js.map +1 -1
  112. package/lib/Utils/identity-change-handler.d.ts +44 -0
  113. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  114. package/lib/Utils/identity-change-handler.js +50 -0
  115. package/lib/Utils/identity-change-handler.js.map +1 -0
  116. package/lib/Utils/index.d.ts +6 -0
  117. package/lib/Utils/index.d.ts.map +1 -1
  118. package/lib/Utils/index.js +6 -0
  119. package/lib/Utils/index.js.map +1 -1
  120. package/lib/Utils/interactive-message.d.ts +201 -0
  121. package/lib/Utils/interactive-message.d.ts.map +1 -0
  122. package/lib/Utils/interactive-message.js +256 -0
  123. package/lib/Utils/interactive-message.js.map +1 -0
  124. package/lib/Utils/lt-hash.d.ts +7 -12
  125. package/lib/Utils/lt-hash.d.ts.map +1 -1
  126. package/lib/Utils/lt-hash.js +2 -42
  127. package/lib/Utils/lt-hash.js.map +1 -1
  128. package/lib/Utils/make-mutex.d.ts +1 -0
  129. package/lib/Utils/make-mutex.d.ts.map +1 -1
  130. package/lib/Utils/make-mutex.js +20 -27
  131. package/lib/Utils/make-mutex.js.map +1 -1
  132. package/lib/Utils/message-composer.d.ts +5 -0
  133. package/lib/Utils/message-composer.d.ts.map +1 -0
  134. package/lib/Utils/message-composer.js +5 -0
  135. package/lib/Utils/message-composer.js.map +1 -0
  136. package/lib/Utils/message-retry-manager.d.ts +30 -2
  137. package/lib/Utils/message-retry-manager.d.ts.map +1 -1
  138. package/lib/Utils/message-retry-manager.js +58 -5
  139. package/lib/Utils/message-retry-manager.js.map +1 -1
  140. package/lib/Utils/messages-media.d.ts +35 -5
  141. package/lib/Utils/messages-media.d.ts.map +1 -1
  142. package/lib/Utils/messages-media.js +171 -51
  143. package/lib/Utils/messages-media.js.map +1 -1
  144. package/lib/Utils/messages.d.ts +2 -0
  145. package/lib/Utils/messages.d.ts.map +1 -1
  146. package/lib/Utils/messages.js +475 -35
  147. package/lib/Utils/messages.js.map +1 -1
  148. package/lib/Utils/noise-handler.d.ts +4 -4
  149. package/lib/Utils/noise-handler.d.ts.map +1 -1
  150. package/lib/Utils/noise-handler.js +139 -85
  151. package/lib/Utils/noise-handler.js.map +1 -1
  152. package/lib/Utils/offline-node-processor.d.ts +17 -0
  153. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  154. package/lib/Utils/offline-node-processor.js +40 -0
  155. package/lib/Utils/offline-node-processor.js.map +1 -0
  156. package/lib/Utils/process-message.d.ts.map +1 -1
  157. package/lib/Utils/process-message.js +115 -16
  158. package/lib/Utils/process-message.js.map +1 -1
  159. package/lib/Utils/reporting-utils.d.ts +11 -0
  160. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  161. package/lib/Utils/reporting-utils.js +258 -0
  162. package/lib/Utils/reporting-utils.js.map +1 -0
  163. package/lib/Utils/stanza-ack.d.ts +11 -0
  164. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  165. package/lib/Utils/stanza-ack.js +38 -0
  166. package/lib/Utils/stanza-ack.js.map +1 -0
  167. package/lib/Utils/sync-action-utils.d.ts +19 -0
  168. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  169. package/lib/Utils/sync-action-utils.js +49 -0
  170. package/lib/Utils/sync-action-utils.js.map +1 -0
  171. package/lib/Utils/tc-token-utils.d.ts +37 -0
  172. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  173. package/lib/Utils/tc-token-utils.js +163 -0
  174. package/lib/Utils/tc-token-utils.js.map +1 -0
  175. package/lib/Utils/use-mongo-file-auth-state.d.ts +16 -0
  176. package/lib/Utils/use-mongo-file-auth-state.d.ts.map +1 -0
  177. package/lib/Utils/use-mongo-file-auth-state.js +60 -0
  178. package/lib/Utils/use-mongo-file-auth-state.js.map +1 -0
  179. package/lib/Utils/use-multi-file-auth-state.js +1 -1
  180. package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
  181. package/lib/Utils/use-single-file-auth-state.d.ts.map +1 -1
  182. package/lib/Utils/use-single-file-auth-state.js.map +1 -1
  183. package/lib/Utils/validate-connection.d.ts.map +1 -1
  184. package/lib/Utils/validate-connection.js +11 -1
  185. package/lib/Utils/validate-connection.js.map +1 -1
  186. package/lib/WABinary/decode.d.ts.map +1 -1
  187. package/lib/WABinary/decode.js +24 -0
  188. package/lib/WABinary/decode.js.map +1 -1
  189. package/lib/WABinary/encode.js +5 -1
  190. package/lib/WABinary/encode.js.map +1 -1
  191. package/lib/WABinary/generic-utils.d.ts +10 -1
  192. package/lib/WABinary/generic-utils.d.ts.map +1 -1
  193. package/lib/WABinary/generic-utils.js +42 -8
  194. package/lib/WABinary/generic-utils.js.map +1 -1
  195. package/lib/WABinary/jid-utils.js.map +1 -1
  196. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -1
  197. package/lib/WAUSync/Protocols/USyncContactProtocol.js +26 -3
  198. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -1
  199. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  200. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  201. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  202. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  203. package/lib/WAUSync/Protocols/index.d.ts +1 -0
  204. package/lib/WAUSync/Protocols/index.d.ts.map +1 -1
  205. package/lib/WAUSync/Protocols/index.js +1 -0
  206. package/lib/WAUSync/Protocols/index.js.map +1 -1
  207. package/lib/WAUSync/USyncQuery.d.ts +1 -0
  208. package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
  209. package/lib/WAUSync/USyncQuery.js +6 -2
  210. package/lib/WAUSync/USyncQuery.js.map +1 -1
  211. package/lib/WAUSync/USyncUser.d.ts +4 -0
  212. package/lib/WAUSync/USyncUser.d.ts.map +1 -1
  213. package/lib/WAUSync/USyncUser.js +8 -0
  214. package/lib/WAUSync/USyncUser.js.map +1 -1
  215. package/lib/addons/anti-delete.d.ts +72 -0
  216. package/lib/addons/anti-delete.d.ts.map +1 -0
  217. package/lib/addons/anti-delete.js +165 -0
  218. package/lib/addons/anti-delete.js.map +1 -0
  219. package/lib/addons/auto-reply.d.ts +67 -0
  220. package/lib/addons/auto-reply.d.ts.map +1 -0
  221. package/lib/addons/auto-reply.js +145 -0
  222. package/lib/addons/auto-reply.js.map +1 -0
  223. package/lib/addons/browser-presets.d.ts +16 -0
  224. package/lib/addons/browser-presets.d.ts.map +1 -0
  225. package/lib/addons/browser-presets.js +24 -0
  226. package/lib/addons/browser-presets.js.map +1 -0
  227. package/lib/addons/button-sender.d.ts +260 -0
  228. package/lib/addons/button-sender.d.ts.map +1 -0
  229. package/lib/addons/button-sender.js +771 -0
  230. package/lib/addons/button-sender.js.map +1 -0
  231. package/lib/addons/call-handler.d.ts +79 -0
  232. package/lib/addons/call-handler.d.ts.map +1 -0
  233. package/lib/addons/call-handler.js +342 -0
  234. package/lib/addons/call-handler.js.map +1 -0
  235. package/lib/addons/from-chats.d.ts +30 -0
  236. package/lib/addons/from-chats.d.ts.map +1 -0
  237. package/lib/addons/from-chats.js +38 -0
  238. package/lib/addons/from-chats.js.map +1 -0
  239. package/lib/addons/from-messages-recv.d.ts +59 -0
  240. package/lib/addons/from-messages-recv.d.ts.map +1 -0
  241. package/lib/addons/from-messages-recv.js +326 -0
  242. package/lib/addons/from-messages-recv.js.map +1 -0
  243. package/lib/addons/from-messages-send.d.ts +50 -0
  244. package/lib/addons/from-messages-send.d.ts.map +1 -0
  245. package/lib/addons/from-messages-send.js +148 -0
  246. package/lib/addons/from-messages-send.js.map +1 -0
  247. package/lib/addons/from-messages.d.ts +52 -0
  248. package/lib/addons/from-messages.d.ts.map +1 -0
  249. package/lib/addons/from-messages.js +304 -0
  250. package/lib/addons/from-messages.js.map +1 -0
  251. package/lib/addons/index.d.ts +67 -0
  252. package/lib/addons/index.d.ts.map +1 -0
  253. package/lib/addons/index.js +86 -0
  254. package/lib/addons/index.js.map +1 -0
  255. package/lib/addons/interactive-message.d.ts +201 -0
  256. package/lib/addons/interactive-message.d.ts.map +1 -0
  257. package/lib/addons/interactive-message.js +256 -0
  258. package/lib/addons/interactive-message.js.map +1 -0
  259. package/lib/addons/jid-plot.d.ts +49 -0
  260. package/lib/addons/jid-plot.d.ts.map +1 -0
  261. package/lib/addons/jid-plot.js +84 -0
  262. package/lib/addons/jid-plot.js.map +1 -0
  263. package/lib/addons/jid-plotting.d.ts +54 -0
  264. package/lib/addons/jid-plotting.d.ts.map +1 -0
  265. package/lib/addons/jid-plotting.js +150 -0
  266. package/lib/addons/jid-plotting.js.map +1 -0
  267. package/lib/addons/lid-support.d.ts +41 -0
  268. package/lib/addons/lid-support.d.ts.map +1 -0
  269. package/lib/addons/lid-support.js +42 -0
  270. package/lib/addons/lid-support.js.map +1 -0
  271. package/lib/addons/message-composer.d.ts +142 -0
  272. package/lib/addons/message-composer.d.ts.map +1 -0
  273. package/lib/addons/message-composer.js +377 -0
  274. package/lib/addons/message-composer.js.map +1 -0
  275. package/lib/addons/message-scheduler.d.ts +77 -0
  276. package/lib/addons/message-scheduler.d.ts.map +1 -0
  277. package/lib/addons/message-scheduler.js +108 -0
  278. package/lib/addons/message-scheduler.js.map +1 -0
  279. package/lib/addons/message-search.d.ts +51 -0
  280. package/lib/addons/message-search.d.ts.map +1 -0
  281. package/lib/addons/message-search.js +171 -0
  282. package/lib/addons/message-search.js.map +1 -0
  283. package/lib/addons/message-utils.d.ts +88 -0
  284. package/lib/addons/message-utils.d.ts.map +1 -0
  285. package/lib/addons/message-utils.js +292 -0
  286. package/lib/addons/message-utils.js.map +1 -0
  287. package/lib/addons/outgoing-calls.d.ts +64 -0
  288. package/lib/addons/outgoing-calls.d.ts.map +1 -0
  289. package/lib/addons/outgoing-calls.js +139 -0
  290. package/lib/addons/outgoing-calls.js.map +1 -0
  291. package/lib/addons/pairing-fix.d.ts +31 -0
  292. package/lib/addons/pairing-fix.d.ts.map +1 -0
  293. package/lib/addons/pairing-fix.js +74 -0
  294. package/lib/addons/pairing-fix.js.map +1 -0
  295. package/lib/addons/past-participants.d.ts +42 -0
  296. package/lib/addons/past-participants.d.ts.map +1 -0
  297. package/lib/addons/past-participants.js +41 -0
  298. package/lib/addons/past-participants.js.map +1 -0
  299. package/lib/addons/rich-response.d.ts +111 -0
  300. package/lib/addons/rich-response.d.ts.map +1 -0
  301. package/lib/addons/rich-response.js +152 -0
  302. package/lib/addons/rich-response.js.map +1 -0
  303. package/lib/addons/scheduling.d.ts +41 -0
  304. package/lib/addons/scheduling.d.ts.map +1 -0
  305. package/lib/addons/scheduling.js +110 -0
  306. package/lib/addons/scheduling.js.map +1 -0
  307. package/lib/addons/status-posting.d.ts +177 -0
  308. package/lib/addons/status-posting.d.ts.map +1 -0
  309. package/lib/addons/status-posting.js +240 -0
  310. package/lib/addons/status-posting.js.map +1 -0
  311. package/lib/addons/stickerpack.d.ts +37 -0
  312. package/lib/addons/stickerpack.d.ts.map +1 -0
  313. package/lib/addons/stickerpack.js +39 -0
  314. package/lib/addons/stickerpack.js.map +1 -0
  315. package/lib/addons/templates.d.ts +72 -0
  316. package/lib/addons/templates.d.ts.map +1 -0
  317. package/lib/addons/templates.js +145 -0
  318. package/lib/addons/templates.js.map +1 -0
  319. package/lib/addons/vcard.d.ts +59 -0
  320. package/lib/addons/vcard.d.ts.map +1 -0
  321. package/lib/addons/vcard.js +88 -0
  322. package/lib/addons/vcard.js.map +1 -0
  323. package/lib/index.d.ts +1 -0
  324. package/lib/index.d.ts.map +1 -1
  325. package/lib/index.js +1 -0
  326. package/lib/index.js.map +1 -1
  327. 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":"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"}