@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
@@ -0,0 +1,304 @@
1
+ /**
2
+ * from-messages.ts
3
+ * Source: src/Utils/messages.ts
4
+ *
5
+ * Message content builder functions ported from baileys.
6
+ * These are imported back into generateWAMessageContent in messages.ts.
7
+ */
8
+ import { Boom } from '@hapi/boom';
9
+ import { zipSync } from 'fflate';
10
+ import { promises as fs } from 'fs';
11
+ import { gunzipSync, gzipSync } from 'zlib';
12
+ import { proto } from '../../WAProto/index.js';
13
+ import { sha256 } from '../Utils/crypto.js';
14
+ import { generateMessageIDV2, unixTimestampSeconds } from '../Utils/generics.js';
15
+ import { encryptedStream, generateThumbnail, getImageProcessingLibrary, getStream, toBuffer } from '../Utils/messages-media.js';
16
+ // ── adminInvite → newsletterAdminInviteMessage ─────────────────────────────
17
+ /**
18
+ * Build newsletterAdminInviteMessage from adminInvite content
19
+ * Source: messages.ts → adminInvite block
20
+ */
21
+ export async function buildAdminInviteMessage(adminInvite, contextInfo, options) {
22
+ const msg = {
23
+ newsletterJid: adminInvite.jid,
24
+ newsletterName: adminInvite.name,
25
+ caption: adminInvite.caption,
26
+ inviteExpiration: adminInvite.expiration,
27
+ contextInfo
28
+ };
29
+ if (options.getProfilePicUrl) {
30
+ try {
31
+ const pfpUrl = await options.getProfilePicUrl(adminInvite.jid, 'preview');
32
+ if (pfpUrl) {
33
+ const { thumbnail } = await generateThumbnail(pfpUrl, 'image', {});
34
+ if (thumbnail)
35
+ msg.jpegThumbnail = Buffer.from(thumbnail, 'base64');
36
+ }
37
+ }
38
+ catch { }
39
+ }
40
+ return msg;
41
+ }
42
+ // ── call → scheduledCallCreationMessage ───────────────────────────────────
43
+ /**
44
+ * Build scheduledCallCreationMessage from call content
45
+ * Source: messages.ts → call block
46
+ */
47
+ export function buildCallMessage(call) {
48
+ return {
49
+ scheduledTimestampMs: call.time ?? Date.now(),
50
+ callType: call.type ?? 1,
51
+ title: call.name ?? 'Call'
52
+ };
53
+ }
54
+ // ── paymentInvite → paymentInviteMessage ──────────────────────────────────
55
+ /**
56
+ * Build paymentInviteMessage from paymentInvite content
57
+ * Source: messages.ts → paymentInvite block
58
+ */
59
+ export function buildPaymentInviteMessage(paymentInvite) {
60
+ return {
61
+ expiryTimestamp: paymentInvite.expiry ?? 0,
62
+ serviceType: paymentInvite.type ?? 2
63
+ };
64
+ }
65
+ // ── stickerPack → stickerPackMessage ──────────────────────────────────────
66
+ /**
67
+ * Check if buffer is a valid WebP file (magic bytes: RIFF....WEBP)
68
+ * Source: PR #84 rsalcara/InfiniteAPI
69
+ */
70
+ export function isWebPBuffer(buffer) {
71
+ if (buffer.length < 12)
72
+ return false;
73
+ const riffHeader = buffer.toString('ascii', 0, 4);
74
+ const webpHeader = buffer.toString('ascii', 8, 12);
75
+ return riffHeader === 'RIFF' && webpHeader === 'WEBP';
76
+ }
77
+ /**
78
+ * Detect animated WebP by checking VP8X chunk animation flag
79
+ * Source: PR #84 rsalcara/InfiniteAPI
80
+ */
81
+ export function isAnimatedWebP(buffer) {
82
+ if (!isWebPBuffer(buffer))
83
+ return false;
84
+ // VP8X chunk starts at offset 12 for extended WebP
85
+ try {
86
+ let offset = 12;
87
+ while (offset + 8 <= buffer.length) {
88
+ const chunkId = buffer.toString('ascii', offset, offset + 4);
89
+ const chunkSize = buffer.readUInt32LE(offset + 4);
90
+ if (chunkId === 'VP8X') {
91
+ // flags byte at offset+8, bit 1 (0x02) = animation
92
+ const flags = buffer[offset + 8] ?? 0;
93
+ return (flags & 0x02) !== 0;
94
+ }
95
+ offset += 8 + chunkSize + (chunkSize % 2);
96
+ }
97
+ }
98
+ catch { }
99
+ return false;
100
+ }
101
+ /**
102
+ * Detect Lottie/WAS format (gzip-compressed or raw Lottie JSON)
103
+ * WAS = WhatsApp Animated Sticker = gzip-compressed Lottie JSON
104
+ * Source: PR #260 rsalcara/InfiniteAPI
105
+ */
106
+ export function isLottieBuffer(buffer) {
107
+ if (buffer.length < 2)
108
+ return false;
109
+ let jsonBuffer;
110
+ if (buffer[0] === 0x1f && buffer[1] === 0x8b) {
111
+ // gzip-compressed
112
+ try {
113
+ jsonBuffer = gunzipSync(buffer, { maxOutputLength: 50 * 1024 * 1024 });
114
+ }
115
+ catch {
116
+ return false;
117
+ }
118
+ }
119
+ else if (buffer[0] === 0x7b) {
120
+ // raw JSON starts with '{'
121
+ jsonBuffer = buffer;
122
+ }
123
+ else {
124
+ return false;
125
+ }
126
+ try {
127
+ const str = jsonBuffer.toString('utf8', 0, Math.min(jsonBuffer.length, 4096));
128
+ return str.includes('"v"') && str.includes('"layers"') && str.includes('"ip"') && str.includes('"op"');
129
+ }
130
+ catch {
131
+ return false;
132
+ }
133
+ }
134
+ /**
135
+ * Build stickerPackMessage following PR #1561 (WhiskeySockets) + PR #84 + PR #260 approach:
136
+ *
137
+ * Architecture:
138
+ * 1. Process stickers → WebP/WAS buffers (with Lottie support from PR #260)
139
+ * 2. Cover (tray icon) → add to ZIP as ${packId}.webp inside ZIP
140
+ * 3. ZIP everything → encrypt → upload as 'sticker-pack'
141
+ * 4. Generate 252x252 JPEG thumbnail from cover → encrypt with SAME mediaKey → upload as 'thumbnail-sticker-pack'
142
+ * 5. Return full IStickerPackMessage with both upload results
143
+ *
144
+ * KEY FIXES vs old implementation:
145
+ * - Cover goes INSIDE ZIP (not uploaded separately as image)
146
+ * - Thumbnail is separate 252x252 JPEG upload with same mediaKey
147
+ * - stickerPackOrigin: USER_CREATED (not THIRD_PARTY)
148
+ * - thumbnail-sticker-pack media type for thumbnail
149
+ */
150
+ export async function buildStickerPackMessage(stickerPack, options) {
151
+ const { stickers, cover, name, publisher, packId, description } = stickerPack;
152
+ const stickerPackId = packId || generateMessageIDV2();
153
+ const stickerData = {};
154
+ // ── Step 1: Process stickers ──────────────────────────────────────────
155
+ const validStickers = stickers.filter(s => s !== null && s !== undefined);
156
+ if (validStickers.length < 1) {
157
+ throw new Error('Sticker pack must contain at least one sticker');
158
+ }
159
+ const stickerMetadata = await Promise.all(validStickers.map(async (s, i) => {
160
+ const raw = s.sticker ?? s.data;
161
+ const normalized = Buffer.isBuffer(raw) ? raw : typeof raw === 'string' ? { url: raw } : raw;
162
+ const { stream } = await getStream(normalized);
163
+ const buffer = (await toBuffer(stream));
164
+ // Lottie/WAS detection (PR #260)
165
+ const detectedLottie = s.isLottie !== undefined ? s.isLottie : isLottieBuffer(buffer);
166
+ let finalBuffer = buffer;
167
+ if (detectedLottie) {
168
+ // Raw Lottie JSON → gzip to WAS
169
+ if (buffer[0] === 0x7b) {
170
+ finalBuffer = gzipSync(buffer);
171
+ }
172
+ }
173
+ else if (isWebPBuffer(buffer)) {
174
+ finalBuffer = buffer; // preserve WebP as-is (keeps EXIF + animation)
175
+ }
176
+ else {
177
+ // Non-WebP sticker — needs sharp to convert (jimp can't output WebP)
178
+ const lib = await getImageProcessingLibrary();
179
+ if (lib?.sharp) {
180
+ finalBuffer = await lib.sharp.default(buffer).webp().toBuffer();
181
+ }
182
+ else {
183
+ throw new Boom(`Sticker ${i + 1}: No image processing library (sharp) available for converting to WebP. Either install sharp or provide stickers in WebP format.`, { statusCode: 400 });
184
+ }
185
+ }
186
+ const isAnimated = detectedLottie ? true : isAnimatedWebP(finalBuffer);
187
+ const extension = detectedLottie ? 'was' : 'webp';
188
+ // Use sha256 hash for filename (deduplication) — RFC 4648 base64url
189
+ const hash = sha256(finalBuffer).toString('base64url');
190
+ const fileName = `${hash}.${extension}`;
191
+ // Dedup: only add if not already in stickerData
192
+ if (!stickerData[fileName]) {
193
+ stickerData[fileName] = [new Uint8Array(finalBuffer), { level: 0 }];
194
+ }
195
+ return {
196
+ fileName,
197
+ mimetype: detectedLottie ? 'application/was' : 'image/webp',
198
+ isAnimated,
199
+ isLottie: detectedLottie,
200
+ emojis: s.emojis || [],
201
+ accessibilityLabel: s.accessibilityLabel || ''
202
+ };
203
+ }));
204
+ // ── Step 2: Process cover (tray icon) → add INSIDE ZIP ───────────────
205
+ const coverRaw = Buffer.isBuffer(cover) ? cover : typeof cover === 'string' ? { url: cover } : cover;
206
+ const { stream: coverStream } = await getStream(coverRaw);
207
+ const coverBuffer = (await toBuffer(coverStream));
208
+ // Cover as WebP in ZIP (tray icon)
209
+ let coverWebP;
210
+ if (isWebPBuffer(coverBuffer)) {
211
+ coverWebP = coverBuffer;
212
+ }
213
+ else {
214
+ const lib = await getImageProcessingLibrary();
215
+ if (lib?.sharp) {
216
+ coverWebP = await lib.sharp.default(coverBuffer).webp().toBuffer();
217
+ }
218
+ else {
219
+ throw new Boom('No image processing library (sharp) available for converting cover to WebP. Either install sharp or provide cover in WebP format.', { statusCode: 400 });
220
+ }
221
+ }
222
+ const trayIconFileName = `${stickerPackId}.webp`;
223
+ stickerData[trayIconFileName] = [new Uint8Array(coverWebP), { level: 0 }];
224
+ // ── Step 3: ZIP + encrypt + upload as 'sticker-pack' ─────────────────
225
+ const zipBuffer = Buffer.from(zipSync(stickerData));
226
+ const stickerPackEncrypted = await encryptedStream(zipBuffer, 'sticker-pack', {
227
+ logger: options.logger,
228
+ opts: options.options
229
+ });
230
+ const stickerPackResult = await options.upload(stickerPackEncrypted.encFilePath, {
231
+ fileEncSha256B64: stickerPackEncrypted.fileEncSha256.toString('base64'),
232
+ mediaType: 'sticker-pack',
233
+ timeoutMs: options.mediaUploadTimeoutMs
234
+ });
235
+ // Cleanup temp file
236
+ try {
237
+ await fs.unlink(stickerPackEncrypted.encFilePath);
238
+ }
239
+ catch { }
240
+ // ── Step 4: Generate 252x252 JPEG thumbnail + upload as 'thumbnail-sticker-pack'
241
+ // CRITICAL: same mediaKey as ZIP upload (required by WhatsApp protocol)
242
+ let thumbnailBuffer;
243
+ try {
244
+ const lib = await getImageProcessingLibrary();
245
+ if (lib?.sharp) {
246
+ thumbnailBuffer = await lib.sharp.default(coverBuffer).resize(252, 252).jpeg().toBuffer();
247
+ }
248
+ else if (lib?.jimp) {
249
+ const jimpImage = await lib.jimp.Jimp.read(coverBuffer);
250
+ thumbnailBuffer = await jimpImage.resize({ w: 252, h: 252 }).getBuffer('image/jpeg');
251
+ }
252
+ else {
253
+ throw new Error('No image processing library available for thumbnail generation');
254
+ }
255
+ if (!thumbnailBuffer || thumbnailBuffer.length === 0) {
256
+ throw new Error('Failed to generate thumbnail buffer');
257
+ }
258
+ }
259
+ catch {
260
+ thumbnailBuffer = coverBuffer;
261
+ }
262
+ const thumbEncrypted = await encryptedStream(thumbnailBuffer, 'thumbnail-sticker-pack', {
263
+ logger: options.logger,
264
+ opts: options.options,
265
+ mediaKey: stickerPackEncrypted.mediaKey // SAME mediaKey — protocol requirement!
266
+ });
267
+ const thumbResult = await options.upload(thumbEncrypted.encFilePath, {
268
+ fileEncSha256B64: thumbEncrypted.fileEncSha256.toString('base64'),
269
+ mediaType: 'thumbnail-sticker-pack',
270
+ timeoutMs: options.mediaUploadTimeoutMs
271
+ });
272
+ // Cleanup thumb temp file
273
+ try {
274
+ await fs.unlink(thumbEncrypted.encFilePath);
275
+ }
276
+ catch { }
277
+ // ── Step 5: Return complete IStickerPackMessage ───────────────────────
278
+ return {
279
+ name,
280
+ publisher,
281
+ stickerPackId,
282
+ packDescription: description,
283
+ stickerPackOrigin: proto.Message.StickerPackMessage.StickerPackOrigin.USER_CREATED,
284
+ stickerPackSize: zipBuffer.length,
285
+ stickers: stickerMetadata,
286
+ // ZIP upload fields
287
+ fileSha256: stickerPackEncrypted.fileSha256,
288
+ fileEncSha256: stickerPackEncrypted.fileEncSha256,
289
+ mediaKey: stickerPackEncrypted.mediaKey,
290
+ directPath: stickerPackResult.directPath,
291
+ fileLength: zipBuffer.length,
292
+ mediaKeyTimestamp: unixTimestampSeconds(),
293
+ // Tray icon (cover filename inside ZIP)
294
+ trayIconFileName,
295
+ // Thumbnail upload fields (separate 252x252 JPEG, same mediaKey)
296
+ thumbnailDirectPath: thumbResult.directPath,
297
+ thumbnailSha256: thumbEncrypted.fileSha256,
298
+ thumbnailEncSha256: thumbEncrypted.fileEncSha256,
299
+ thumbnailHeight: 252,
300
+ thumbnailWidth: 252,
301
+ imageDataHash: sha256(thumbnailBuffer).toString('base64')
302
+ };
303
+ }
304
+ //# sourceMappingURL=from-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from-messages.js","sourceRoot":"","sources":["../../src/addons/from-messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * anya-bail — src/addons
3
+ * Queen-Anya structure with WS-patched features merged in
4
+ *
5
+ * Quick reference:
6
+ * Button sender → sendButtons, sendInteractiveMessage, sendListMessage ...
7
+ * Anti-delete → MessageStore, createAntiDeleteHandler, createMessageStoreHandler
8
+ * Scheduler → MessageScheduler, ScheduledMessageStatus, createMessageScheduler
9
+ * Auto-reply → AutoReplyHandler, createAutoReply
10
+ * vCard → generateVCard, createContactCard, quickContact
11
+ * Status → createTextStatus, createImageStatus, StatusHelper (TextStatusOptions, MediaStatusOptions)
12
+ * Status mentions → makeStatusMentionsAddon → sendStatusMentions
13
+ * Templates → TemplateManager, renderTemplate, PRESET_TEMPLATES
14
+ * JID utils → parseJid, plotJid, JidPlotterWithMapping, createJidPlotter
15
+ * JID plot (innov.) → JidPlot, buildJidPlot, resolveJidPlot
16
+ * Message utils → getMediaType, getMessageType, getButtonType, getButtonArgs
17
+ * Message WS extras → buildMentionContextInfo, patchMessageForMdIfRequired,
18
+ * prepareAlbumMessageContent, normalizeMediaInput
19
+ * Socket extras → makeMessageExtrasAddon → profilePictureUrl, getEphemeralGroup
20
+ * Message search → MessageType, RegexSearchOptions, searchMessages,
21
+ * searchMessagesRegex, MessageSearchManager, createMessageSearch
22
+ * Interactive msgs → generateInteractiveButtonMessage, generateTemplateMessage,
23
+ * generateNativeFlowMessage, generateCombinedButtons ...
24
+ * Call handler → makeCallHandlerAddon → initiateCall, acceptCall, muteCall ...
25
+ * Generics extras → asciiDecode, getPlatformId, printQRIfNecessaryListener
26
+ * Rich response (innov.)→ sendTable, sendList, sendCodeBlock, sendLatex ...
27
+ * Scheduler (innov.) → schedule, cancelScheduled, listScheduled ...
28
+ * Auth state → useSingleFileAuthState, useMongoFileAuthState
29
+ *
30
+ * From src/ re-exports (Anya originals):
31
+ * from-chats.ts → chat socket helpers
32
+ * from-messages-recv.ts → messages-recv helpers
33
+ * from-messages-send.ts → StatusMentionDeps, normalizeStatusContent, buildStatusMentionNode
34
+ * from-messages.ts → message content builders (buttons, stickers, albums...)
35
+ *
36
+ * NOTE: The following patch features are baked directly into Socket/Utils source:
37
+ * pairing-fix → src/Socket/socket.ts
38
+ * browser-presets → src/Utils/browser-utils.ts + src/Socket/socket.ts
39
+ * lid-support → src/WABinary/jid-utils.ts
40
+ * outgoing-calls → src/Socket/chats.ts + src/Socket/messages-recv.ts
41
+ * mex-linked-profiles → src/Socket/messages-recv.ts
42
+ * past-participants → src/Utils/history.ts + src/Utils/event-buffer.ts
43
+ * privacy-tokens → src/Socket/messages-send.ts
44
+ * stickerpack → src/addons/from-messages.ts (buildStickerPackMessage)
45
+ */
46
+ export * from './button-sender.js';
47
+ export * from './anti-delete.js';
48
+ export * from './auto-reply.js';
49
+ export * from './vcard.js';
50
+ export * from './status-posting.js';
51
+ export * from './templates.js';
52
+ export * from './jid-plotting.js';
53
+ export * from './jid-plot.js';
54
+ export * from './message-utils.js';
55
+ export * from './message-composer.js';
56
+ export * from './message-search.js';
57
+ export * from './call-handler.js';
58
+ export * from './scheduling.js';
59
+ export * from './message-scheduler.js';
60
+ export * from './rich-response.js';
61
+ export * from './from-chats.js';
62
+ export * from './from-messages-recv.js';
63
+ export * from './from-messages-send.js';
64
+ export * from './from-messages.js';
65
+ export { useSingleFileAuthState } from '../Utils/use-single-file-auth-state.js';
66
+ export { useMongoFileAuthState } from '../Utils/use-mongo-file-auth-state.js';
67
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/addons/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAGH,cAAc,iBAAiB,CAAA;AAG/B,cAAc,eAAe,CAAA;AAG7B,cAAc,cAAc,CAAA;AAG5B,cAAc,SAAS,CAAA;AAGvB,cAAc,kBAAkB,CAAA;AAGhC,cAAc,aAAa,CAAA;AAG3B,cAAc,gBAAgB,CAAA;AAG9B,cAAc,YAAY,CAAA;AAG1B,cAAc,iBAAiB,CAAA;AAG/B,cAAc,oBAAoB,CAAA;AAGlC,cAAc,kBAAkB,CAAA;AAMhC,cAAc,gBAAgB,CAAA;AAG9B,cAAc,cAAc,CAAA;AAG5B,cAAc,qBAAqB,CAAA;AAGnC,cAAc,iBAAiB,CAAA;AAG/B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * anya-bail — src/addons
3
+ * Queen-Anya structure with WS-patched features merged in
4
+ *
5
+ * Quick reference:
6
+ * Button sender → sendButtons, sendInteractiveMessage, sendListMessage ...
7
+ * Anti-delete → MessageStore, createAntiDeleteHandler, createMessageStoreHandler
8
+ * Scheduler → MessageScheduler, ScheduledMessageStatus, createMessageScheduler
9
+ * Auto-reply → AutoReplyHandler, createAutoReply
10
+ * vCard → generateVCard, createContactCard, quickContact
11
+ * Status → createTextStatus, createImageStatus, StatusHelper (TextStatusOptions, MediaStatusOptions)
12
+ * Status mentions → makeStatusMentionsAddon → sendStatusMentions
13
+ * Templates → TemplateManager, renderTemplate, PRESET_TEMPLATES
14
+ * JID utils → parseJid, plotJid, JidPlotterWithMapping, createJidPlotter
15
+ * JID plot (innov.) → JidPlot, buildJidPlot, resolveJidPlot
16
+ * Message utils → getMediaType, getMessageType, getButtonType, getButtonArgs
17
+ * Message WS extras → buildMentionContextInfo, patchMessageForMdIfRequired,
18
+ * prepareAlbumMessageContent, normalizeMediaInput
19
+ * Socket extras → makeMessageExtrasAddon → profilePictureUrl, getEphemeralGroup
20
+ * Message search → MessageType, RegexSearchOptions, searchMessages,
21
+ * searchMessagesRegex, MessageSearchManager, createMessageSearch
22
+ * Interactive msgs → generateInteractiveButtonMessage, generateTemplateMessage,
23
+ * generateNativeFlowMessage, generateCombinedButtons ...
24
+ * Call handler → makeCallHandlerAddon → initiateCall, acceptCall, muteCall ...
25
+ * Generics extras → asciiDecode, getPlatformId, printQRIfNecessaryListener
26
+ * Rich response (innov.)→ sendTable, sendList, sendCodeBlock, sendLatex ...
27
+ * Scheduler (innov.) → schedule, cancelScheduled, listScheduled ...
28
+ * Auth state → useSingleFileAuthState, useMongoFileAuthState
29
+ *
30
+ * From src/ re-exports (Anya originals):
31
+ * from-chats.ts → chat socket helpers
32
+ * from-messages-recv.ts → messages-recv helpers
33
+ * from-messages-send.ts → StatusMentionDeps, normalizeStatusContent, buildStatusMentionNode
34
+ * from-messages.ts → message content builders (buttons, stickers, albums...)
35
+ *
36
+ * NOTE: The following patch features are baked directly into Socket/Utils source:
37
+ * pairing-fix → src/Socket/socket.ts
38
+ * browser-presets → src/Utils/browser-utils.ts + src/Socket/socket.ts
39
+ * lid-support → src/WABinary/jid-utils.ts
40
+ * outgoing-calls → src/Socket/chats.ts + src/Socket/messages-recv.ts
41
+ * mex-linked-profiles → src/Socket/messages-recv.ts
42
+ * past-participants → src/Utils/history.ts + src/Utils/event-buffer.ts
43
+ * privacy-tokens → src/Socket/messages-send.ts
44
+ * stickerpack → src/addons/from-messages.ts (buildStickerPackMessage)
45
+ */
46
+ // ── Button Sender ──────────────────────────────────────────────────────────
47
+ export * from './button-sender.js';
48
+ // ── Anti-Delete ────────────────────────────────────────────────────────────
49
+ export * from './anti-delete.js';
50
+ // ── Auto-Reply ────────────────────────────────────────────────────────────
51
+ export * from './auto-reply.js';
52
+ // ── vCard / Contact Cards ─────────────────────────────────────────────────
53
+ export * from './vcard.js';
54
+ // ── Status Posting + Mentions ─────────────────────────────────────────────
55
+ export * from './status-posting.js';
56
+ // ── Message Templates ─────────────────────────────────────────────────────
57
+ export * from './templates.js';
58
+ // ── JID Plotting (anya-bail) ──────────────────────────────────────────────
59
+ export * from './jid-plotting.js';
60
+ // ── JID Plot (innovatorssoft) ─────────────────────────────────────────────
61
+ export * from './jid-plot.js';
62
+ // ── Message Utils + WS Extras + Socket Extras ─────────────────────────────
63
+ export * from './message-utils.js';
64
+ // ── Message Composer (Rich / Bot / Meta AI messages) ──────────────────────
65
+ export * from './message-composer.js';
66
+ // ── Message Search ────────────────────────────────────────────────────────
67
+ export * from './message-search.js';
68
+ // ── Interactive / Button Message Generators ───────────────────────────────
69
+ //export * from './interactive-message'
70
+ // ── Call Handler ──────────────────────────────────────────────────────────
71
+ export * from './call-handler.js';
72
+ // ── Scheduler (anya-bail) ─────────────────────────────────────────────────
73
+ export * from './scheduling.js';
74
+ // ── Message Scheduler (innovatorssoft) ────────────────────────────────────
75
+ export * from './message-scheduler.js';
76
+ // ── Rich Response (innovatorssoft) ────────────────────────────────────────
77
+ export * from './rich-response.js';
78
+ // ── From src/ (Anya originals) ────────────────────────────────────────────
79
+ export * from './from-chats.js';
80
+ export * from './from-messages-recv.js';
81
+ export * from './from-messages-send.js';
82
+ export * from './from-messages.js';
83
+ // ── Auth State — re-exported from src/Utils (canonical location) ───────────
84
+ export { useSingleFileAuthState } from '../Utils/use-single-file-auth-state.js';
85
+ export { useMongoFileAuthState } from '../Utils/use-mongo-file-auth-state.js';
86
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/addons/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,8EAA8E;AAC9E,cAAc,iBAAiB,CAAA;AAE/B,8EAA8E;AAC9E,cAAc,eAAe,CAAA;AAE7B,6EAA6E;AAC7E,cAAc,cAAc,CAAA;AAE5B,6EAA6E;AAC7E,cAAc,SAAS,CAAA;AAEvB,6EAA6E;AAC7E,cAAc,kBAAkB,CAAA;AAEhC,6EAA6E;AAC7E,cAAc,aAAa,CAAA;AAE3B,6EAA6E;AAC7E,cAAc,gBAAgB,CAAA;AAE9B,6EAA6E;AAC7E,cAAc,YAAY,CAAA;AAE1B,6EAA6E;AAC7E,cAAc,iBAAiB,CAAA;AAE/B,6EAA6E;AAC7E,cAAc,oBAAoB,CAAA;AAElC,6EAA6E;AAC7E,cAAc,kBAAkB,CAAA;AAEhC,6EAA6E;AAC7E,uCAAuC;AAEvC,6EAA6E;AAC7E,cAAc,gBAAgB,CAAA;AAE9B,6EAA6E;AAC7E,cAAc,cAAc,CAAA;AAE5B,6EAA6E;AAC7E,cAAc,qBAAqB,CAAA;AAEnC,6EAA6E;AAC7E,cAAc,iBAAiB,CAAA;AAE/B,6EAA6E;AAC7E,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAE/B,8EAA8E;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA"}