@queenanya/baileys 9.2.4 → 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 (299) hide show
  1. package/README.md +329 -1237
  2. package/WAProto/fix-imports.js +22 -18
  3. package/WAProto/index.js +22 -18
  4. package/lib/Defaults/index.d.ts +17 -0
  5. package/lib/Defaults/index.d.ts.map +1 -1
  6. package/lib/Defaults/index.js +29 -3
  7. package/lib/Defaults/index.js.map +1 -1
  8. package/lib/Signal/libsignal.d.ts.map +1 -1
  9. package/lib/Signal/libsignal.js +61 -2
  10. package/lib/Signal/libsignal.js.map +1 -1
  11. package/lib/Signal/lid-mapping.d.ts +5 -9
  12. package/lib/Signal/lid-mapping.d.ts.map +1 -1
  13. package/lib/Signal/lid-mapping.js +170 -70
  14. package/lib/Signal/lid-mapping.js.map +1 -1
  15. package/lib/Socket/business.d.ts +112 -2
  16. package/lib/Socket/business.d.ts.map +1 -1
  17. package/lib/Socket/chats.d.ts +10 -0
  18. package/lib/Socket/chats.d.ts.map +1 -1
  19. package/lib/Socket/chats.js +243 -38
  20. package/lib/Socket/chats.js.map +1 -1
  21. package/lib/Socket/communities.d.ts +112 -2
  22. package/lib/Socket/communities.d.ts.map +1 -1
  23. package/lib/Socket/groups.d.ts +7 -0
  24. package/lib/Socket/groups.d.ts.map +1 -1
  25. package/lib/Socket/groups.js +6 -0
  26. package/lib/Socket/groups.js.map +1 -1
  27. package/lib/Socket/index.d.ts +112 -2
  28. package/lib/Socket/index.d.ts.map +1 -1
  29. package/lib/Socket/index.js +0 -6
  30. package/lib/Socket/index.js.map +1 -1
  31. package/lib/Socket/messages-recv.d.ts +113 -3
  32. package/lib/Socket/messages-recv.d.ts.map +1 -1
  33. package/lib/Socket/messages-recv.js +739 -150
  34. package/lib/Socket/messages-recv.js.map +1 -1
  35. package/lib/Socket/messages-send.d.ts +116 -4
  36. package/lib/Socket/messages-send.d.ts.map +1 -1
  37. package/lib/Socket/messages-send.js +328 -86
  38. package/lib/Socket/messages-send.js.map +1 -1
  39. package/lib/Socket/newsletter.d.ts +7 -0
  40. package/lib/Socket/newsletter.d.ts.map +1 -1
  41. package/lib/Socket/socket.d.ts +2 -0
  42. package/lib/Socket/socket.d.ts.map +1 -1
  43. package/lib/Socket/socket.js +142 -16
  44. package/lib/Socket/socket.js.map +1 -1
  45. package/lib/Types/Auth.d.ts +2 -0
  46. package/lib/Types/Auth.d.ts.map +1 -1
  47. package/lib/Types/Call.d.ts +10 -1
  48. package/lib/Types/Call.d.ts.map +1 -1
  49. package/lib/Types/Contact.d.ts +2 -0
  50. package/lib/Types/Contact.d.ts.map +1 -1
  51. package/lib/Types/Events.d.ts +21 -1
  52. package/lib/Types/Events.d.ts.map +1 -1
  53. package/lib/Types/GroupMetadata.d.ts +4 -0
  54. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  55. package/lib/Types/Message.d.ts +530 -16
  56. package/lib/Types/Message.d.ts.map +1 -1
  57. package/lib/Types/Message.js.map +1 -1
  58. package/lib/Types/Newsletter.d.ts +33 -29
  59. package/lib/Types/Newsletter.d.ts.map +1 -1
  60. package/lib/Types/Newsletter.js +25 -23
  61. package/lib/Types/Newsletter.js.map +1 -1
  62. package/lib/Types/State.d.ts +54 -0
  63. package/lib/Types/State.d.ts.map +1 -1
  64. package/lib/Types/State.js +42 -0
  65. package/lib/Types/State.js.map +1 -1
  66. package/lib/Types/index.d.ts +9 -0
  67. package/lib/Types/index.d.ts.map +1 -1
  68. package/lib/Types/index.js.map +1 -1
  69. package/lib/Utils/browser-utils.d.ts +13 -0
  70. package/lib/Utils/browser-utils.d.ts.map +1 -1
  71. package/lib/Utils/browser-utils.js +90 -10
  72. package/lib/Utils/browser-utils.js.map +1 -1
  73. package/lib/Utils/chat-utils.d.ts +30 -0
  74. package/lib/Utils/chat-utils.d.ts.map +1 -1
  75. package/lib/Utils/chat-utils.js +81 -52
  76. package/lib/Utils/chat-utils.js.map +1 -1
  77. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  78. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  79. package/lib/Utils/companion-reg-client-utils.js +34 -0
  80. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  81. package/lib/Utils/crypto.d.ts +4 -8
  82. package/lib/Utils/crypto.d.ts.map +1 -1
  83. package/lib/Utils/crypto.js +2 -26
  84. package/lib/Utils/crypto.js.map +1 -1
  85. package/lib/Utils/decode-wa-message.d.ts +12 -0
  86. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  87. package/lib/Utils/decode-wa-message.js +16 -0
  88. package/lib/Utils/decode-wa-message.js.map +1 -1
  89. package/lib/Utils/event-buffer.js +10 -1
  90. package/lib/Utils/event-buffer.js.map +1 -1
  91. package/lib/Utils/generics.d.ts +3 -1
  92. package/lib/Utils/generics.d.ts.map +1 -1
  93. package/lib/Utils/generics.js +16 -3
  94. package/lib/Utils/generics.js.map +1 -1
  95. package/lib/Utils/history.d.ts +5 -2
  96. package/lib/Utils/history.d.ts.map +1 -1
  97. package/lib/Utils/history.js +53 -17
  98. package/lib/Utils/history.js.map +1 -1
  99. package/lib/Utils/identity-change-handler.d.ts +44 -0
  100. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  101. package/lib/Utils/identity-change-handler.js +50 -0
  102. package/lib/Utils/identity-change-handler.js.map +1 -0
  103. package/lib/Utils/index.d.ts +6 -0
  104. package/lib/Utils/index.d.ts.map +1 -1
  105. package/lib/Utils/index.js +6 -0
  106. package/lib/Utils/index.js.map +1 -1
  107. package/lib/Utils/interactive-message.d.ts +201 -0
  108. package/lib/Utils/interactive-message.d.ts.map +1 -0
  109. package/lib/Utils/interactive-message.js +256 -0
  110. package/lib/Utils/interactive-message.js.map +1 -0
  111. package/lib/Utils/lt-hash.d.ts +7 -12
  112. package/lib/Utils/lt-hash.d.ts.map +1 -1
  113. package/lib/Utils/lt-hash.js +2 -42
  114. package/lib/Utils/lt-hash.js.map +1 -1
  115. package/lib/Utils/message-composer.d.ts +5 -0
  116. package/lib/Utils/message-composer.d.ts.map +1 -0
  117. package/lib/Utils/message-composer.js +5 -0
  118. package/lib/Utils/message-composer.js.map +1 -0
  119. package/lib/Utils/message-retry-manager.d.ts +30 -2
  120. package/lib/Utils/message-retry-manager.d.ts.map +1 -1
  121. package/lib/Utils/message-retry-manager.js +59 -2
  122. package/lib/Utils/message-retry-manager.js.map +1 -1
  123. package/lib/Utils/messages-media.d.ts +19 -5
  124. package/lib/Utils/messages-media.d.ts.map +1 -1
  125. package/lib/Utils/messages-media.js +26 -17
  126. package/lib/Utils/messages-media.js.map +1 -1
  127. package/lib/Utils/messages.d.ts.map +1 -1
  128. package/lib/Utils/messages.js +433 -13
  129. package/lib/Utils/messages.js.map +1 -1
  130. package/lib/Utils/noise-handler.d.ts +2 -2
  131. package/lib/Utils/noise-handler.d.ts.map +1 -1
  132. package/lib/Utils/noise-handler.js +10 -10
  133. package/lib/Utils/noise-handler.js.map +1 -1
  134. package/lib/Utils/offline-node-processor.d.ts +17 -0
  135. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  136. package/lib/Utils/offline-node-processor.js +40 -0
  137. package/lib/Utils/offline-node-processor.js.map +1 -0
  138. package/lib/Utils/process-message.d.ts.map +1 -1
  139. package/lib/Utils/process-message.js +96 -16
  140. package/lib/Utils/process-message.js.map +1 -1
  141. package/lib/Utils/reporting-utils.js +2 -2
  142. package/lib/Utils/reporting-utils.js.map +1 -1
  143. package/lib/Utils/stanza-ack.d.ts +11 -0
  144. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  145. package/lib/Utils/stanza-ack.js +38 -0
  146. package/lib/Utils/stanza-ack.js.map +1 -0
  147. package/lib/Utils/sync-action-utils.d.ts.map +1 -1
  148. package/lib/Utils/sync-action-utils.js +2 -1
  149. package/lib/Utils/sync-action-utils.js.map +1 -1
  150. package/lib/Utils/tc-token-utils.d.ts +26 -1
  151. package/lib/Utils/tc-token-utils.d.ts.map +1 -1
  152. package/lib/Utils/tc-token-utils.js +149 -4
  153. package/lib/Utils/tc-token-utils.js.map +1 -1
  154. package/lib/Utils/use-mongo-file-auth-state.d.ts +16 -0
  155. package/lib/Utils/use-mongo-file-auth-state.d.ts.map +1 -0
  156. package/lib/Utils/use-mongo-file-auth-state.js +60 -0
  157. package/lib/Utils/use-mongo-file-auth-state.js.map +1 -0
  158. package/lib/Utils/use-multi-file-auth-state.js +1 -1
  159. package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
  160. package/lib/Utils/validate-connection.d.ts.map +1 -1
  161. package/lib/Utils/validate-connection.js +11 -1
  162. package/lib/Utils/validate-connection.js.map +1 -1
  163. package/lib/WABinary/generic-utils.d.ts +9 -0
  164. package/lib/WABinary/generic-utils.d.ts.map +1 -1
  165. package/lib/WABinary/generic-utils.js +23 -0
  166. package/lib/WABinary/generic-utils.js.map +1 -1
  167. package/lib/WABinary/jid-utils.js.map +1 -1
  168. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -1
  169. package/lib/WAUSync/Protocols/USyncContactProtocol.js +26 -3
  170. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -1
  171. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  172. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  173. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  174. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  175. package/lib/WAUSync/Protocols/index.d.ts +1 -0
  176. package/lib/WAUSync/Protocols/index.d.ts.map +1 -1
  177. package/lib/WAUSync/Protocols/index.js +1 -0
  178. package/lib/WAUSync/Protocols/index.js.map +1 -1
  179. package/lib/WAUSync/USyncQuery.d.ts +1 -0
  180. package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
  181. package/lib/WAUSync/USyncQuery.js +5 -1
  182. package/lib/WAUSync/USyncQuery.js.map +1 -1
  183. package/lib/WAUSync/USyncUser.d.ts +4 -0
  184. package/lib/WAUSync/USyncUser.d.ts.map +1 -1
  185. package/lib/WAUSync/USyncUser.js +8 -0
  186. package/lib/WAUSync/USyncUser.js.map +1 -1
  187. package/lib/addons/anti-delete.d.ts +72 -0
  188. package/lib/addons/anti-delete.d.ts.map +1 -0
  189. package/lib/addons/anti-delete.js +165 -0
  190. package/lib/addons/anti-delete.js.map +1 -0
  191. package/lib/addons/auto-reply.d.ts +67 -0
  192. package/lib/addons/auto-reply.d.ts.map +1 -0
  193. package/lib/addons/auto-reply.js +145 -0
  194. package/lib/addons/auto-reply.js.map +1 -0
  195. package/lib/addons/browser-presets.d.ts +16 -0
  196. package/lib/addons/browser-presets.d.ts.map +1 -0
  197. package/lib/addons/browser-presets.js +24 -0
  198. package/lib/addons/browser-presets.js.map +1 -0
  199. package/lib/addons/button-sender.d.ts +260 -0
  200. package/lib/addons/button-sender.d.ts.map +1 -0
  201. package/lib/addons/button-sender.js +771 -0
  202. package/lib/addons/button-sender.js.map +1 -0
  203. package/lib/addons/call-handler.d.ts +79 -0
  204. package/lib/addons/call-handler.d.ts.map +1 -0
  205. package/lib/addons/call-handler.js +342 -0
  206. package/lib/addons/call-handler.js.map +1 -0
  207. package/lib/addons/from-chats.d.ts +30 -0
  208. package/lib/addons/from-chats.d.ts.map +1 -0
  209. package/lib/addons/from-chats.js +38 -0
  210. package/lib/addons/from-chats.js.map +1 -0
  211. package/lib/addons/from-messages-recv.d.ts +59 -0
  212. package/lib/addons/from-messages-recv.d.ts.map +1 -0
  213. package/lib/addons/from-messages-recv.js +326 -0
  214. package/lib/addons/from-messages-recv.js.map +1 -0
  215. package/lib/addons/from-messages-send.d.ts +50 -0
  216. package/lib/addons/from-messages-send.d.ts.map +1 -0
  217. package/lib/addons/from-messages-send.js +148 -0
  218. package/lib/addons/from-messages-send.js.map +1 -0
  219. package/lib/addons/from-messages.d.ts +52 -0
  220. package/lib/addons/from-messages.d.ts.map +1 -0
  221. package/lib/addons/from-messages.js +304 -0
  222. package/lib/addons/from-messages.js.map +1 -0
  223. package/lib/addons/index.d.ts +67 -0
  224. package/lib/addons/index.d.ts.map +1 -0
  225. package/lib/addons/index.js +86 -0
  226. package/lib/addons/index.js.map +1 -0
  227. package/lib/addons/interactive-message.d.ts +201 -0
  228. package/lib/addons/interactive-message.d.ts.map +1 -0
  229. package/lib/addons/interactive-message.js +256 -0
  230. package/lib/addons/interactive-message.js.map +1 -0
  231. package/lib/addons/jid-plot.d.ts +49 -0
  232. package/lib/addons/jid-plot.d.ts.map +1 -0
  233. package/lib/addons/jid-plot.js +84 -0
  234. package/lib/addons/jid-plot.js.map +1 -0
  235. package/lib/addons/jid-plotting.d.ts +54 -0
  236. package/lib/addons/jid-plotting.d.ts.map +1 -0
  237. package/lib/addons/jid-plotting.js +150 -0
  238. package/lib/addons/jid-plotting.js.map +1 -0
  239. package/lib/addons/lid-support.d.ts +41 -0
  240. package/lib/addons/lid-support.d.ts.map +1 -0
  241. package/lib/addons/lid-support.js +42 -0
  242. package/lib/addons/lid-support.js.map +1 -0
  243. package/lib/addons/message-composer.d.ts +142 -0
  244. package/lib/addons/message-composer.d.ts.map +1 -0
  245. package/lib/addons/message-composer.js +377 -0
  246. package/lib/addons/message-composer.js.map +1 -0
  247. package/lib/addons/message-scheduler.d.ts +77 -0
  248. package/lib/addons/message-scheduler.d.ts.map +1 -0
  249. package/lib/addons/message-scheduler.js +108 -0
  250. package/lib/addons/message-scheduler.js.map +1 -0
  251. package/lib/addons/message-search.d.ts +51 -0
  252. package/lib/addons/message-search.d.ts.map +1 -0
  253. package/lib/addons/message-search.js +171 -0
  254. package/lib/addons/message-search.js.map +1 -0
  255. package/lib/addons/message-utils.d.ts +88 -0
  256. package/lib/addons/message-utils.d.ts.map +1 -0
  257. package/lib/addons/message-utils.js +292 -0
  258. package/lib/addons/message-utils.js.map +1 -0
  259. package/lib/addons/outgoing-calls.d.ts +64 -0
  260. package/lib/addons/outgoing-calls.d.ts.map +1 -0
  261. package/lib/addons/outgoing-calls.js +139 -0
  262. package/lib/addons/outgoing-calls.js.map +1 -0
  263. package/lib/addons/pairing-fix.d.ts +31 -0
  264. package/lib/addons/pairing-fix.d.ts.map +1 -0
  265. package/lib/addons/pairing-fix.js +74 -0
  266. package/lib/addons/pairing-fix.js.map +1 -0
  267. package/lib/addons/past-participants.d.ts +42 -0
  268. package/lib/addons/past-participants.d.ts.map +1 -0
  269. package/lib/addons/past-participants.js +41 -0
  270. package/lib/addons/past-participants.js.map +1 -0
  271. package/lib/addons/rich-response.d.ts +111 -0
  272. package/lib/addons/rich-response.d.ts.map +1 -0
  273. package/lib/addons/rich-response.js +152 -0
  274. package/lib/addons/rich-response.js.map +1 -0
  275. package/lib/addons/scheduling.d.ts +41 -0
  276. package/lib/addons/scheduling.d.ts.map +1 -0
  277. package/lib/addons/scheduling.js +110 -0
  278. package/lib/addons/scheduling.js.map +1 -0
  279. package/lib/addons/status-posting.d.ts +177 -0
  280. package/lib/addons/status-posting.d.ts.map +1 -0
  281. package/lib/addons/status-posting.js +240 -0
  282. package/lib/addons/status-posting.js.map +1 -0
  283. package/lib/addons/stickerpack.d.ts +37 -0
  284. package/lib/addons/stickerpack.d.ts.map +1 -0
  285. package/lib/addons/stickerpack.js +39 -0
  286. package/lib/addons/stickerpack.js.map +1 -0
  287. package/lib/addons/templates.d.ts +72 -0
  288. package/lib/addons/templates.d.ts.map +1 -0
  289. package/lib/addons/templates.js +145 -0
  290. package/lib/addons/templates.js.map +1 -0
  291. package/lib/addons/vcard.d.ts +59 -0
  292. package/lib/addons/vcard.d.ts.map +1 -0
  293. package/lib/addons/vcard.js +88 -0
  294. package/lib/addons/vcard.js.map +1 -0
  295. package/lib/index.d.ts +1 -0
  296. package/lib/index.d.ts.map +1 -1
  297. package/lib/index.js +1 -0
  298. package/lib/index.js.map +1 -1
  299. package/package.json +4 -2
@@ -0,0 +1,201 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ import type { MediaGenerationOptions, WAMediaUpload } from '../Types/index.js';
3
+ export type InteractiveButton = {
4
+ buttonId?: string;
5
+ displayText: string;
6
+ };
7
+ export type InteractiveButtonMessageContent = {
8
+ /** Body text of the message */
9
+ body: string;
10
+ /** Footer text */
11
+ footer?: string;
12
+ /** Buttons to display */
13
+ buttons: InteractiveButton[];
14
+ /** Optional: plain text title (uses TEXT header type) */
15
+ title?: string;
16
+ /** Optional: image header */
17
+ headerImage?: WAMediaUpload;
18
+ /** Optional: video header */
19
+ headerVideo?: WAMediaUpload;
20
+ /** Optional: document header */
21
+ headerDocument?: WAMediaUpload & {
22
+ filename?: string;
23
+ };
24
+ };
25
+ export type ListRow = {
26
+ rowId: string;
27
+ title: string;
28
+ description?: string;
29
+ };
30
+ export type ListSection = {
31
+ title: string;
32
+ rows: ListRow[];
33
+ };
34
+ export type InteractiveListMessageContent = {
35
+ title: string;
36
+ description?: string;
37
+ buttonText: string;
38
+ footer?: string;
39
+ sections: ListSection[];
40
+ };
41
+ export type TemplateHydratedButton = {
42
+ index: number;
43
+ quickReplyButton?: {
44
+ displayText: string;
45
+ id: string;
46
+ };
47
+ urlButton?: {
48
+ displayText: string;
49
+ url: string;
50
+ };
51
+ callButton?: {
52
+ displayText: string;
53
+ phoneNumber: string;
54
+ };
55
+ };
56
+ export type TemplateMessageContent = {
57
+ body: string;
58
+ footer?: string;
59
+ title?: string;
60
+ buttons: TemplateHydratedButton[];
61
+ headerImage?: WAMediaUpload;
62
+ headerVideo?: WAMediaUpload;
63
+ headerLocation?: {
64
+ latitude: number;
65
+ longitude: number;
66
+ name?: string;
67
+ address?: string;
68
+ };
69
+ };
70
+ export type NativeFlowButton = {
71
+ name: string;
72
+ buttonParamsJson: string;
73
+ };
74
+ export type NativeFlowOptions = {
75
+ footer?: string;
76
+ header?: {
77
+ title?: string;
78
+ subtitle?: string;
79
+ hasMediaAttachment?: boolean;
80
+ };
81
+ };
82
+ export type CopyCodeButtonOptions = NativeFlowOptions & {
83
+ displayText?: string;
84
+ };
85
+ export type UrlButton = {
86
+ displayText: string;
87
+ url: string;
88
+ merchantUrl?: string;
89
+ };
90
+ export type UrlButtonOptions = {
91
+ footer?: string;
92
+ title?: string;
93
+ };
94
+ export type QuickReplyButton = {
95
+ displayText: string;
96
+ id: string;
97
+ };
98
+ export type QuickReplyOptions = {
99
+ footer?: string;
100
+ title?: string;
101
+ };
102
+ export type CombinedButton = {
103
+ type: 'url';
104
+ displayText: string;
105
+ url: string;
106
+ } | {
107
+ type: 'reply';
108
+ displayText: string;
109
+ id: string;
110
+ } | {
111
+ type: 'copy';
112
+ displayText: string;
113
+ copyCode: string;
114
+ } | {
115
+ type: 'call';
116
+ displayText: string;
117
+ phoneNumber: string;
118
+ };
119
+ export type CombinedButtonOptions = {
120
+ footer?: string;
121
+ title?: string;
122
+ };
123
+ /**
124
+ * Generate a classic WhatsApp ButtonsMessage (up to 3 buttons).
125
+ * Works via `sendMessage(jid, content.buttonsMessage)`.
126
+ */
127
+ export declare const generateInteractiveButtonMessage: (content: InteractiveButtonMessageContent, options?: MediaGenerationOptions) => Promise<{
128
+ buttonsMessage: proto.Message.IButtonsMessage;
129
+ }>;
130
+ /**
131
+ * Generate a single-select list message.
132
+ * Works via `sendMessage(jid, content.listMessage)`.
133
+ */
134
+ export declare const generateInteractiveListMessage: (content: InteractiveListMessageContent) => {
135
+ listMessage: proto.Message.IListMessage;
136
+ };
137
+ /**
138
+ * Generate a template message with quick-reply / URL / call buttons.
139
+ * Works via `sendMessage(jid, content.templateMessage)`.
140
+ */
141
+ export declare const generateTemplateMessage: (content: TemplateMessageContent, options?: MediaGenerationOptions) => Promise<{
142
+ templateMessage: proto.Message.ITemplateMessage;
143
+ }>;
144
+ /**
145
+ * Core builder: generate a native-flow interactiveMessage with raw button definitions.
146
+ * All higher-level helpers (generateUrlButtonMessage, generateQuickReplyButtons, etc.) call this.
147
+ */
148
+ export declare const generateNativeFlowMessage: (body: string, buttons: NativeFlowButton[], options?: NativeFlowOptions) => {
149
+ interactiveMessage: proto.Message.IInteractiveMessage;
150
+ };
151
+ /**
152
+ * Button that copies a code to the clipboard when tapped.
153
+ *
154
+ * @example
155
+ * const msg = generateCopyCodeButton('Here is your OTP', '123456')
156
+ * await sock.sendMessage(jid, msg.interactiveMessage)
157
+ */
158
+ export declare const generateCopyCodeButton: (body: string, copyCode: string, displayText?: string, options?: CopyCodeButtonOptions) => {
159
+ interactiveMessage: proto.Message.IInteractiveMessage;
160
+ };
161
+ /**
162
+ * One or more CTA URL buttons (opens a link in browser).
163
+ *
164
+ * @example
165
+ * const msg = generateUrlButtonMessage('Visit us!', [
166
+ * { displayText: 'Open Website', url: 'https://example.com' }
167
+ * ])
168
+ * await sock.sendMessage(jid, msg.interactiveMessage)
169
+ */
170
+ export declare const generateUrlButtonMessage: (body: string, buttons: UrlButton[], options?: UrlButtonOptions) => {
171
+ interactiveMessage: proto.Message.IInteractiveMessage;
172
+ };
173
+ /**
174
+ * One or more quick-reply buttons (sends a reply when tapped).
175
+ *
176
+ * @example
177
+ * const msg = generateQuickReplyButtons('Choose an option:', [
178
+ * { displayText: 'Yes', id: 'yes' },
179
+ * { displayText: 'No', id: 'no' }
180
+ * ])
181
+ * await sock.sendMessage(jid, msg.interactiveMessage)
182
+ */
183
+ export declare const generateQuickReplyButtons: (body: string, buttons: QuickReplyButton[], options?: QuickReplyOptions) => {
184
+ interactiveMessage: proto.Message.IInteractiveMessage;
185
+ };
186
+ /**
187
+ * Mix of url / reply / copy / call buttons in one message.
188
+ *
189
+ * @example
190
+ * const msg = generateCombinedButtons('What do you want?', [
191
+ * { type: 'url', displayText: 'Visit', url: 'https://example.com' },
192
+ * { type: 'reply', displayText: 'Ping', id: 'ping' },
193
+ * { type: 'copy', displayText: 'Copy', copyCode: 'ABC123' },
194
+ * { type: 'call', displayText: 'Call', phoneNumber: '+911234567890' }
195
+ * ])
196
+ * await sock.sendMessage(jid, msg.interactiveMessage)
197
+ */
198
+ export declare const generateCombinedButtons: (body: string, buttons: CombinedButton[], options?: CombinedButtonOptions) => {
199
+ interactiveMessage: proto.Message.IInteractiveMessage;
200
+ };
201
+ //# sourceMappingURL=interactive-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-message.d.ts","sourceRoot":"","sources":["../../src/addons/interactive-message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,256 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ import { prepareWAMessageMedia } from '../Utils/messages.js';
3
+ // ─── Generators ────────────────────────────────────────────────────────────────
4
+ /**
5
+ * Generate a classic WhatsApp ButtonsMessage (up to 3 buttons).
6
+ * Works via `sendMessage(jid, content.buttonsMessage)`.
7
+ */
8
+ export const generateInteractiveButtonMessage = async (content, options) => {
9
+ const buttons = content.buttons.map((btn, idx) => ({
10
+ buttonId: btn.buttonId ?? `btn-${idx}`,
11
+ buttonText: { displayText: btn.displayText },
12
+ type: proto.Message.ButtonsMessage.Button.Type.RESPONSE,
13
+ nativeFlowInfo: undefined
14
+ }));
15
+ const buttonsMessage = {
16
+ contentText: content.body,
17
+ footerText: content.footer,
18
+ buttons,
19
+ headerType: proto.Message.ButtonsMessage.HeaderType.EMPTY
20
+ };
21
+ if (content.headerImage && options) {
22
+ const media = await prepareWAMessageMedia({ image: content.headerImage }, options);
23
+ buttonsMessage.imageMessage = media.imageMessage;
24
+ buttonsMessage.headerType = proto.Message.ButtonsMessage.HeaderType.IMAGE;
25
+ }
26
+ else if (content.headerVideo && options) {
27
+ const media = await prepareWAMessageMedia({ video: content.headerVideo }, options);
28
+ buttonsMessage.videoMessage = media.videoMessage;
29
+ buttonsMessage.headerType = proto.Message.ButtonsMessage.HeaderType.VIDEO;
30
+ }
31
+ else if (content.headerDocument && options) {
32
+ const doc = content.headerDocument;
33
+ const media = await prepareWAMessageMedia({ document: doc, mimetype: 'application/pdf', fileName: doc.filename }, options);
34
+ buttonsMessage.documentMessage = media.documentMessage;
35
+ buttonsMessage.headerType = proto.Message.ButtonsMessage.HeaderType.DOCUMENT;
36
+ }
37
+ else if (content.title) {
38
+ buttonsMessage.text = content.title;
39
+ buttonsMessage.headerType = proto.Message.ButtonsMessage.HeaderType.TEXT;
40
+ }
41
+ return { buttonsMessage };
42
+ };
43
+ /**
44
+ * Generate a single-select list message.
45
+ * Works via `sendMessage(jid, content.listMessage)`.
46
+ */
47
+ export const generateInteractiveListMessage = (content) => {
48
+ const sections = content.sections.map(section => ({
49
+ title: section.title,
50
+ rows: section.rows.map(row => ({
51
+ rowId: row.rowId,
52
+ title: row.title,
53
+ description: row.description ?? ''
54
+ }))
55
+ }));
56
+ return {
57
+ listMessage: {
58
+ title: content.title,
59
+ description: content.description ?? '',
60
+ buttonText: content.buttonText,
61
+ footerText: content.footer ?? '',
62
+ listType: proto.Message.ListMessage.ListType.SINGLE_SELECT,
63
+ sections
64
+ }
65
+ };
66
+ };
67
+ /**
68
+ * Generate a template message with quick-reply / URL / call buttons.
69
+ * Works via `sendMessage(jid, content.templateMessage)`.
70
+ */
71
+ export const generateTemplateMessage = async (content, options) => {
72
+ const hydratedButtons = content.buttons.map(btn => {
73
+ const hydratedBtn = { index: btn.index };
74
+ if (btn.quickReplyButton) {
75
+ hydratedBtn.quickReplyButton = {
76
+ displayText: btn.quickReplyButton.displayText,
77
+ id: btn.quickReplyButton.id
78
+ };
79
+ }
80
+ else if (btn.urlButton) {
81
+ hydratedBtn.urlButton = {
82
+ displayText: btn.urlButton.displayText,
83
+ url: btn.urlButton.url
84
+ };
85
+ }
86
+ else if (btn.callButton) {
87
+ hydratedBtn.callButton = {
88
+ displayText: btn.callButton.displayText,
89
+ phoneNumber: btn.callButton.phoneNumber
90
+ };
91
+ }
92
+ return hydratedBtn;
93
+ });
94
+ const hydratedTemplate = {
95
+ hydratedContentText: content.body,
96
+ hydratedFooterText: content.footer,
97
+ hydratedButtons
98
+ };
99
+ if (content.title) {
100
+ hydratedTemplate.hydratedTitleText = content.title;
101
+ }
102
+ if (content.headerImage && options) {
103
+ const media = await prepareWAMessageMedia({ image: content.headerImage }, options);
104
+ hydratedTemplate.imageMessage = media.imageMessage;
105
+ }
106
+ else if (content.headerVideo && options) {
107
+ const media = await prepareWAMessageMedia({ video: content.headerVideo }, options);
108
+ hydratedTemplate.videoMessage = media.videoMessage;
109
+ }
110
+ else if (content.headerLocation) {
111
+ hydratedTemplate.locationMessage = {
112
+ degreesLatitude: content.headerLocation.latitude,
113
+ degreesLongitude: content.headerLocation.longitude,
114
+ name: content.headerLocation.name,
115
+ address: content.headerLocation.address
116
+ };
117
+ }
118
+ return {
119
+ templateMessage: {
120
+ hydratedTemplate
121
+ }
122
+ };
123
+ };
124
+ /**
125
+ * Core builder: generate a native-flow interactiveMessage with raw button definitions.
126
+ * All higher-level helpers (generateUrlButtonMessage, generateQuickReplyButtons, etc.) call this.
127
+ */
128
+ export const generateNativeFlowMessage = (body, buttons, options) => {
129
+ return {
130
+ interactiveMessage: {
131
+ body: { text: body },
132
+ footer: options?.footer ? { text: options.footer } : undefined,
133
+ header: options?.header
134
+ ? {
135
+ title: options.header.title,
136
+ subtitle: options.header.subtitle,
137
+ hasMediaAttachment: options.header.hasMediaAttachment ?? false
138
+ }
139
+ : undefined,
140
+ nativeFlowMessage: {
141
+ buttons: buttons.map(btn => ({
142
+ name: btn.name,
143
+ buttonParamsJson: btn.buttonParamsJson
144
+ })),
145
+ messageParamsJson: ''
146
+ }
147
+ }
148
+ };
149
+ };
150
+ /**
151
+ * Button that copies a code to the clipboard when tapped.
152
+ *
153
+ * @example
154
+ * const msg = generateCopyCodeButton('Here is your OTP', '123456')
155
+ * await sock.sendMessage(jid, msg.interactiveMessage)
156
+ */
157
+ export const generateCopyCodeButton = (body, copyCode, displayText = 'Copy Code', options) => {
158
+ return generateNativeFlowMessage(body, [
159
+ {
160
+ name: 'cta_copy',
161
+ buttonParamsJson: JSON.stringify({ display_text: displayText, copy_code: copyCode })
162
+ }
163
+ ], options);
164
+ };
165
+ /**
166
+ * One or more CTA URL buttons (opens a link in browser).
167
+ *
168
+ * @example
169
+ * const msg = generateUrlButtonMessage('Visit us!', [
170
+ * { displayText: 'Open Website', url: 'https://example.com' }
171
+ * ])
172
+ * await sock.sendMessage(jid, msg.interactiveMessage)
173
+ */
174
+ export const generateUrlButtonMessage = (body, buttons, options) => {
175
+ const nativeButtons = buttons.map(btn => ({
176
+ name: 'cta_url',
177
+ buttonParamsJson: JSON.stringify({
178
+ display_text: btn.displayText,
179
+ url: btn.url,
180
+ merchant_url: btn.merchantUrl
181
+ })
182
+ }));
183
+ return generateNativeFlowMessage(body, nativeButtons, {
184
+ footer: options?.footer,
185
+ header: options?.title ? { title: options.title } : undefined
186
+ });
187
+ };
188
+ /**
189
+ * One or more quick-reply buttons (sends a reply when tapped).
190
+ *
191
+ * @example
192
+ * const msg = generateQuickReplyButtons('Choose an option:', [
193
+ * { displayText: 'Yes', id: 'yes' },
194
+ * { displayText: 'No', id: 'no' }
195
+ * ])
196
+ * await sock.sendMessage(jid, msg.interactiveMessage)
197
+ */
198
+ export const generateQuickReplyButtons = (body, buttons, options) => {
199
+ const nativeButtons = buttons.map(btn => ({
200
+ name: 'quick_reply',
201
+ buttonParamsJson: JSON.stringify({ display_text: btn.displayText, id: btn.id })
202
+ }));
203
+ return generateNativeFlowMessage(body, nativeButtons, {
204
+ footer: options?.footer,
205
+ header: options?.title ? { title: options.title } : undefined
206
+ });
207
+ };
208
+ /**
209
+ * Mix of url / reply / copy / call buttons in one message.
210
+ *
211
+ * @example
212
+ * const msg = generateCombinedButtons('What do you want?', [
213
+ * { type: 'url', displayText: 'Visit', url: 'https://example.com' },
214
+ * { type: 'reply', displayText: 'Ping', id: 'ping' },
215
+ * { type: 'copy', displayText: 'Copy', copyCode: 'ABC123' },
216
+ * { type: 'call', displayText: 'Call', phoneNumber: '+911234567890' }
217
+ * ])
218
+ * await sock.sendMessage(jid, msg.interactiveMessage)
219
+ */
220
+ export const generateCombinedButtons = (body, buttons, options) => {
221
+ const nativeButtons = buttons.map(btn => {
222
+ switch (btn.type) {
223
+ case 'url':
224
+ return {
225
+ name: 'cta_url',
226
+ buttonParamsJson: JSON.stringify({ display_text: btn.displayText, url: btn.url })
227
+ };
228
+ case 'reply':
229
+ return {
230
+ name: 'quick_reply',
231
+ buttonParamsJson: JSON.stringify({ display_text: btn.displayText, id: btn.id })
232
+ };
233
+ case 'copy':
234
+ return {
235
+ name: 'cta_copy',
236
+ buttonParamsJson: JSON.stringify({
237
+ display_text: btn.displayText,
238
+ copy_code: btn.copyCode
239
+ })
240
+ };
241
+ case 'call':
242
+ return {
243
+ name: 'cta_call',
244
+ buttonParamsJson: JSON.stringify({
245
+ display_text: btn.displayText,
246
+ phone_number: btn.phoneNumber
247
+ })
248
+ };
249
+ }
250
+ });
251
+ return generateNativeFlowMessage(body, nativeButtons, {
252
+ footer: options?.footer,
253
+ header: options?.title ? { title: options.title } : undefined
254
+ });
255
+ };
256
+ //# sourceMappingURL=interactive-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-message.js","sourceRoot":"","sources":["../../src/addons/interactive-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAqHzD,kFAAkF;AAElF;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,EACpD,OAAwC,EACxC,OAAgC,EAC6B,EAAE;IAC/D,MAAM,OAAO,GAA2C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1F,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,OAAO,GAAG,EAAE;QACtC,UAAU,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE;QAC5C,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;QACvD,cAAc,EAAE,SAAS;KACzB,CAAC,CAAC,CAAA;IAEH,MAAM,cAAc,GAAkC;QACrD,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,OAAO;QACP,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK;KACzD,CAAA;IAED,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAA;QAClF,cAAc,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QAChD,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAA;IAC1E,CAAC;SAAM,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAA;QAClF,cAAc,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QAChD,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAA;IAC1E,CAAC;SAAM,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAA;QAClC,MAAM,KAAK,GAAG,MAAM,qBAAqB,CACxC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EACtE,OAAO,CACP,CAAA;QACD,cAAc,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAA;QACtD,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAA;IAC7E,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAA;QACnC,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAA;IACzE,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC7C,OAAsC,EACQ,EAAE;IAChD,MAAM,QAAQ,GAAyC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvF,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;SAClC,CAAC,CAAC;KACH,CAAC,CAAC,CAAA;IAEH,OAAO;QACN,WAAW,EAAE;YACZ,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;YAChC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa;YAC1D,QAAQ;SACR;KACD,CAAA;AACF,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC3C,OAA+B,EAC/B,OAAgC,EAC+B,EAAE;IACjE,MAAM,eAAe,GAAoC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAClF,MAAM,WAAW,GAAkC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;QAEvE,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC1B,WAAW,CAAC,gBAAgB,GAAG;gBAC9B,WAAW,EAAE,GAAG,CAAC,gBAAgB,CAAC,WAAW;gBAC7C,EAAE,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE;aAC3B,CAAA;QACF,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1B,WAAW,CAAC,SAAS,GAAG;gBACvB,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW;gBACtC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG;aACtB,CAAA;QACF,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC3B,WAAW,CAAC,UAAU,GAAG;gBACxB,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW;gBACvC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW;aACvC,CAAA;QACF,CAAC;QAED,OAAO,WAAW,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAA2D;QAChF,mBAAmB,EAAE,OAAO,CAAC,IAAI;QACjC,kBAAkB,EAAE,OAAO,CAAC,MAAM;QAClC,eAAe;KACf,CAAA;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,gBAAgB,CAAC,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAA;IACnD,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAA;QAClF,gBAAgB,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;IACnD,CAAC;SAAM,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAA;QAClF,gBAAgB,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;IACnD,CAAC;SAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QACnC,gBAAgB,CAAC,eAAe,GAAG;YAClC,eAAe,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ;YAChD,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,SAAS;YAClD,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,IAAI;YACjC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,OAAO;SACvC,CAAA;IACF,CAAC;IAED,OAAO;QACN,eAAe,EAAE;YAChB,gBAAgB;SAChB;KACD,CAAA;AACF,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACxC,IAAY,EACZ,OAA2B,EAC3B,OAA2B,EACiC,EAAE;IAC9D,OAAO;QACN,kBAAkB,EAAE;YACnB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;YACpB,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;YAC9D,MAAM,EAAE,OAAO,EAAE,MAAM;gBACtB,CAAC,CAAC;oBACA,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;oBAC3B,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;oBACjC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,IAAI,KAAK;iBAC9D;gBACF,CAAC,CAAC,SAAS;YACZ,iBAAiB,EAAE;gBAClB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;iBACtC,CAAC,CAAC;gBACH,iBAAiB,EAAE,EAAE;aACrB;SACD;KACD,CAAA;AACF,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,IAAY,EACZ,QAAgB,EAChB,WAAW,GAAG,WAAW,EACzB,OAA+B,EAC9B,EAAE;IACH,OAAO,yBAAyB,CAC/B,IAAI,EACJ;QACC;YACC,IAAI,EAAE,UAAU;YAChB,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;SACpF;KACD,EACD,OAAO,CACP,CAAA;AACF,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAE,OAAoB,EAAE,OAA0B,EAAE,EAAE;IAC1G,MAAM,aAAa,GAAuB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC;YAChC,YAAY,EAAE,GAAG,CAAC,WAAW;YAC7B,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,YAAY,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC;KACF,CAAC,CAAC,CAAA;IAEH,OAAO,yBAAyB,CAAC,IAAI,EAAE,aAAa,EAAE;QACrD,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;KAC7D,CAAC,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,IAAY,EAAE,OAA2B,EAAE,OAA2B,EAAE,EAAE;IACnH,MAAM,aAAa,GAAuB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,EAAE,aAAa;QACnB,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;KAC/E,CAAC,CAAC,CAAA;IAEH,OAAO,yBAAyB,CAAC,IAAI,EAAE,aAAa,EAAE;QACrD,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;KAC7D,CAAC,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,OAAyB,EAAE,OAA+B,EAAE,EAAE;IACnH,MAAM,aAAa,GAAuB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC3D,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,KAAK;gBACT,OAAO;oBACN,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;iBACjF,CAAA;YACF,KAAK,OAAO;gBACX,OAAO;oBACN,IAAI,EAAE,aAAa;oBACnB,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;iBAC/E,CAAA;YACF,KAAK,MAAM;gBACV,OAAO;oBACN,IAAI,EAAE,UAAU;oBAChB,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC;wBAChC,YAAY,EAAE,GAAG,CAAC,WAAW;wBAC7B,SAAS,EAAE,GAAG,CAAC,QAAQ;qBACvB,CAAC;iBACF,CAAA;YACF,KAAK,MAAM;gBACV,OAAO;oBACN,IAAI,EAAE,UAAU;oBAChB,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC;wBAChC,YAAY,EAAE,GAAG,CAAC,WAAW;wBAC7B,YAAY,EAAE,GAAG,CAAC,WAAW;qBAC7B,CAAC;iBACF,CAAA;QACH,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,OAAO,yBAAyB,CAAC,IAAI,EAAE,aAAa,EAAE;QACrD,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;KAC7D,CAAC,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * JID Plotting & LID Support utilities
3
+ * Maps between PN JIDs (@s.whatsapp.net) and LID JIDs (@lid)
4
+ * Useful for resolving JIDs in groups that use LID addressing
5
+ */
6
+ export type JidPlotEntry = {
7
+ pnJid: string;
8
+ lidJid: string;
9
+ };
10
+ /**
11
+ * Register a PN <-> LID mapping in the plot
12
+ */
13
+ export declare const plotJidPair: (pnJid: string, lidJid: string) => void;
14
+ /**
15
+ * Batch register multiple PN <-> LID pairs
16
+ */
17
+ export declare const plotJidPairs: (entries: JidPlotEntry[]) => void;
18
+ /**
19
+ * Resolve a JID to its PN form (@s.whatsapp.net)
20
+ * If already PN, returns as-is. If LID, looks up the mapped PN.
21
+ */
22
+ export declare const resolvePnJid: (jid: string) => string | undefined;
23
+ /**
24
+ * Resolve a JID to its LID form (@lid)
25
+ * If already LID, returns as-is. If PN, looks up the mapped LID.
26
+ */
27
+ export declare const resolveLidJid: (jid: string) => string | undefined;
28
+ /**
29
+ * Check whether a JID has a known LID counterpart in the plot
30
+ */
31
+ export declare const hasLidMapping: (pnJid: string) => boolean;
32
+ /**
33
+ * Check whether a LID JID has a known PN counterpart in the plot
34
+ */
35
+ export declare const hasPnMapping: (lidJid: string) => boolean;
36
+ /**
37
+ * Get all registered plot entries
38
+ */
39
+ export declare const getAllJidPlotEntries: () => JidPlotEntry[];
40
+ /**
41
+ * Clear all JID plot mappings
42
+ */
43
+ export declare const clearJidPlot: () => void;
44
+ /**
45
+ * Normalize a JID — convert @c.us to @s.whatsapp.net,
46
+ * strip device suffix, and resolve LID to PN if mapped.
47
+ */
48
+ export declare const normalizeJidForSend: (jid: string) => string;
49
+ //# sourceMappingURL=jid-plot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jid-plot.d.ts","sourceRoot":"","sources":["../../src/addons/jid-plot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACd,CAAA;AAKD;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,IAG3D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,YAAY,EAAE,KAAG,IAItD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAInD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAIpD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,OAAgC,CAAA;AAE9E;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,OAAiC,CAAA;AAE/E;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAAO,YAAY,EASnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,IAE/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,KAAG,MAMjD,CAAA"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * JID Plotting & LID Support utilities
3
+ * Maps between PN JIDs (@s.whatsapp.net) and LID JIDs (@lid)
4
+ * Useful for resolving JIDs in groups that use LID addressing
5
+ */
6
+ import { isLidUser, isPnUser, jidDecode, jidEncode } from '../WABinary/index.js';
7
+ /** In-memory JID plot map: pnJid -> lidJid and lidJid -> pnJid */
8
+ const jidPlotMap = new Map();
9
+ /**
10
+ * Register a PN <-> LID mapping in the plot
11
+ */
12
+ export const plotJidPair = (pnJid, lidJid) => {
13
+ jidPlotMap.set(pnJid, lidJid);
14
+ jidPlotMap.set(lidJid, pnJid);
15
+ };
16
+ /**
17
+ * Batch register multiple PN <-> LID pairs
18
+ */
19
+ export const plotJidPairs = (entries) => {
20
+ for (const { pnJid, lidJid } of entries) {
21
+ plotJidPair(pnJid, lidJid);
22
+ }
23
+ };
24
+ /**
25
+ * Resolve a JID to its PN form (@s.whatsapp.net)
26
+ * If already PN, returns as-is. If LID, looks up the mapped PN.
27
+ */
28
+ export const resolvePnJid = (jid) => {
29
+ if (isPnUser(jid))
30
+ return jid;
31
+ if (isLidUser(jid))
32
+ return jidPlotMap.get(jid);
33
+ return jid;
34
+ };
35
+ /**
36
+ * Resolve a JID to its LID form (@lid)
37
+ * If already LID, returns as-is. If PN, looks up the mapped LID.
38
+ */
39
+ export const resolveLidJid = (jid) => {
40
+ if (isLidUser(jid))
41
+ return jid;
42
+ if (isPnUser(jid))
43
+ return jidPlotMap.get(jid);
44
+ return jid;
45
+ };
46
+ /**
47
+ * Check whether a JID has a known LID counterpart in the plot
48
+ */
49
+ export const hasLidMapping = (pnJid) => jidPlotMap.has(pnJid);
50
+ /**
51
+ * Check whether a LID JID has a known PN counterpart in the plot
52
+ */
53
+ export const hasPnMapping = (lidJid) => jidPlotMap.has(lidJid);
54
+ /**
55
+ * Get all registered plot entries
56
+ */
57
+ export const getAllJidPlotEntries = () => {
58
+ const entries = [];
59
+ for (const [key, value] of jidPlotMap.entries()) {
60
+ if (isPnUser(key)) {
61
+ entries.push({ pnJid: key, lidJid: value });
62
+ }
63
+ }
64
+ return entries;
65
+ };
66
+ /**
67
+ * Clear all JID plot mappings
68
+ */
69
+ export const clearJidPlot = () => {
70
+ jidPlotMap.clear();
71
+ };
72
+ /**
73
+ * Normalize a JID — convert @c.us to @s.whatsapp.net,
74
+ * strip device suffix, and resolve LID to PN if mapped.
75
+ */
76
+ export const normalizeJidForSend = (jid) => {
77
+ const decoded = jidDecode(jid);
78
+ if (!decoded)
79
+ return jid;
80
+ const { user, server } = decoded;
81
+ const normalized = jidEncode(user, server === 'c.us' ? 's.whatsapp.net' : server);
82
+ return resolvePnJid(normalized) || normalized;
83
+ };
84
+ //# sourceMappingURL=jid-plot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jid-plot.js","sourceRoot":"","sources":["../../src/addons/jid-plot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAOvE,kEAAkE;AAClE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,MAAc,EAAQ,EAAE;IAClE,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC7B,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAuB,EAAQ,EAAE;IAC7D,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC3B,CAAC;AACF,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAsB,EAAE;IAC/D,IAAI,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IAC7B,IAAI,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC9C,OAAO,GAAG,CAAA;AACX,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAsB,EAAE;IAChE,IAAI,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IAC9B,IAAI,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7C,OAAO,GAAG,CAAA;AACX,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAmB,EAAE;IACxD,MAAM,OAAO,GAAmB,EAAE,CAAA;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QACjD,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAC5C,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAS,EAAE;IACtC,UAAU,CAAC,KAAK,EAAE,CAAA;AACnB,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE;IAC1D,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAA;IACxB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAChC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACjF,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,UAAU,CAAA;AAC9C,CAAC,CAAA"}
@@ -0,0 +1,54 @@
1
+ import type { AuthenticationState, WAMessage } from '../Types/index.js';
2
+ export interface JidInfo {
3
+ jid: string;
4
+ user: string;
5
+ server: string;
6
+ device: number;
7
+ agent: number;
8
+ isLid: boolean;
9
+ isPn: boolean;
10
+ isHosted: boolean;
11
+ isGroup: boolean;
12
+ isNewsletter: boolean;
13
+ normalizedUser: string;
14
+ }
15
+ export interface SenderPnInfo {
16
+ phoneJid: string;
17
+ phoneNumber: string;
18
+ lid?: string;
19
+ deviceId: number;
20
+ pushName?: string;
21
+ platform?: string;
22
+ }
23
+ export interface PlottedJid {
24
+ original: string;
25
+ primary: string;
26
+ info: JidInfo | null;
27
+ pn?: string;
28
+ lid?: string;
29
+ }
30
+ export declare const parseJid: (jid: string) => JidInfo | null;
31
+ export declare const getSenderPn: (creds: AuthenticationState["creds"]) => SenderPnInfo | null;
32
+ export declare const getCurrentSenderInfo: (authState: AuthenticationState) => SenderPnInfo | null;
33
+ export declare const isSelf: (jid: string, senderPn: SenderPnInfo) => boolean;
34
+ export declare const plotJid: (jid: string) => PlottedJid | null;
35
+ export declare const normalizePhoneToJid: (phone: string) => string;
36
+ export declare const extractPhoneNumber: (jid: string) => string | null;
37
+ export declare const formatJidDisplay: (jid: string, options?: {
38
+ showDevice?: boolean;
39
+ showType?: boolean;
40
+ }) => string;
41
+ export declare const isSameUser: (jid1: string, jid2: string) => boolean;
42
+ export declare const getJidVariants: (phone: string) => string[];
43
+ export declare const constructJidWithDevice: (user: string, device: number, server?: string) => string;
44
+ export declare const getRemoteJidFromMessage: (msg: WAMessage) => {
45
+ chatJid: string;
46
+ senderJid: string;
47
+ } | null;
48
+ export interface JidPlotterWithMapping {
49
+ plotToLid: (pn: string) => Promise<string | null>;
50
+ plotToPn: (lid: string) => Promise<string | null>;
51
+ plotBidirectional: (jid: string) => Promise<PlottedJid>;
52
+ }
53
+ export declare const createJidPlotter: (getLIDForPN: (pn: string) => Promise<string | null>, getPNForLID: (lid: string) => Promise<string | null>) => JidPlotterWithMapping;
54
+ //# sourceMappingURL=jid-plotting.d.ts.map