@queenanya/baileys 9.5.1 → 9.5.3-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +614 -0
  2. package/lib/Defaults/index.d.ts +5 -0
  3. package/lib/Defaults/index.d.ts.map +1 -1
  4. package/lib/Defaults/index.js +32 -3
  5. package/lib/Defaults/index.js.map +1 -1
  6. package/lib/Socket/business.d.ts +35 -2
  7. package/lib/Socket/business.d.ts.map +1 -1
  8. package/lib/Socket/chats.d.ts +3 -1
  9. package/lib/Socket/chats.d.ts.map +1 -1
  10. package/lib/Socket/chats.js +49 -4
  11. package/lib/Socket/chats.js.map +1 -1
  12. package/lib/Socket/communities.d.ts +35 -2
  13. package/lib/Socket/communities.d.ts.map +1 -1
  14. package/lib/Socket/groups.d.ts +1 -0
  15. package/lib/Socket/groups.d.ts.map +1 -1
  16. package/lib/Socket/index.d.ts +35 -2
  17. package/lib/Socket/index.d.ts.map +1 -1
  18. package/lib/Socket/messages-recv.d.ts +36 -3
  19. package/lib/Socket/messages-recv.d.ts.map +1 -1
  20. package/lib/Socket/messages-recv.js +61 -44
  21. package/lib/Socket/messages-recv.js.map +1 -1
  22. package/lib/Socket/messages-send.d.ts +11 -5
  23. package/lib/Socket/messages-send.d.ts.map +1 -1
  24. package/lib/Socket/messages-send.js +110 -78
  25. package/lib/Socket/messages-send.js.map +1 -1
  26. package/lib/Socket/newsletter.d.ts +1 -0
  27. package/lib/Socket/newsletter.d.ts.map +1 -1
  28. package/lib/Socket/newsletter.js +2 -2
  29. package/lib/Socket/newsletter.js.map +1 -1
  30. package/lib/Socket/socket.d.ts.map +1 -1
  31. package/lib/Socket/socket.js +77 -11
  32. package/lib/Socket/socket.js.map +1 -1
  33. package/lib/Types/Call.d.ts +8 -0
  34. package/lib/Types/Call.d.ts.map +1 -1
  35. package/lib/Types/Events.d.ts +2 -0
  36. package/lib/Types/Events.d.ts.map +1 -1
  37. package/lib/Types/Message.d.ts +161 -12
  38. package/lib/Types/Message.d.ts.map +1 -1
  39. package/lib/Types/index.d.ts +9 -0
  40. package/lib/Types/index.d.ts.map +1 -1
  41. package/lib/Types/index.js.map +1 -1
  42. package/lib/Utils/browser-utils.d.ts +13 -0
  43. package/lib/Utils/browser-utils.d.ts.map +1 -1
  44. package/lib/Utils/browser-utils.js +90 -10
  45. package/lib/Utils/browser-utils.js.map +1 -1
  46. package/lib/Utils/event-buffer.js +8 -1
  47. package/lib/Utils/event-buffer.js.map +1 -1
  48. package/lib/Utils/history.d.ts +2 -0
  49. package/lib/Utils/history.d.ts.map +1 -1
  50. package/lib/Utils/history.js +2 -1
  51. package/lib/Utils/history.js.map +1 -1
  52. package/lib/Utils/index.d.ts +2 -0
  53. package/lib/Utils/index.d.ts.map +1 -1
  54. package/lib/Utils/index.js +2 -0
  55. package/lib/Utils/index.js.map +1 -1
  56. package/lib/Utils/interactive-message.d.ts +201 -0
  57. package/lib/Utils/interactive-message.d.ts.map +1 -0
  58. package/lib/Utils/interactive-message.js +256 -0
  59. package/lib/Utils/interactive-message.js.map +1 -0
  60. package/lib/Utils/messages-media.d.ts +16 -2
  61. package/lib/Utils/messages-media.d.ts.map +1 -1
  62. package/lib/Utils/messages-media.js +19 -10
  63. package/lib/Utils/messages-media.js.map +1 -1
  64. package/lib/Utils/messages.d.ts.map +1 -1
  65. package/lib/Utils/messages.js +408 -11
  66. package/lib/Utils/messages.js.map +1 -1
  67. package/lib/Utils/offline-node-processor.d.ts +17 -0
  68. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  69. package/lib/Utils/offline-node-processor.js +40 -0
  70. package/lib/Utils/offline-node-processor.js.map +1 -0
  71. package/lib/Utils/stanza-ack.d.ts +11 -0
  72. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  73. package/lib/Utils/stanza-ack.js +38 -0
  74. package/lib/Utils/stanza-ack.js.map +1 -0
  75. package/lib/Utils/use-mongo-file-auth-state.d.ts +16 -0
  76. package/lib/Utils/use-mongo-file-auth-state.d.ts.map +1 -0
  77. package/lib/Utils/use-mongo-file-auth-state.js +60 -0
  78. package/lib/Utils/use-mongo-file-auth-state.js.map +1 -0
  79. package/lib/Utils/validate-connection.d.ts.map +1 -1
  80. package/lib/Utils/validate-connection.js +15 -2
  81. package/lib/Utils/validate-connection.js.map +1 -1
  82. package/lib/WABinary/generic-utils.d.ts +9 -0
  83. package/lib/WABinary/generic-utils.d.ts.map +1 -1
  84. package/lib/WABinary/generic-utils.js +23 -0
  85. package/lib/WABinary/generic-utils.js.map +1 -1
  86. package/lib/WABinary/jid-utils.d.ts +3 -0
  87. package/lib/WABinary/jid-utils.d.ts.map +1 -1
  88. package/lib/WABinary/jid-utils.js +4 -0
  89. package/lib/WABinary/jid-utils.js.map +1 -1
  90. package/lib/addons/anti-delete.d.ts +72 -0
  91. package/lib/addons/anti-delete.d.ts.map +1 -0
  92. package/lib/addons/anti-delete.js +165 -0
  93. package/lib/addons/anti-delete.js.map +1 -0
  94. package/lib/addons/auto-reply.d.ts +67 -0
  95. package/lib/addons/auto-reply.d.ts.map +1 -0
  96. package/lib/addons/auto-reply.js +145 -0
  97. package/lib/addons/auto-reply.js.map +1 -0
  98. package/lib/addons/chat-control.d.ts +57 -0
  99. package/lib/addons/chat-control.d.ts.map +1 -0
  100. package/lib/addons/chat-control.js +128 -0
  101. package/lib/addons/chat-control.js.map +1 -0
  102. package/lib/addons/from-chats.d.ts +30 -0
  103. package/lib/addons/from-chats.d.ts.map +1 -0
  104. package/lib/addons/from-chats.js +38 -0
  105. package/lib/addons/from-chats.js.map +1 -0
  106. package/lib/addons/from-messages-recv.d.ts +59 -0
  107. package/lib/addons/from-messages-recv.d.ts.map +1 -0
  108. package/lib/addons/from-messages-recv.js +326 -0
  109. package/lib/addons/from-messages-recv.js.map +1 -0
  110. package/lib/addons/from-messages-send.d.ts +50 -0
  111. package/lib/addons/from-messages-send.d.ts.map +1 -0
  112. package/lib/addons/from-messages-send.js +148 -0
  113. package/lib/addons/from-messages-send.js.map +1 -0
  114. package/lib/addons/from-messages.d.ts +52 -0
  115. package/lib/addons/from-messages.d.ts.map +1 -0
  116. package/lib/addons/from-messages.js +305 -0
  117. package/lib/addons/from-messages.js.map +1 -0
  118. package/lib/addons/index.d.ts +28 -0
  119. package/lib/addons/index.d.ts.map +1 -0
  120. package/lib/addons/index.js +44 -0
  121. package/lib/addons/index.js.map +1 -0
  122. package/lib/addons/interactive-message.d.ts +201 -0
  123. package/lib/addons/interactive-message.d.ts.map +1 -0
  124. package/lib/addons/interactive-message.js +256 -0
  125. package/lib/addons/interactive-message.js.map +1 -0
  126. package/lib/addons/jid-plotting.d.ts +53 -0
  127. package/lib/addons/jid-plotting.d.ts.map +1 -0
  128. package/lib/addons/jid-plotting.js +150 -0
  129. package/lib/addons/jid-plotting.js.map +1 -0
  130. package/lib/addons/message-search.d.ts +38 -0
  131. package/lib/addons/message-search.d.ts.map +1 -0
  132. package/lib/addons/message-search.js +171 -0
  133. package/lib/addons/message-search.js.map +1 -0
  134. package/lib/addons/message-utils.d.ts +14 -0
  135. package/lib/addons/message-utils.d.ts.map +1 -0
  136. package/lib/addons/message-utils.js +174 -0
  137. package/lib/addons/message-utils.js.map +1 -0
  138. package/lib/addons/scheduling.d.ts +40 -0
  139. package/lib/addons/scheduling.d.ts.map +1 -0
  140. package/lib/addons/scheduling.js +110 -0
  141. package/lib/addons/scheduling.js.map +1 -0
  142. package/lib/addons/status-posting.d.ts +120 -0
  143. package/lib/addons/status-posting.d.ts.map +1 -0
  144. package/lib/addons/status-posting.js +94 -0
  145. package/lib/addons/status-posting.js.map +1 -0
  146. package/lib/addons/templates.d.ts +72 -0
  147. package/lib/addons/templates.d.ts.map +1 -0
  148. package/lib/addons/templates.js +145 -0
  149. package/lib/addons/templates.js.map +1 -0
  150. package/lib/addons/vcard.d.ts +57 -0
  151. package/lib/addons/vcard.d.ts.map +1 -0
  152. package/lib/addons/vcard.js +88 -0
  153. package/lib/addons/vcard.js.map +1 -0
  154. package/lib/index.d.ts +1 -0
  155. package/lib/index.d.ts.map +1 -1
  156. package/lib/index.js +1 -0
  157. package/lib/index.js.map +1 -1
  158. package/package.json +3 -2
@@ -0,0 +1,44 @@
1
+ /**
2
+ * baileys utility functions
3
+ * Ported to TypeScript for @whiskeysockets/baileys
4
+ *
5
+ * Usage:
6
+ * import { MessageStore, createAntiDeleteHandler } from 'baileys/src/addons'
7
+ * import { MessageScheduler, createMessageScheduler } from 'baileys/src/addons'
8
+ * import { AutoReplyHandler, createAutoReply } from 'baileys/src/addons'
9
+ * import { generateVCard, createContactCard } from 'baileys/src/addons'
10
+ * import { StatusHelper, createTextStatus } from 'baileys/src/addons'
11
+ * import { MessageSearchManager, searchMessages } from 'baileys/src/addons'
12
+ * import { TemplateManager, createTemplateManager, renderTemplate } from 'baileys/src/addons'
13
+ */
14
+ // Interactive Buttons / Messages
15
+ // export * from './interactive-message'
16
+ // Anti-Delete System
17
+ export * from './anti-delete.js';
18
+ // Message Scheduler
19
+ export * from './scheduling.js';
20
+ // Auto-Reply System
21
+ export * from './auto-reply.js';
22
+ // vCard / Contact Cards
23
+ export * from './vcard.js';
24
+ // Status Posting
25
+ export * from './status-posting.js';
26
+ // Message Search
27
+ export * from './message-search.js';
28
+ // Message Templates
29
+ export * from './templates.js';
30
+ // Chat Control (Typing, Pinned Messages, Read Receipts)
31
+ export * from './chat-control.js';
32
+ // JID Plotting & LID Support
33
+ export * from './jid-plotting.js';
34
+ // Message Utilities (button detection, biz nodes, media type)
35
+ export * from './message-utils.js';
36
+ // From src/Socket/messages-recv.ts — call stanza builders
37
+ export * from './from-messages-recv.js';
38
+ // From src/Socket/messages-send.ts — status mentions
39
+ export * from './from-messages-send.js';
40
+ // From src/Socket/chats.ts — chat helpers
41
+ export * from './from-chats.js';
42
+ // From src/Utils/messages.ts — message content builders
43
+ export * from './from-messages.js';
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/addons/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,iCAAiC;AACjC,wCAAwC;AAExC,qBAAqB;AACrB,cAAc,eAAe,CAAA;AAE7B,oBAAoB;AACpB,cAAc,cAAc,CAAA;AAE5B,oBAAoB;AACpB,cAAc,cAAc,CAAA;AAE5B,wBAAwB;AACxB,cAAc,SAAS,CAAA;AAEvB,iBAAiB;AACjB,cAAc,kBAAkB,CAAA;AAEhC,iBAAiB;AACjB,cAAc,kBAAkB,CAAA;AAEhC,oBAAoB;AACpB,cAAc,aAAa,CAAA;AAE3B,wDAAwD;AACxD,cAAc,gBAAgB,CAAA;AAE9B,6BAA6B;AAC7B,cAAc,gBAAgB,CAAA;AAE9B,8DAA8D;AAC9D,cAAc,iBAAiB,CAAA;AAE/B,0DAA0D;AAC1D,cAAc,sBAAsB,CAAA;AAEpC,qDAAqD;AACrD,cAAc,sBAAsB,CAAA;AAEpC,0CAA0C;AAC1C,cAAc,cAAc,CAAA;AAE5B,wDAAwD;AACxD,cAAc,iBAAiB,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/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":"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"}
@@ -0,0 +1,53 @@
1
+ import type { WAMessage, AuthenticationState } 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 declare const createJidPlotter: (getLIDForPN: (pn: string) => Promise<string | null>, getPNForLID: (lid: string) => Promise<string | null>) => {
49
+ plotToLid: (pn: string) => Promise<string | null>;
50
+ plotToPn: (lid: string) => Promise<string | null>;
51
+ plotBidirectional: (jid: string) => Promise<PlottedJid>;
52
+ };
53
+ //# sourceMappingURL=jid-plotting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jid-plotting.d.ts","sourceRoot":"","sources":["../../src/addons/jid-plotting.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9D,MAAM,WAAW,OAAO;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAID,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,OAAO,GAAG,IAiBhD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,mBAAmB,CAAC,OAAO,CAAC,KAAG,YAAY,GAAG,IAYhF,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,WAAW,mBAAmB,wBAAiC,CAAA;AAEpG,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,UAAU,YAAY,KAAG,OAU5D,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,KAAG,UAAU,GAAG,IAYlD,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,MAGnD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,IAIzD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,UAAU;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,MAYtG,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,OAKvD,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MAAM,EASpD,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,eAAyB,KAAG,MAEhG,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,KAAK,SAAS,KAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAMjG,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC5B,aAAa,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EACnD,aAAa,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;oBAEpC,MAAM;oBACN,MAAM;6BACS,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC;CAiB1D,CAAA"}