@japofc/baileys 2.1.0

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 (342) hide show
  1. package/NOTICE.md +111 -0
  2. package/README.md +1254 -0
  3. package/WAProto/index.d.ts +9 -0
  4. package/WAProto/index.js +142276 -0
  5. package/engine-requirements.js +13 -0
  6. package/lib/Builders/A2UI.d.ts +242 -0
  7. package/lib/Builders/A2UI.js +308 -0
  8. package/lib/Builders/AIRich.d.ts +105 -0
  9. package/lib/Builders/AIRich.js +2286 -0
  10. package/lib/Builders/Button.d.ts +103 -0
  11. package/lib/Builders/Button.js +883 -0
  12. package/lib/Builders/ButtonV2.d.ts +28 -0
  13. package/lib/Builders/ButtonV2.js +144 -0
  14. package/lib/Builders/ButtonV3.d.ts +25 -0
  15. package/lib/Builders/ButtonV3.js +184 -0
  16. package/lib/Builders/Carousel.d.ts +22 -0
  17. package/lib/Builders/Carousel.js +111 -0
  18. package/lib/Builders/JapBaileys.d.ts +34 -0
  19. package/lib/Builders/JapBaileys.js +108 -0
  20. package/lib/Builders/Poll.d.ts +25 -0
  21. package/lib/Builders/Poll.js +128 -0
  22. package/lib/Builders/index.d.ts +17 -0
  23. package/lib/Builders/index.js +11 -0
  24. package/lib/Builders/shared.d.ts +67 -0
  25. package/lib/Builders/shared.js +652 -0
  26. package/lib/Defaults/index.d.ts +154 -0
  27. package/lib/Defaults/index.js +178 -0
  28. package/lib/Framework/Bot.d.ts +61 -0
  29. package/lib/Framework/Bot.js +248 -0
  30. package/lib/Framework/Context.d.ts +21 -0
  31. package/lib/Framework/Context.js +89 -0
  32. package/lib/Framework/MediaManager.d.ts +17 -0
  33. package/lib/Framework/MediaManager.js +151 -0
  34. package/lib/Framework/SessionManager.d.ts +13 -0
  35. package/lib/Framework/SessionManager.js +33 -0
  36. package/lib/Framework/StatsManager.d.ts +26 -0
  37. package/lib/Framework/StatsManager.js +119 -0
  38. package/lib/Framework/Store/SQLiteStore.d.ts +11 -0
  39. package/lib/Framework/Store/SQLiteStore.js +73 -0
  40. package/lib/Framework/index.d.ts +9 -0
  41. package/lib/Framework/index.js +10 -0
  42. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  43. package/lib/Signal/Group/ciphertext-message.js +11 -0
  44. package/lib/Signal/Group/group-session-builder.d.ts +7 -0
  45. package/lib/Signal/Group/group-session-builder.js +29 -0
  46. package/lib/Signal/Group/group_cipher.d.ts +10 -0
  47. package/lib/Signal/Group/group_cipher.js +81 -0
  48. package/lib/Signal/Group/index.d.ts +11 -0
  49. package/lib/Signal/Group/index.js +11 -0
  50. package/lib/Signal/Group/keyhelper.d.ts +6 -0
  51. package/lib/Signal/Group/keyhelper.js +17 -0
  52. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  53. package/lib/Signal/Group/sender-chain-key.js +25 -0
  54. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  55. package/lib/Signal/Group/sender-key-distribution-message.js +62 -0
  56. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  57. package/lib/Signal/Group/sender-key-message.js +65 -0
  58. package/lib/Signal/Group/sender-key-name.d.ts +11 -0
  59. package/lib/Signal/Group/sender-key-name.js +47 -0
  60. package/lib/Signal/Group/sender-key-record.d.ts +12 -0
  61. package/lib/Signal/Group/sender-key-record.js +40 -0
  62. package/lib/Signal/Group/sender-key-state.d.ts +16 -0
  63. package/lib/Signal/Group/sender-key-state.js +83 -0
  64. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  65. package/lib/Signal/Group/sender-message-key.js +25 -0
  66. package/lib/Signal/libsignal.d.ts +54 -0
  67. package/lib/Signal/libsignal.js +430 -0
  68. package/lib/Signal/lid-mapping.d.ts +20 -0
  69. package/lib/Signal/lid-mapping.js +276 -0
  70. package/lib/Socket/Client/index.d.ts +2 -0
  71. package/lib/Socket/Client/index.js +2 -0
  72. package/lib/Socket/Client/types.d.ts +5 -0
  73. package/lib/Socket/Client/types.js +10 -0
  74. package/lib/Socket/Client/websocket.d.ts +12 -0
  75. package/lib/Socket/Client/websocket.js +53 -0
  76. package/lib/Socket/business.d.ts +395 -0
  77. package/lib/Socket/business.js +379 -0
  78. package/lib/Socket/chats.d.ts +136 -0
  79. package/lib/Socket/chats.js +1327 -0
  80. package/lib/Socket/communities.d.ts +562 -0
  81. package/lib/Socket/communities.js +439 -0
  82. package/lib/Socket/dugong.d.ts +117 -0
  83. package/lib/Socket/dugong.js +798 -0
  84. package/lib/Socket/groups.d.ts +285 -0
  85. package/lib/Socket/groups.js +354 -0
  86. package/lib/Socket/index.d.ts +585 -0
  87. package/lib/Socket/index.js +52 -0
  88. package/lib/Socket/messages-recv.d.ts +333 -0
  89. package/lib/Socket/messages-recv.js +1781 -0
  90. package/lib/Socket/messages-send.d.ts +353 -0
  91. package/lib/Socket/messages-send.js +1524 -0
  92. package/lib/Socket/mex.d.ts +1 -0
  93. package/lib/Socket/mex.js +41 -0
  94. package/lib/Socket/newsletter.d.ts +286 -0
  95. package/lib/Socket/newsletter.js +364 -0
  96. package/lib/Socket/socket.d.ts +60 -0
  97. package/lib/Socket/socket.js +1012 -0
  98. package/lib/Socket/username.d.ts +82 -0
  99. package/lib/Socket/username.js +159 -0
  100. package/lib/Store/index.d.ts +3 -0
  101. package/lib/Store/index.js +3 -0
  102. package/lib/Store/make-in-memory-store.d.ts +62 -0
  103. package/lib/Store/make-in-memory-store.js +428 -0
  104. package/lib/Store/make-ordered-dictionary.d.ts +12 -0
  105. package/lib/Store/make-ordered-dictionary.js +78 -0
  106. package/lib/Store/object-repository.d.ts +10 -0
  107. package/lib/Store/object-repository.js +23 -0
  108. package/lib/Types/Auth.d.ts +117 -0
  109. package/lib/Types/Auth.js +1 -0
  110. package/lib/Types/Bussines.d.ts +25 -0
  111. package/lib/Types/Call.d.ts +15 -0
  112. package/lib/Types/Call.js +1 -0
  113. package/lib/Types/Chat.d.ts +124 -0
  114. package/lib/Types/Chat.js +7 -0
  115. package/lib/Types/Contact.d.ts +26 -0
  116. package/lib/Types/Contact.js +1 -0
  117. package/lib/Types/Events.d.ts +256 -0
  118. package/lib/Types/Events.js +1 -0
  119. package/lib/Types/GroupMetadata.d.ts +71 -0
  120. package/lib/Types/GroupMetadata.js +1 -0
  121. package/lib/Types/Label.d.ts +5 -0
  122. package/lib/Types/Label.js +24 -0
  123. package/lib/Types/LabelAssociation.d.ts +6 -0
  124. package/lib/Types/LabelAssociation.js +6 -0
  125. package/lib/Types/Message.d.ts +62 -0
  126. package/lib/Types/Message.js +17 -0
  127. package/lib/Types/Mex.d.ts +2 -0
  128. package/lib/Types/Mex.js +38 -0
  129. package/lib/Types/Product.d.ts +79 -0
  130. package/lib/Types/Product.js +1 -0
  131. package/lib/Types/RichType.d.ts +2 -0
  132. package/lib/Types/RichType.js +22 -0
  133. package/lib/Types/Signal.d.ts +87 -0
  134. package/lib/Types/Signal.js +1 -0
  135. package/lib/Types/Socket.d.ts +138 -0
  136. package/lib/Types/Socket.js +1 -0
  137. package/lib/Types/State.d.ts +8 -0
  138. package/lib/Types/State.js +55 -0
  139. package/lib/Types/USync.d.ts +26 -0
  140. package/lib/Types/index.d.ts +68 -0
  141. package/lib/Types/index.js +27 -0
  142. package/lib/Utils/MessageBuilder.d.ts +2 -0
  143. package/lib/Utils/MessageBuilder.js +2 -0
  144. package/lib/Utils/PersistentStore.d.ts +60 -0
  145. package/lib/Utils/PersistentStore.js +592 -0
  146. package/lib/Utils/anti-delete.d.ts +74 -0
  147. package/lib/Utils/anti-delete.js +221 -0
  148. package/lib/Utils/auth-secure.d.ts +86 -0
  149. package/lib/Utils/auth-secure.js +764 -0
  150. package/lib/Utils/auth-utils.d.ts +57 -0
  151. package/lib/Utils/auth-utils.js +306 -0
  152. package/lib/Utils/auto-reply.d.ts +47 -0
  153. package/lib/Utils/auto-reply.js +157 -0
  154. package/lib/Utils/baileys-event-stream.d.ts +8 -0
  155. package/lib/Utils/baileys-event-stream.js +62 -0
  156. package/lib/Utils/browser-utils.d.ts +8 -0
  157. package/lib/Utils/browser-utils.js +27 -0
  158. package/lib/Utils/business.d.ts +49 -0
  159. package/lib/Utils/business.js +239 -0
  160. package/lib/Utils/button-helper-utils.d.ts +53 -0
  161. package/lib/Utils/button-helper-utils.js +312 -0
  162. package/lib/Utils/button-sender.d.ts +54 -0
  163. package/lib/Utils/button-sender.js +822 -0
  164. package/lib/Utils/chat-control.d.ts +159 -0
  165. package/lib/Utils/chat-control.js +230 -0
  166. package/lib/Utils/chat-history-helpers.d.ts +21 -0
  167. package/lib/Utils/chat-history-helpers.js +70 -0
  168. package/lib/Utils/chat-utils.d.ts +407 -0
  169. package/lib/Utils/chat-utils.js +885 -0
  170. package/lib/Utils/companion-reg-client-utils.d.ts +4 -0
  171. package/lib/Utils/companion-reg-client-utils.js +39 -0
  172. package/lib/Utils/crypto.d.ts +41 -0
  173. package/lib/Utils/crypto.js +147 -0
  174. package/lib/Utils/decode-wa-message.d.ts +83 -0
  175. package/lib/Utils/decode-wa-message.js +316 -0
  176. package/lib/Utils/event-buffer.d.ts +12 -0
  177. package/lib/Utils/event-buffer.js +635 -0
  178. package/lib/Utils/generics.d.ts +69 -0
  179. package/lib/Utils/generics.js +438 -0
  180. package/lib/Utils/history-share.d.ts +11 -0
  181. package/lib/Utils/history-share.js +70 -0
  182. package/lib/Utils/history.d.ts +90 -0
  183. package/lib/Utils/history.js +146 -0
  184. package/lib/Utils/humanizer.d.ts +12 -0
  185. package/lib/Utils/humanizer.js +73 -0
  186. package/lib/Utils/identity-change-handler.d.ts +13 -0
  187. package/lib/Utils/identity-change-handler.js +49 -0
  188. package/lib/Utils/index.d.ts +57 -0
  189. package/lib/Utils/index.js +56 -0
  190. package/lib/Utils/jid-tools.d.ts +6 -0
  191. package/lib/Utils/jid-tools.js +77 -0
  192. package/lib/Utils/link-preview.d.ts +12 -0
  193. package/lib/Utils/link-preview.js +84 -0
  194. package/lib/Utils/logger.d.ts +4 -0
  195. package/lib/Utils/logger.js +2 -0
  196. package/lib/Utils/lt-hash.d.ts +12 -0
  197. package/lib/Utils/lt-hash.js +26 -0
  198. package/lib/Utils/make-mutex.d.ts +6 -0
  199. package/lib/Utils/make-mutex.js +32 -0
  200. package/lib/Utils/media-messages.d.ts +18 -0
  201. package/lib/Utils/media-messages.js +70 -0
  202. package/lib/Utils/media-set.d.ts +13 -0
  203. package/lib/Utils/media-set.js +171 -0
  204. package/lib/Utils/message-kind.d.ts +32 -0
  205. package/lib/Utils/message-kind.js +136 -0
  206. package/lib/Utils/message-retry-manager.d.ts +79 -0
  207. package/lib/Utils/message-retry-manager.js +264 -0
  208. package/lib/Utils/message-search.d.ts +44 -0
  209. package/lib/Utils/message-search.js +188 -0
  210. package/lib/Utils/messages-media.d.ts +135 -0
  211. package/lib/Utils/messages-media.js +868 -0
  212. package/lib/Utils/messages.d.ts +44 -0
  213. package/lib/Utils/messages.js +2326 -0
  214. package/lib/Utils/meta-ai.d.ts +13 -0
  215. package/lib/Utils/meta-ai.js +74 -0
  216. package/lib/Utils/mini-app.d.ts +35 -0
  217. package/lib/Utils/mini-app.js +213 -0
  218. package/lib/Utils/noise-handler.d.ts +20 -0
  219. package/lib/Utils/noise-handler.js +200 -0
  220. package/lib/Utils/offline-node-processor.d.ts +9 -0
  221. package/lib/Utils/offline-node-processor.js +39 -0
  222. package/lib/Utils/past-participants.d.ts +14 -0
  223. package/lib/Utils/past-participants.js +40 -0
  224. package/lib/Utils/pre-key-manager.d.ts +25 -0
  225. package/lib/Utils/pre-key-manager.js +105 -0
  226. package/lib/Utils/process-message.d.ts +82 -0
  227. package/lib/Utils/process-message.js +808 -0
  228. package/lib/Utils/qr-render.d.ts +59 -0
  229. package/lib/Utils/qr-render.js +179 -0
  230. package/lib/Utils/qrcodegen.d.ts +79 -0
  231. package/lib/Utils/qrcodegen.js +848 -0
  232. package/lib/Utils/reporting-utils.d.ts +12 -0
  233. package/lib/Utils/reporting-utils.js +257 -0
  234. package/lib/Utils/rich-message-utils.d.ts +48 -0
  235. package/lib/Utils/rich-message-utils.js +444 -0
  236. package/lib/Utils/router.d.ts +37 -0
  237. package/lib/Utils/router.js +165 -0
  238. package/lib/Utils/scheduled-posts.d.ts +30 -0
  239. package/lib/Utils/scheduled-posts.js +110 -0
  240. package/lib/Utils/scheduling.d.ts +42 -0
  241. package/lib/Utils/scheduling.js +139 -0
  242. package/lib/Utils/signal.d.ts +82 -0
  243. package/lib/Utils/signal.js +200 -0
  244. package/lib/Utils/stanza-ack.d.ts +16 -0
  245. package/lib/Utils/stanza-ack.js +37 -0
  246. package/lib/Utils/status.d.ts +50 -0
  247. package/lib/Utils/status.js +107 -0
  248. package/lib/Utils/stickerpack.d.ts +51 -0
  249. package/lib/Utils/stickerpack.js +274 -0
  250. package/lib/Utils/sync-action-utils.d.ts +2 -0
  251. package/lib/Utils/sync-action-utils.js +48 -0
  252. package/lib/Utils/tag.d.ts +12 -0
  253. package/lib/Utils/tag.js +44 -0
  254. package/lib/Utils/tc-token-utils.d.ts +29 -0
  255. package/lib/Utils/tc-token-utils.js +162 -0
  256. package/lib/Utils/templates.d.ts +76 -0
  257. package/lib/Utils/templates.js +150 -0
  258. package/lib/Utils/transcribe.d.ts +12 -0
  259. package/lib/Utils/transcribe.js +107 -0
  260. package/lib/Utils/use-cache-manager-auth-state.d.ts +13 -0
  261. package/lib/Utils/use-cache-manager-auth-state.js +81 -0
  262. package/lib/Utils/use-multi-file-auth-state.d.ts +10 -0
  263. package/lib/Utils/use-multi-file-auth-state.js +166 -0
  264. package/lib/Utils/use-single-file-auth-state.d.ts +10 -0
  265. package/lib/Utils/use-single-file-auth-state.js +113 -0
  266. package/lib/Utils/use-sqlite-auth-state.d.ts +11 -0
  267. package/lib/Utils/use-sqlite-auth-state.js +169 -0
  268. package/lib/Utils/validate-connection.d.ts +42 -0
  269. package/lib/Utils/validate-connection.js +198 -0
  270. package/lib/Utils/vcard.d.ts +58 -0
  271. package/lib/Utils/vcard.js +104 -0
  272. package/lib/Utils/voice-note.d.ts +15 -0
  273. package/lib/Utils/voice-note.js +63 -0
  274. package/lib/VoIP/audio-feeder.d.ts +18 -0
  275. package/lib/VoIP/audio-feeder.js +160 -0
  276. package/lib/VoIP/call-recorder.d.ts +13 -0
  277. package/lib/VoIP/call-recorder.js +73 -0
  278. package/lib/VoIP/index.d.ts +86 -0
  279. package/lib/VoIP/index.js +611 -0
  280. package/lib/VoIP/relay-transport.d.ts +43 -0
  281. package/lib/VoIP/relay-transport.js +563 -0
  282. package/lib/VoIP/signaling.d.ts +26 -0
  283. package/lib/VoIP/signaling.js +662 -0
  284. package/lib/VoIP/types.d.ts +69 -0
  285. package/lib/VoIP/types.js +17 -0
  286. package/lib/VoIP/wasm-engine.d.ts +120 -0
  287. package/lib/VoIP/wasm-engine.js +1358 -0
  288. package/lib/VoIP/worker-bootstrap.d.ts +4 -0
  289. package/lib/VoIP/worker-bootstrap.js +1046 -0
  290. package/lib/WABinary/constants.d.ts +61 -0
  291. package/lib/WABinary/constants.js +1466 -0
  292. package/lib/WABinary/decode.d.ts +9 -0
  293. package/lib/WABinary/decode.js +261 -0
  294. package/lib/WABinary/encode.d.ts +2 -0
  295. package/lib/WABinary/encode.js +219 -0
  296. package/lib/WABinary/generic-utils.d.ts +74 -0
  297. package/lib/WABinary/generic-utils.js +276 -0
  298. package/lib/WABinary/index.d.ts +5 -0
  299. package/lib/WABinary/index.js +5 -0
  300. package/lib/WABinary/jid-utils.d.ts +28 -0
  301. package/lib/WABinary/jid-utils.js +95 -0
  302. package/lib/WABinary/types.d.ts +19 -0
  303. package/lib/WABinary/types.js +1 -0
  304. package/lib/WAM/BinaryInfo.d.ts +7 -0
  305. package/lib/WAM/BinaryInfo.js +9 -0
  306. package/lib/WAM/constants.d.ts +34926 -0
  307. package/lib/WAM/constants.js +22852 -0
  308. package/lib/WAM/encode.d.ts +1 -0
  309. package/lib/WAM/encode.js +149 -0
  310. package/lib/WAM/index.d.ts +3 -0
  311. package/lib/WAM/index.js +3 -0
  312. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +36 -0
  313. package/lib/WAUSync/Protocols/USyncContactProtocol.js +51 -0
  314. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +29 -0
  315. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +62 -0
  316. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
  317. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +26 -0
  318. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
  319. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +37 -0
  320. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +9 -0
  321. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +24 -0
  322. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +38 -0
  323. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +50 -0
  324. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +14 -0
  325. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +28 -0
  326. package/lib/WAUSync/Protocols/index.d.ts +7 -0
  327. package/lib/WAUSync/Protocols/index.js +7 -0
  328. package/lib/WAUSync/USyncQuery.d.ts +20 -0
  329. package/lib/WAUSync/USyncQuery.js +121 -0
  330. package/lib/WAUSync/USyncUser.d.ts +16 -0
  331. package/lib/WAUSync/USyncUser.js +30 -0
  332. package/lib/WAUSync/index.d.ts +3 -0
  333. package/lib/WAUSync/index.js +3 -0
  334. package/lib/assets/wasm/loader.d.ts +5 -0
  335. package/lib/assets/wasm/loader.js +5 -0
  336. package/lib/assets/wasm/whatsapp.wasm +0 -0
  337. package/lib/assets/wasm/worker-modules.d.ts +5 -0
  338. package/lib/assets/wasm/worker-modules.js +273 -0
  339. package/lib/index.d.ts +18 -0
  340. package/lib/index.js +23 -0
  341. package/package.json +180 -0
  342. package/postinstall-banner.js +82 -0
@@ -0,0 +1,128 @@
1
+ import { BaseBuilder, generateWAMessageFromContent, prepareWAMessageMedia, generateMessageIDV2, crypto } from './shared.js';
2
+ class Poll extends BaseBuilder {
3
+ #client;
4
+
5
+ /** @param {import('../../WAProto/index.js').WASocket} client Active Baileys socket (must expose `sendMessage`). */
6
+ constructor(client) {
7
+ super();
8
+ if (!client) throw new Error('Socket is required');
9
+ this.#client = client;
10
+
11
+ this._name = '';
12
+ this._values = [];
13
+ this._selectableCount = 1;
14
+ this._hideVoter = false;
15
+ this._canAddOption = false;
16
+ this._toAnnouncementGroup = false;
17
+ this._correctAnswer;
18
+ this._endDate;
19
+ }
20
+
21
+ /** Set the poll question/title. */
22
+ setName(name) {
23
+ if (typeof name !== 'string' || !name) throw new TypeError('setName(name) requires a non-empty string');
24
+ this._name = name;
25
+ return this;
26
+ }
27
+
28
+ /** Append one option. Chainable — call repeatedly, or use `addOptions()` for an array. */
29
+ addOption(name) {
30
+ if (typeof name !== 'string' || !name) throw new TypeError('addOption(name) requires a non-empty string');
31
+ this._values.push(name);
32
+ return this;
33
+ }
34
+
35
+ /** Append several options at once. @param {string[]} names */
36
+ addOptions(names) {
37
+ if (!Array.isArray(names) || !names.length) throw new TypeError('addOptions(names) requires a non-empty array of strings');
38
+ names.forEach((name) => this.addOption(name));
39
+ return this;
40
+ }
41
+
42
+ /** How many options a voter can pick (default 1). Use `setMultiSelect()` for unlimited. */
43
+ setSelectable(count) {
44
+ if (typeof count !== 'number' || count < 0) throw new TypeError('setSelectable(count) requires a non-negative number');
45
+ this._selectableCount = count;
46
+ return this;
47
+ }
48
+
49
+ /** Shortcut for unlimited-choice polls (`selectableCount: 0`). Pass `false` to revert to single-select. */
50
+ setMultiSelect(canSelectMultiple = true) {
51
+ this._selectableCount = canSelectMultiple ? 0 : 1;
52
+ return this;
53
+ }
54
+
55
+ /** Hide voter names from other participants (where the client supports it). */
56
+ setHideVoter(hide = true) {
57
+ this._hideVoter = hide;
58
+ return this;
59
+ }
60
+
61
+ /** Allow voters to add their own options. */
62
+ setCanAddOption(allow = true) {
63
+ this._canAddOption = allow;
64
+ return this;
65
+ }
66
+
67
+ /** Mark this a community-announcement-group poll (pollCreationMessageV2 path). */
68
+ setAnnouncementGroup(isAnnouncement = true) {
69
+ this._toAnnouncementGroup = isAnnouncement;
70
+ return this;
71
+ }
72
+
73
+ /** Auto-close the poll at this date/time. */
74
+ setEndDate(date) {
75
+ this._endDate = date instanceof Date ? date : new Date(date);
76
+ return this;
77
+ }
78
+
79
+ /**
80
+ * Turn this into a quiz: one option is marked correct. Delegates the actual hash/version
81
+ * wiring to the socket's own `sendMessage({poll:{...correctAnswer}})` handling — see class
82
+ * docblock for why this builder doesn't compute the hash itself.
83
+ * @param {string} correctOptionName Must exactly match one of the strings passed to `addOption()`/`addOptions()`.
84
+ */
85
+ setQuiz(correctOptionName) {
86
+ if (typeof correctOptionName !== 'string' || !correctOptionName) {
87
+ throw new TypeError('setQuiz(correctOptionName) requires a non-empty string');
88
+ }
89
+ this._correctAnswer = correctOptionName;
90
+ return this;
91
+ }
92
+
93
+ /** @returns {{poll: Record<string, any>}} The `sendMessage()`-shaped poll payload, without sending it. */
94
+ build() {
95
+ if (!this._name) throw new Error('Poll requires a name (use setName())');
96
+ if (this._values.length < 2) throw new Error('Poll requires at least 2 options (use addOption()/addOptions())');
97
+ if (this._correctAnswer && !this._values.includes(this._correctAnswer)) {
98
+ throw new Error('setQuiz(correctOptionName) must match one of the added options exactly');
99
+ }
100
+
101
+ return {
102
+ poll: {
103
+ name: this._name,
104
+ values: this._values,
105
+ selectableCount: this._selectableCount,
106
+ toAnnouncementGroup: this._toAnnouncementGroup,
107
+ hideVoter: this._hideVoter,
108
+ canAddOption: this._canAddOption,
109
+ ...(this._endDate && { endDate: this._endDate }),
110
+ ...(this._correctAnswer && { pollType: 1, correctAnswer: this._correctAnswer }),
111
+ },
112
+ };
113
+ }
114
+
115
+ /** Build and send via the socket's `sendMessage()`. */
116
+ async send(jid, options = {}) {
117
+ return this.#client.sendMessage(jid, this.build(), options);
118
+ }
119
+ }
120
+
121
+ /**
122
+ * "Rich AI-response" style message builder: text with hyperlink/citation/latex
123
+ * inline entities, code blocks, tables, sources, image/video attachments,
124
+ * inline product/post cards, tip banners and quick-reply suggestions —
125
+ * everything ChatGPT/Gemini-in-WhatsApp-style bots typically render.
126
+ * Also exported as `AIJap` / `LeafRich` / `JapAI` / `JapRich` (identical class, alternate names).
127
+ */
128
+ export { Poll };
@@ -0,0 +1,17 @@
1
+ export { Toolkit, BaseBuilder, RowBuilder } from './shared.js';
2
+ export { Button, CardBuilder } from './Button.js';
3
+ export { ButtonV2 } from './ButtonV2.js';
4
+ export { ButtonV3 } from './ButtonV3.js';
5
+ export { Carousel } from './Carousel.js';
6
+ export { Poll } from './Poll.js';
7
+ export { AIRich, ORich } from './AIRich.js';
8
+ export { A2UI, sendA2UIWidget } from './A2UI.js';
9
+ export { AIRich as AIJap, AIRich as LeafRich, AIRich as JapAI, AIRich as JapRich, AIRich as RichJap } from './AIRich.js';
10
+ export declare const MESSAGE_BUILDER_VERSION: string;
11
+ export { JapBaileys } from './JapBaileys.js';
12
+ export type { LimitedTimeOfferParams, BottomSheetParams, TapTargetConfigurationParams, BloksWidgetOptions } from './Button.js';
13
+ export type { ButtonV2BuildOptions } from './ButtonV2.js';
14
+ export type { AddTextOptions, AddInlineImageOptions, AIRichBuildOptions, AIRichSendOptions, AIRichEditOptions } from './AIRich.js';
15
+ export type { BloksRef, BloksNodeBase, ColumnRowNode, TextNode, IconNode, DividerNode, ImageNode, VideoNode, ListNode, TextFieldNode, DateTimeInputNode, SliderNode, SwitchNode, CheckBoxNode, ChoicePickerNode, BloksButtonNode, ModalNode, TabsNode, CardNode, ProgressBarNode, AvatarNode, BadgeNode, SpacerNode, AudioPlayerNode, AnyBloksNode, BloksNode, A2UIBuilderOptions, A2UIBuildOptions, A2UIBuildResult, ListCardOptions, SendA2UIWidgetOptions } from './A2UI.js';
16
+ export type { CarouselCard } from './Carousel.js';
17
+ export type { ExtractIEOptions, FetchBufferOptions, ResolveMediaOptions, Mp4PreviewOptions } from './shared.js';
@@ -0,0 +1,11 @@
1
+ export { Toolkit, BaseBuilder, RowBuilder } from './shared.js';
2
+ export { Button, CardBuilder } from './Button.js';
3
+ export { ButtonV2 } from './ButtonV2.js';
4
+ export { ButtonV3 } from './ButtonV3.js';
5
+ export { Carousel } from './Carousel.js';
6
+ export { Poll } from './Poll.js';
7
+ export { AIRich, ORich } from './AIRich.js';
8
+ export { A2UI, sendA2UIWidget } from './A2UI.js';
9
+ export { AIRich as AIJap, AIRich as LeafRich, AIRich as JapAI, AIRich as JapRich, AIRich as RichJap } from './AIRich.js';
10
+ export const MESSAGE_BUILDER_VERSION = '4.8';
11
+ export { JapBaileys } from './JapBaileys.js';
@@ -0,0 +1,67 @@
1
+ export { generateWAMessageFromContent, prepareWAMessageMedia } from '../Utils/messages.js';
2
+ export { generateMessageIDV2 } from '../Utils/generics.js';
3
+ export { botMetadataSignature, botMetadataCertificate } from '../Utils/rich-message-utils.js';
4
+ export { getBizBinaryNode } from '../WABinary/index.js';
5
+ export { PassThrough, Readable } from 'stream';
6
+ export declare const crypto: typeof import('crypto');
7
+
8
+ export interface ExtractIEOptions {
9
+ extract?: boolean;
10
+ hyperlink?: boolean;
11
+ citation?: boolean;
12
+ latex?: boolean;
13
+ }
14
+
15
+ export interface FetchBufferOptions {
16
+ silent?: boolean;
17
+ timeout?: number;
18
+ }
19
+
20
+ export interface ResolveMediaOptions {
21
+ resolveUrl?: boolean;
22
+ resolveWAUrl?: boolean;
23
+ result?: string;
24
+ resize?: boolean;
25
+ width?: number;
26
+ height?: number;
27
+ }
28
+
29
+ export interface Mp4PreviewOptions {
30
+ time?: number;
31
+ result?: 'buffer' | string;
32
+ resize?: boolean;
33
+ width?: number;
34
+ height?: number;
35
+ silent?: boolean;
36
+ }
37
+
38
+ export declare const extractIE: (text: string, options?: ExtractIEOptions) => Record<string, any>;
39
+ export declare const waitAllPromises: (input: any) => Promise<any>;
40
+ export declare const getSharp: () => Promise<any>;
41
+ export declare const getFfmpeg: () => Promise<any>;
42
+
43
+ export class Toolkit {
44
+ static extractIE(text: string, options?: ExtractIEOptions): Record<string, any>;
45
+ static resize(buffer: Buffer, x: number, y: number, fit?: string): Promise<Buffer>;
46
+ static waitAllPromises(input: any): Promise<any>;
47
+ static fetchBuffer(url: string, options?: Record<string, any>, opts?: FetchBufferOptions): Promise<Buffer>;
48
+ static toUrl(client: any, path: string | Buffer, mediaType?: string): Promise<string>;
49
+ static resolveMedia(client: any, media: any, mediaType?: string, options?: ResolveMediaOptions): Promise<any>;
50
+ static getMp4Duration(buffer: Buffer, options?: { silent?: boolean }): number;
51
+ static getMp4Preview(videoBuffer: Buffer, options?: Mp4PreviewOptions): Promise<Buffer | Record<string, any>>;
52
+ }
53
+
54
+ export abstract class BaseBuilder {
55
+ setTitle(title: string): this;
56
+ setSubtitle(subtitle: string): this;
57
+ setBody(body: string): this;
58
+ setFooter(footer: string): this;
59
+ setContextInfo(obj: Record<string, any>): this;
60
+ addPayload(obj: Record<string, any>): this;
61
+ }
62
+
63
+ export class RowBuilder {
64
+ constructor();
65
+ buttons: Record<string, any>[];
66
+ button(displayText: string, buttonId?: string): this;
67
+ }