@queenanya/baileys 9.2.4 → 9.4.3

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 (301) 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 +114 -2
  16. package/lib/Socket/business.d.ts.map +1 -1
  17. package/lib/Socket/chats.d.ts +14 -1
  18. package/lib/Socket/chats.d.ts.map +1 -1
  19. package/lib/Socket/chats.js +253 -38
  20. package/lib/Socket/chats.js.map +1 -1
  21. package/lib/Socket/communities.d.ts +114 -2
  22. package/lib/Socket/communities.d.ts.map +1 -1
  23. package/lib/Socket/groups.d.ts +9 -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 +114 -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 +115 -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 +118 -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 +9 -0
  40. package/lib/Socket/newsletter.d.ts.map +1 -1
  41. package/lib/Socket/newsletter.js +2 -2
  42. package/lib/Socket/newsletter.js.map +1 -1
  43. package/lib/Socket/socket.d.ts +2 -0
  44. package/lib/Socket/socket.d.ts.map +1 -1
  45. package/lib/Socket/socket.js +143 -17
  46. package/lib/Socket/socket.js.map +1 -1
  47. package/lib/Types/Auth.d.ts +2 -0
  48. package/lib/Types/Auth.d.ts.map +1 -1
  49. package/lib/Types/Call.d.ts +10 -1
  50. package/lib/Types/Call.d.ts.map +1 -1
  51. package/lib/Types/Contact.d.ts +2 -0
  52. package/lib/Types/Contact.d.ts.map +1 -1
  53. package/lib/Types/Events.d.ts +21 -1
  54. package/lib/Types/Events.d.ts.map +1 -1
  55. package/lib/Types/GroupMetadata.d.ts +4 -0
  56. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  57. package/lib/Types/Message.d.ts +530 -16
  58. package/lib/Types/Message.d.ts.map +1 -1
  59. package/lib/Types/Message.js.map +1 -1
  60. package/lib/Types/Newsletter.d.ts +37 -31
  61. package/lib/Types/Newsletter.d.ts.map +1 -1
  62. package/lib/Types/Newsletter.js +27 -23
  63. package/lib/Types/Newsletter.js.map +1 -1
  64. package/lib/Types/State.d.ts +54 -0
  65. package/lib/Types/State.d.ts.map +1 -1
  66. package/lib/Types/State.js +42 -0
  67. package/lib/Types/State.js.map +1 -1
  68. package/lib/Types/index.d.ts +9 -0
  69. package/lib/Types/index.d.ts.map +1 -1
  70. package/lib/Types/index.js.map +1 -1
  71. package/lib/Utils/browser-utils.d.ts +13 -0
  72. package/lib/Utils/browser-utils.d.ts.map +1 -1
  73. package/lib/Utils/browser-utils.js +90 -10
  74. package/lib/Utils/browser-utils.js.map +1 -1
  75. package/lib/Utils/chat-utils.d.ts +30 -0
  76. package/lib/Utils/chat-utils.d.ts.map +1 -1
  77. package/lib/Utils/chat-utils.js +81 -52
  78. package/lib/Utils/chat-utils.js.map +1 -1
  79. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  80. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  81. package/lib/Utils/companion-reg-client-utils.js +34 -0
  82. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  83. package/lib/Utils/crypto.d.ts +4 -8
  84. package/lib/Utils/crypto.d.ts.map +1 -1
  85. package/lib/Utils/crypto.js +2 -26
  86. package/lib/Utils/crypto.js.map +1 -1
  87. package/lib/Utils/decode-wa-message.d.ts +12 -0
  88. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  89. package/lib/Utils/decode-wa-message.js +16 -0
  90. package/lib/Utils/decode-wa-message.js.map +1 -1
  91. package/lib/Utils/event-buffer.js +10 -1
  92. package/lib/Utils/event-buffer.js.map +1 -1
  93. package/lib/Utils/generics.d.ts +3 -1
  94. package/lib/Utils/generics.d.ts.map +1 -1
  95. package/lib/Utils/generics.js +16 -3
  96. package/lib/Utils/generics.js.map +1 -1
  97. package/lib/Utils/history.d.ts +5 -2
  98. package/lib/Utils/history.d.ts.map +1 -1
  99. package/lib/Utils/history.js +53 -17
  100. package/lib/Utils/history.js.map +1 -1
  101. package/lib/Utils/identity-change-handler.d.ts +44 -0
  102. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  103. package/lib/Utils/identity-change-handler.js +50 -0
  104. package/lib/Utils/identity-change-handler.js.map +1 -0
  105. package/lib/Utils/index.d.ts +6 -0
  106. package/lib/Utils/index.d.ts.map +1 -1
  107. package/lib/Utils/index.js +6 -0
  108. package/lib/Utils/index.js.map +1 -1
  109. package/lib/Utils/interactive-message.d.ts +201 -0
  110. package/lib/Utils/interactive-message.d.ts.map +1 -0
  111. package/lib/Utils/interactive-message.js +256 -0
  112. package/lib/Utils/interactive-message.js.map +1 -0
  113. package/lib/Utils/lt-hash.d.ts +7 -12
  114. package/lib/Utils/lt-hash.d.ts.map +1 -1
  115. package/lib/Utils/lt-hash.js +2 -42
  116. package/lib/Utils/lt-hash.js.map +1 -1
  117. package/lib/Utils/message-composer.d.ts +5 -0
  118. package/lib/Utils/message-composer.d.ts.map +1 -0
  119. package/lib/Utils/message-composer.js +5 -0
  120. package/lib/Utils/message-composer.js.map +1 -0
  121. package/lib/Utils/message-retry-manager.d.ts +30 -2
  122. package/lib/Utils/message-retry-manager.d.ts.map +1 -1
  123. package/lib/Utils/message-retry-manager.js +59 -2
  124. package/lib/Utils/message-retry-manager.js.map +1 -1
  125. package/lib/Utils/messages-media.d.ts +19 -5
  126. package/lib/Utils/messages-media.d.ts.map +1 -1
  127. package/lib/Utils/messages-media.js +26 -17
  128. package/lib/Utils/messages-media.js.map +1 -1
  129. package/lib/Utils/messages.d.ts.map +1 -1
  130. package/lib/Utils/messages.js +433 -13
  131. package/lib/Utils/messages.js.map +1 -1
  132. package/lib/Utils/noise-handler.d.ts +2 -2
  133. package/lib/Utils/noise-handler.d.ts.map +1 -1
  134. package/lib/Utils/noise-handler.js +10 -10
  135. package/lib/Utils/noise-handler.js.map +1 -1
  136. package/lib/Utils/offline-node-processor.d.ts +17 -0
  137. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  138. package/lib/Utils/offline-node-processor.js +40 -0
  139. package/lib/Utils/offline-node-processor.js.map +1 -0
  140. package/lib/Utils/process-message.d.ts.map +1 -1
  141. package/lib/Utils/process-message.js +96 -16
  142. package/lib/Utils/process-message.js.map +1 -1
  143. package/lib/Utils/reporting-utils.js +2 -2
  144. package/lib/Utils/reporting-utils.js.map +1 -1
  145. package/lib/Utils/stanza-ack.d.ts +11 -0
  146. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  147. package/lib/Utils/stanza-ack.js +38 -0
  148. package/lib/Utils/stanza-ack.js.map +1 -0
  149. package/lib/Utils/sync-action-utils.d.ts.map +1 -1
  150. package/lib/Utils/sync-action-utils.js +2 -1
  151. package/lib/Utils/sync-action-utils.js.map +1 -1
  152. package/lib/Utils/tc-token-utils.d.ts +26 -1
  153. package/lib/Utils/tc-token-utils.d.ts.map +1 -1
  154. package/lib/Utils/tc-token-utils.js +149 -4
  155. package/lib/Utils/tc-token-utils.js.map +1 -1
  156. package/lib/Utils/use-mongo-file-auth-state.d.ts +16 -0
  157. package/lib/Utils/use-mongo-file-auth-state.d.ts.map +1 -0
  158. package/lib/Utils/use-mongo-file-auth-state.js +60 -0
  159. package/lib/Utils/use-mongo-file-auth-state.js.map +1 -0
  160. package/lib/Utils/use-multi-file-auth-state.js +1 -1
  161. package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
  162. package/lib/Utils/validate-connection.d.ts.map +1 -1
  163. package/lib/Utils/validate-connection.js +11 -1
  164. package/lib/Utils/validate-connection.js.map +1 -1
  165. package/lib/WABinary/generic-utils.d.ts +9 -0
  166. package/lib/WABinary/generic-utils.d.ts.map +1 -1
  167. package/lib/WABinary/generic-utils.js +23 -0
  168. package/lib/WABinary/generic-utils.js.map +1 -1
  169. package/lib/WABinary/jid-utils.js.map +1 -1
  170. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -1
  171. package/lib/WAUSync/Protocols/USyncContactProtocol.js +26 -3
  172. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -1
  173. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  174. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  175. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  176. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  177. package/lib/WAUSync/Protocols/index.d.ts +1 -0
  178. package/lib/WAUSync/Protocols/index.d.ts.map +1 -1
  179. package/lib/WAUSync/Protocols/index.js +1 -0
  180. package/lib/WAUSync/Protocols/index.js.map +1 -1
  181. package/lib/WAUSync/USyncQuery.d.ts +1 -0
  182. package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
  183. package/lib/WAUSync/USyncQuery.js +5 -1
  184. package/lib/WAUSync/USyncQuery.js.map +1 -1
  185. package/lib/WAUSync/USyncUser.d.ts +4 -0
  186. package/lib/WAUSync/USyncUser.d.ts.map +1 -1
  187. package/lib/WAUSync/USyncUser.js +8 -0
  188. package/lib/WAUSync/USyncUser.js.map +1 -1
  189. package/lib/addons/anti-delete.d.ts +72 -0
  190. package/lib/addons/anti-delete.d.ts.map +1 -0
  191. package/lib/addons/anti-delete.js +165 -0
  192. package/lib/addons/anti-delete.js.map +1 -0
  193. package/lib/addons/auto-reply.d.ts +67 -0
  194. package/lib/addons/auto-reply.d.ts.map +1 -0
  195. package/lib/addons/auto-reply.js +145 -0
  196. package/lib/addons/auto-reply.js.map +1 -0
  197. package/lib/addons/browser-presets.d.ts +16 -0
  198. package/lib/addons/browser-presets.d.ts.map +1 -0
  199. package/lib/addons/browser-presets.js +24 -0
  200. package/lib/addons/browser-presets.js.map +1 -0
  201. package/lib/addons/button-sender.d.ts +260 -0
  202. package/lib/addons/button-sender.d.ts.map +1 -0
  203. package/lib/addons/button-sender.js +771 -0
  204. package/lib/addons/button-sender.js.map +1 -0
  205. package/lib/addons/call-handler.d.ts +79 -0
  206. package/lib/addons/call-handler.d.ts.map +1 -0
  207. package/lib/addons/call-handler.js +342 -0
  208. package/lib/addons/call-handler.js.map +1 -0
  209. package/lib/addons/from-chats.d.ts +30 -0
  210. package/lib/addons/from-chats.d.ts.map +1 -0
  211. package/lib/addons/from-chats.js +38 -0
  212. package/lib/addons/from-chats.js.map +1 -0
  213. package/lib/addons/from-messages-recv.d.ts +59 -0
  214. package/lib/addons/from-messages-recv.d.ts.map +1 -0
  215. package/lib/addons/from-messages-recv.js +326 -0
  216. package/lib/addons/from-messages-recv.js.map +1 -0
  217. package/lib/addons/from-messages-send.d.ts +50 -0
  218. package/lib/addons/from-messages-send.d.ts.map +1 -0
  219. package/lib/addons/from-messages-send.js +148 -0
  220. package/lib/addons/from-messages-send.js.map +1 -0
  221. package/lib/addons/from-messages.d.ts +52 -0
  222. package/lib/addons/from-messages.d.ts.map +1 -0
  223. package/lib/addons/from-messages.js +304 -0
  224. package/lib/addons/from-messages.js.map +1 -0
  225. package/lib/addons/index.d.ts +67 -0
  226. package/lib/addons/index.d.ts.map +1 -0
  227. package/lib/addons/index.js +86 -0
  228. package/lib/addons/index.js.map +1 -0
  229. package/lib/addons/interactive-message.d.ts +201 -0
  230. package/lib/addons/interactive-message.d.ts.map +1 -0
  231. package/lib/addons/interactive-message.js +256 -0
  232. package/lib/addons/interactive-message.js.map +1 -0
  233. package/lib/addons/jid-plot.d.ts +49 -0
  234. package/lib/addons/jid-plot.d.ts.map +1 -0
  235. package/lib/addons/jid-plot.js +84 -0
  236. package/lib/addons/jid-plot.js.map +1 -0
  237. package/lib/addons/jid-plotting.d.ts +54 -0
  238. package/lib/addons/jid-plotting.d.ts.map +1 -0
  239. package/lib/addons/jid-plotting.js +150 -0
  240. package/lib/addons/jid-plotting.js.map +1 -0
  241. package/lib/addons/lid-support.d.ts +41 -0
  242. package/lib/addons/lid-support.d.ts.map +1 -0
  243. package/lib/addons/lid-support.js +42 -0
  244. package/lib/addons/lid-support.js.map +1 -0
  245. package/lib/addons/message-composer.d.ts +142 -0
  246. package/lib/addons/message-composer.d.ts.map +1 -0
  247. package/lib/addons/message-composer.js +377 -0
  248. package/lib/addons/message-composer.js.map +1 -0
  249. package/lib/addons/message-scheduler.d.ts +77 -0
  250. package/lib/addons/message-scheduler.d.ts.map +1 -0
  251. package/lib/addons/message-scheduler.js +108 -0
  252. package/lib/addons/message-scheduler.js.map +1 -0
  253. package/lib/addons/message-search.d.ts +51 -0
  254. package/lib/addons/message-search.d.ts.map +1 -0
  255. package/lib/addons/message-search.js +171 -0
  256. package/lib/addons/message-search.js.map +1 -0
  257. package/lib/addons/message-utils.d.ts +88 -0
  258. package/lib/addons/message-utils.d.ts.map +1 -0
  259. package/lib/addons/message-utils.js +292 -0
  260. package/lib/addons/message-utils.js.map +1 -0
  261. package/lib/addons/outgoing-calls.d.ts +64 -0
  262. package/lib/addons/outgoing-calls.d.ts.map +1 -0
  263. package/lib/addons/outgoing-calls.js +139 -0
  264. package/lib/addons/outgoing-calls.js.map +1 -0
  265. package/lib/addons/pairing-fix.d.ts +31 -0
  266. package/lib/addons/pairing-fix.d.ts.map +1 -0
  267. package/lib/addons/pairing-fix.js +74 -0
  268. package/lib/addons/pairing-fix.js.map +1 -0
  269. package/lib/addons/past-participants.d.ts +42 -0
  270. package/lib/addons/past-participants.d.ts.map +1 -0
  271. package/lib/addons/past-participants.js +41 -0
  272. package/lib/addons/past-participants.js.map +1 -0
  273. package/lib/addons/rich-response.d.ts +111 -0
  274. package/lib/addons/rich-response.d.ts.map +1 -0
  275. package/lib/addons/rich-response.js +152 -0
  276. package/lib/addons/rich-response.js.map +1 -0
  277. package/lib/addons/scheduling.d.ts +41 -0
  278. package/lib/addons/scheduling.d.ts.map +1 -0
  279. package/lib/addons/scheduling.js +110 -0
  280. package/lib/addons/scheduling.js.map +1 -0
  281. package/lib/addons/status-posting.d.ts +177 -0
  282. package/lib/addons/status-posting.d.ts.map +1 -0
  283. package/lib/addons/status-posting.js +240 -0
  284. package/lib/addons/status-posting.js.map +1 -0
  285. package/lib/addons/stickerpack.d.ts +37 -0
  286. package/lib/addons/stickerpack.d.ts.map +1 -0
  287. package/lib/addons/stickerpack.js +39 -0
  288. package/lib/addons/stickerpack.js.map +1 -0
  289. package/lib/addons/templates.d.ts +72 -0
  290. package/lib/addons/templates.d.ts.map +1 -0
  291. package/lib/addons/templates.js +145 -0
  292. package/lib/addons/templates.js.map +1 -0
  293. package/lib/addons/vcard.d.ts +59 -0
  294. package/lib/addons/vcard.d.ts.map +1 -0
  295. package/lib/addons/vcard.js +88 -0
  296. package/lib/addons/vcard.js.map +1 -0
  297. package/lib/index.d.ts +1 -0
  298. package/lib/index.d.ts.map +1 -1
  299. package/lib/index.js +1 -0
  300. package/lib/index.js.map +1 -1
  301. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/Utils/history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/Utils/history.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import NodeCache from '@cacheable/node-cache';
2
+ import { type BinaryNode } from '../WABinary/index.js';
3
+ import type { ILogger } from './logger.js';
4
+ export type IdentityChangeResult = {
5
+ action: 'no_identity_node';
6
+ } | {
7
+ action: 'invalid_notification';
8
+ } | {
9
+ action: 'skipped_companion_device';
10
+ device: number;
11
+ } | {
12
+ action: 'skipped_self_primary';
13
+ } | {
14
+ action: 'debounced';
15
+ } | {
16
+ action: 'skipped_offline';
17
+ } | {
18
+ action: 'skipped_no_session';
19
+ } | {
20
+ action: 'session_refreshed';
21
+ } | {
22
+ action: 'session_refresh_failed';
23
+ error: unknown;
24
+ };
25
+ export type IdentityChangeContext = {
26
+ meId: string | undefined;
27
+ meLid: string | undefined;
28
+ validateSession: (jid: string) => Promise<{
29
+ exists: boolean;
30
+ reason?: string;
31
+ }>;
32
+ assertSessions: (jids: string[], force?: boolean) => Promise<boolean>;
33
+ debounceCache: NodeCache<boolean>;
34
+ logger: ILogger;
35
+ /**
36
+ * Invoked right before `assertSessions` is called for an existing-session identity change.
37
+ * Used to kick off fire-and-forget side effects (e.g. tctoken re-issuance) in the same
38
+ * order WA Web does — i.e. before the E2E session is re-established.
39
+ * Must not throw; implementations are responsible for their own error handling.
40
+ */
41
+ onBeforeSessionRefresh?: (jid: string) => void;
42
+ };
43
+ export declare function handleIdentityChange(node: BinaryNode, ctx: IdentityChangeContext): Promise<IdentityChangeResult>;
44
+ //# sourceMappingURL=identity-change-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-change-handler.d.ts","sourceRoot":"","sources":["../../src/Utils/identity-change-handler.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAmB,KAAK,UAAU,EAAiC,MAAM,aAAa,CAAA;AAE7F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,MAAM,oBAAoB,GAC7B;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAC9B;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,0BAA0B,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC7B;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAC/B;IAAE,MAAM,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAEvD,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/E,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACrE,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,EAAE,OAAO,CAAA;IACf;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C,CAAA;AAED,wBAAsB,oBAAoB,CACzC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,qBAAqB,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAwD/B"}
@@ -0,0 +1,50 @@
1
+ import NodeCache from '@cacheable/node-cache';
2
+ import { areJidsSameUser, getBinaryNodeChild, jidDecode } from '../WABinary/index.js';
3
+ import { isStringNullOrEmpty } from './generics.js';
4
+ export async function handleIdentityChange(node, ctx) {
5
+ const from = node.attrs.from;
6
+ if (!from) {
7
+ return { action: 'invalid_notification' };
8
+ }
9
+ const identityNode = getBinaryNodeChild(node, 'identity');
10
+ if (!identityNode) {
11
+ return { action: 'no_identity_node' };
12
+ }
13
+ ctx.logger.info({ jid: from }, 'identity changed');
14
+ const decoded = jidDecode(from);
15
+ if (decoded?.device && decoded.device !== 0) {
16
+ ctx.logger.debug({ jid: from, device: decoded.device }, 'ignoring identity change from companion device');
17
+ return { action: 'skipped_companion_device', device: decoded.device };
18
+ }
19
+ const isSelfPrimary = ctx.meId && (areJidsSameUser(from, ctx.meId) || (ctx.meLid && areJidsSameUser(from, ctx.meLid)));
20
+ if (isSelfPrimary) {
21
+ ctx.logger.info({ jid: from }, 'self primary identity changed');
22
+ return { action: 'skipped_self_primary' };
23
+ }
24
+ if (ctx.debounceCache.get(from)) {
25
+ ctx.logger.debug({ jid: from }, 'skipping identity assert (debounced)');
26
+ return { action: 'debounced' };
27
+ }
28
+ ctx.debounceCache.set(from, true);
29
+ const isOfflineNotification = !isStringNullOrEmpty(node.attrs.offline);
30
+ const hasExistingSession = await ctx.validateSession(from);
31
+ if (!hasExistingSession.exists) {
32
+ ctx.logger.debug({ jid: from }, 'no old session, skipping session refresh');
33
+ return { action: 'skipped_no_session' };
34
+ }
35
+ ctx.logger.debug({ jid: from }, 'old session exists, will refresh session');
36
+ if (isOfflineNotification) {
37
+ ctx.logger.debug({ jid: from }, 'skipping session refresh during offline processing');
38
+ return { action: 'skipped_offline' };
39
+ }
40
+ ctx.onBeforeSessionRefresh?.(from);
41
+ try {
42
+ await ctx.assertSessions([from], true);
43
+ return { action: 'session_refreshed' };
44
+ }
45
+ catch (error) {
46
+ ctx.logger.warn({ error, jid: from }, 'failed to assert sessions after identity change');
47
+ return { action: 'session_refresh_failed', error };
48
+ }
49
+ }
50
+ //# sourceMappingURL=identity-change-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-change-handler.js","sourceRoot":"","sources":["../../src/Utils/identity-change-handler.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,15 @@ export * from './lt-hash.js';
12
12
  export * from './auth-utils.js';
13
13
  export * from './use-multi-file-auth-state.js';
14
14
  export * from './use-single-file-auth-state.js';
15
+ export * from './use-mongo-file-auth-state.js';
15
16
  export * from './link-preview.js';
16
17
  export * from './event-buffer.js';
17
18
  export * from './process-message.js';
18
19
  export * from './message-retry-manager.js';
19
20
  export * from './browser-utils.js';
21
+ export * from './identity-change-handler.js';
22
+ export * from './interactive-message.js';
23
+ export * from './message-composer.js';
24
+ export * from './stanza-ack.js';
25
+ export * from './companion-reg-client-utils.js';
20
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,8BAA8B,CAAA"}
@@ -12,9 +12,15 @@ export * from './lt-hash.js';
12
12
  export * from './auth-utils.js';
13
13
  export * from './use-multi-file-auth-state.js';
14
14
  export * from './use-single-file-auth-state.js';
15
+ export * from './use-mongo-file-auth-state.js';
15
16
  export * from './link-preview.js';
16
17
  export * from './event-buffer.js';
17
18
  export * from './process-message.js';
18
19
  export * from './message-retry-manager.js';
19
20
  export * from './browser-utils.js';
21
+ export * from './identity-change-handler.js';
22
+ export * from './interactive-message.js';
23
+ export * from './message-composer.js';
24
+ export * from './stanza-ack.js';
25
+ export * from './companion-reg-client-utils.js';
20
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,8BAA8B,CAAA"}
@@ -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/Utils/interactive-message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,256 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ import { prepareWAMessageMedia } from './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/Utils/interactive-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAqHlD,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"}