@modzneverdie/baileys 17.1.2 → 17.1.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 (427) hide show
  1. package/LICENSE +21 -0
  2. package/WAProto/GenerateStatics.sh +3 -0
  3. package/WAProto/WAProto.proto +6035 -0
  4. package/WAProto/fix-imports.js +81 -0
  5. package/WAProto/index.d.ts +2 -0
  6. package/WAProto/index.js +59469 -96804
  7. package/lib/Defaults/index.d.ts +29 -8
  8. package/lib/Defaults/index.d.ts.map +1 -0
  9. package/lib/Defaults/index.js +134 -141
  10. package/lib/Defaults/index.js.map +1 -0
  11. package/lib/Signal/Group/ciphertext-message.d.ts +1 -0
  12. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  13. package/lib/Signal/Group/ciphertext-message.js +2 -5
  14. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  15. package/lib/Signal/Group/group-session-builder.d.ts +4 -3
  16. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  17. package/lib/Signal/Group/group-session-builder.js +7 -41
  18. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  19. package/lib/Signal/Group/group_cipher.d.ts +4 -4
  20. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  21. package/lib/Signal/Group/group_cipher.js +37 -51
  22. package/lib/Signal/Group/group_cipher.js.map +1 -0
  23. package/lib/Signal/Group/index.d.ts +12 -11
  24. package/lib/Signal/Group/index.d.ts.map +1 -0
  25. package/lib/Signal/Group/index.js +12 -57
  26. package/lib/Signal/Group/index.js.map +1 -0
  27. package/lib/Signal/Group/keyhelper.d.ts +2 -1
  28. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  29. package/lib/Signal/Group/keyhelper.js +7 -44
  30. package/lib/Signal/Group/keyhelper.js.map +1 -0
  31. package/lib/Signal/Group/sender-chain-key.d.ts +3 -2
  32. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  33. package/lib/Signal/Group/sender-chain-key.js +7 -15
  34. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  35. package/lib/Signal/Group/sender-key-distribution-message.d.ts +2 -1
  36. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  37. package/lib/Signal/Group/sender-key-distribution-message.js +8 -11
  38. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  39. package/lib/Signal/Group/sender-key-message.d.ts +2 -1
  40. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  41. package/lib/Signal/Group/sender-key-message.js +9 -12
  42. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  43. package/lib/Signal/Group/sender-key-name.d.ts +1 -0
  44. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  45. package/lib/Signal/Group/sender-key-name.js +2 -5
  46. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  47. package/lib/Signal/Group/sender-key-record.d.ts +3 -2
  48. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  49. package/lib/Signal/Group/sender-key-record.js +9 -21
  50. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  51. package/lib/Signal/Group/sender-key-state.d.ts +7 -6
  52. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  53. package/lib/Signal/Group/sender-key-state.js +27 -42
  54. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  55. package/lib/Signal/Group/sender-message-key.d.ts +1 -0
  56. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  57. package/lib/Signal/Group/sender-message-key.js +4 -7
  58. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  59. package/lib/Signal/libsignal.d.ts +5 -3
  60. package/lib/Signal/libsignal.d.ts.map +1 -0
  61. package/lib/Signal/libsignal.js +319 -90
  62. package/lib/Signal/libsignal.js.map +1 -0
  63. package/lib/Signal/lid-mapping.d.ts +19 -0
  64. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  65. package/lib/Signal/lid-mapping.js +271 -0
  66. package/lib/Signal/lid-mapping.js.map +1 -0
  67. package/lib/Socket/Client/index.d.ts +3 -3
  68. package/lib/Socket/Client/index.d.ts.map +1 -0
  69. package/lib/Socket/Client/index.js +3 -19
  70. package/lib/Socket/Client/index.js.map +1 -0
  71. package/lib/Socket/Client/{abstract-socket-client.d.ts → types.d.ts} +4 -5
  72. package/lib/Socket/Client/types.d.ts.map +1 -0
  73. package/lib/Socket/Client/types.js +11 -0
  74. package/lib/Socket/Client/types.js.map +1 -0
  75. package/lib/Socket/Client/{web-socket-client.d.ts → websocket.d.ts} +3 -2
  76. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  77. package/lib/Socket/Client/websocket.js +54 -0
  78. package/lib/Socket/Client/websocket.js.map +1 -0
  79. package/lib/Socket/business.d.ts +533 -168
  80. package/lib/Socket/business.d.ts.map +1 -0
  81. package/lib/Socket/business.js +405 -243
  82. package/lib/Socket/business.js.map +1 -0
  83. package/lib/Socket/chats.d.ts +84 -240
  84. package/lib/Socket/chats.d.ts.map +1 -0
  85. package/lib/Socket/chats.js +406 -385
  86. package/lib/Socket/chats.js.map +1 -0
  87. package/lib/Socket/communities.d.ts +645 -0
  88. package/lib/Socket/communities.d.ts.map +1 -0
  89. package/lib/Socket/communities.js +431 -0
  90. package/lib/Socket/communities.js.map +1 -0
  91. package/lib/Socket/dugong.d.ts +125 -249
  92. package/lib/Socket/dugong.d.ts.map +1 -0
  93. package/lib/Socket/dugong.js +749 -465
  94. package/lib/Socket/dugong.js.map +1 -0
  95. package/lib/Socket/groups.d.ts +93 -58
  96. package/lib/Socket/groups.d.ts.map +1 -0
  97. package/lib/Socket/groups.js +105 -95
  98. package/lib/Socket/groups.js.map +1 -0
  99. package/lib/Socket/index.d.ts +632 -169
  100. package/lib/Socket/index.d.ts.map +1 -0
  101. package/lib/Socket/index.js +15 -11
  102. package/lib/Socket/index.js.map +1 -0
  103. package/lib/Socket/messages-recv.d.ts +162 -85
  104. package/lib/Socket/messages-recv.d.ts.map +1 -0
  105. package/lib/Socket/messages-recv.js +806 -608
  106. package/lib/Socket/messages-recv.js.map +1 -0
  107. package/lib/Socket/messages-send.d.ts +576 -146
  108. package/lib/Socket/messages-send.d.ts.map +1 -0
  109. package/lib/Socket/messages-send.js +1563 -861
  110. package/lib/Socket/messages-send.js.map +1 -0
  111. package/lib/Socket/mex.d.ts +3 -0
  112. package/lib/Socket/mex.d.ts.map +1 -0
  113. package/lib/Socket/mex.js +48 -0
  114. package/lib/Socket/mex.js.map +1 -0
  115. package/lib/Socket/newsletter.d.ts +129 -86
  116. package/lib/Socket/newsletter.d.ts.map +1 -0
  117. package/lib/Socket/newsletter.js +438 -297
  118. package/lib/Socket/newsletter.js.map +1 -0
  119. package/lib/Socket/socket.d.ts +31 -19
  120. package/lib/Socket/socket.d.ts.map +1 -0
  121. package/lib/Socket/socket.js +512 -241
  122. package/lib/Socket/socket.js.map +1 -0
  123. package/lib/Types/Auth.d.ts +18 -12
  124. package/lib/Types/Auth.d.ts.map +1 -0
  125. package/lib/Types/Auth.js +2 -2
  126. package/lib/Types/Auth.js.map +1 -0
  127. package/lib/Types/Bussines.d.ts +37 -0
  128. package/lib/Types/Bussines.d.ts.map +1 -0
  129. package/lib/Types/Bussines.js +2 -0
  130. package/lib/Types/Bussines.js.map +1 -0
  131. package/lib/Types/Call.d.ts +3 -1
  132. package/lib/Types/Call.d.ts.map +1 -0
  133. package/lib/Types/Call.js +2 -2
  134. package/lib/Types/Call.js.map +1 -0
  135. package/lib/Types/Chat.d.ts +34 -13
  136. package/lib/Types/Chat.d.ts.map +1 -0
  137. package/lib/Types/Chat.js +8 -4
  138. package/lib/Types/Chat.js.map +1 -0
  139. package/lib/Types/Contact.d.ts +6 -1
  140. package/lib/Types/Contact.d.ts.map +1 -0
  141. package/lib/Types/Contact.js +2 -2
  142. package/lib/Types/Contact.js.map +1 -0
  143. package/lib/Types/Events.d.ts +97 -17
  144. package/lib/Types/Events.d.ts.map +1 -0
  145. package/lib/Types/Events.js +2 -2
  146. package/lib/Types/Events.js.map +1 -0
  147. package/lib/Types/GroupMetadata.d.ts +18 -5
  148. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  149. package/lib/Types/GroupMetadata.js +2 -2
  150. package/lib/Types/GroupMetadata.js.map +1 -0
  151. package/lib/Types/Label.d.ts +12 -0
  152. package/lib/Types/Label.d.ts.map +1 -0
  153. package/lib/Types/Label.js +3 -5
  154. package/lib/Types/Label.js.map +1 -0
  155. package/lib/Types/LabelAssociation.d.ts +1 -0
  156. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  157. package/lib/Types/LabelAssociation.js +3 -5
  158. package/lib/Types/LabelAssociation.js.map +1 -0
  159. package/lib/Types/Message.d.ts +355 -206
  160. package/lib/Types/Message.d.ts.map +1 -0
  161. package/lib/Types/Message.js +11 -9
  162. package/lib/Types/Message.js.map +1 -0
  163. package/lib/Types/Newsletter.d.ts +130 -98
  164. package/lib/Types/Newsletter.d.ts.map +1 -0
  165. package/lib/Types/Newsletter.js +31 -38
  166. package/lib/Types/Newsletter.js.map +1 -0
  167. package/lib/Types/Product.d.ts +2 -1
  168. package/lib/Types/Product.d.ts.map +1 -0
  169. package/lib/Types/Product.js +2 -2
  170. package/lib/Types/Product.js.map +1 -0
  171. package/lib/Types/Signal.d.ts +20 -1
  172. package/lib/Types/Signal.d.ts.map +1 -0
  173. package/lib/Types/Signal.js +2 -2
  174. package/lib/Types/Signal.js.map +1 -0
  175. package/lib/Types/Socket.d.ts +152 -105
  176. package/lib/Types/Socket.d.ts.map +1 -0
  177. package/lib/Types/Socket.js +3 -2
  178. package/lib/Types/Socket.js.map +1 -0
  179. package/lib/Types/State.d.ts +14 -2
  180. package/lib/Types/State.d.ts.map +1 -0
  181. package/lib/Types/State.js +13 -2
  182. package/lib/Types/State.js.map +1 -0
  183. package/lib/Types/USync.d.ts +3 -2
  184. package/lib/Types/USync.d.ts.map +1 -0
  185. package/lib/Types/USync.js +2 -2
  186. package/lib/Types/USync.js.map +1 -0
  187. package/lib/Types/index.d.ts +54 -45
  188. package/lib/Types/index.d.ts.map +1 -0
  189. package/lib/Types/index.js +32 -41
  190. package/lib/Types/index.js.map +1 -0
  191. package/lib/Utils/auth-utils.d.ts +7 -6
  192. package/lib/Utils/auth-utils.d.ts.map +1 -0
  193. package/lib/Utils/auth-utils.js +228 -144
  194. package/lib/Utils/auth-utils.js.map +1 -0
  195. package/lib/Utils/browser-utils.d.ts +4 -0
  196. package/lib/Utils/browser-utils.d.ts.map +1 -0
  197. package/lib/Utils/browser-utils.js +28 -0
  198. package/lib/Utils/browser-utils.js.map +1 -0
  199. package/lib/Utils/business.d.ts +3 -2
  200. package/lib/Utils/business.d.ts.map +1 -0
  201. package/lib/Utils/business.js +66 -69
  202. package/lib/Utils/business.js.map +1 -0
  203. package/lib/Utils/chat-utils.d.ts +19 -20
  204. package/lib/Utils/chat-utils.d.ts.map +1 -0
  205. package/lib/Utils/chat-utils.js +331 -248
  206. package/lib/Utils/chat-utils.js.map +1 -0
  207. package/lib/Utils/crypto.d.ts +10 -14
  208. package/lib/Utils/crypto.d.ts.map +1 -0
  209. package/lib/Utils/crypto.js +57 -90
  210. package/lib/Utils/crypto.js.map +1 -0
  211. package/lib/Utils/decode-wa-message.d.ts +37 -8
  212. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  213. package/lib/Utils/decode-wa-message.js +169 -84
  214. package/lib/Utils/decode-wa-message.js.map +1 -0
  215. package/lib/Utils/event-buffer.d.ts +7 -8
  216. package/lib/Utils/event-buffer.d.ts.map +1 -0
  217. package/lib/Utils/event-buffer.js +138 -78
  218. package/lib/Utils/event-buffer.js.map +1 -0
  219. package/lib/Utils/generics.d.ts +26 -27
  220. package/lib/Utils/generics.d.ts.map +1 -0
  221. package/lib/Utils/generics.js +170 -209
  222. package/lib/Utils/generics.js.map +1 -0
  223. package/lib/Utils/history.d.ts +16 -9
  224. package/lib/Utils/history.d.ts.map +1 -0
  225. package/lib/Utils/history.js +83 -48
  226. package/lib/Utils/history.js.map +1 -0
  227. package/lib/Utils/identity-change-handler.d.ts +37 -0
  228. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  229. package/lib/Utils/identity-change-handler.js +49 -0
  230. package/lib/Utils/identity-change-handler.js.map +1 -0
  231. package/lib/Utils/index.d.ts +23 -17
  232. package/lib/Utils/index.d.ts.map +1 -0
  233. package/lib/Utils/index.js +23 -33
  234. package/lib/Utils/index.js.map +1 -0
  235. package/lib/Utils/link-preview.d.ts +5 -5
  236. package/lib/Utils/link-preview.d.ts.map +1 -0
  237. package/lib/Utils/link-preview.js +14 -22
  238. package/lib/Utils/link-preview.js.map +1 -0
  239. package/lib/Utils/logger.d.ts +12 -3
  240. package/lib/Utils/logger.d.ts.map +1 -0
  241. package/lib/Utils/logger.js +3 -7
  242. package/lib/Utils/logger.js.map +1 -0
  243. package/lib/Utils/lt-hash.d.ts +8 -12
  244. package/lib/Utils/lt-hash.d.ts.map +1 -0
  245. package/lib/Utils/lt-hash.js +3 -46
  246. package/lib/Utils/lt-hash.js.map +1 -0
  247. package/lib/Utils/make-mutex.d.ts +4 -2
  248. package/lib/Utils/make-mutex.d.ts.map +1 -0
  249. package/lib/Utils/make-mutex.js +24 -34
  250. package/lib/Utils/make-mutex.js.map +1 -0
  251. package/lib/Utils/message-retry-manager.d.ts +110 -0
  252. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  253. package/lib/Utils/message-retry-manager.js +225 -0
  254. package/lib/Utils/message-retry-manager.js.map +1 -0
  255. package/lib/Utils/messages-media.d.ts +56 -42
  256. package/lib/Utils/messages-media.d.ts.map +1 -0
  257. package/lib/Utils/messages-media.js +411 -448
  258. package/lib/Utils/messages-media.js.map +1 -0
  259. package/lib/Utils/messages.d.ts +32 -18
  260. package/lib/Utils/messages.d.ts.map +1 -0
  261. package/lib/Utils/messages.js +1132 -710
  262. package/lib/Utils/messages.js.map +1 -0
  263. package/lib/Utils/noise-handler.d.ts +12 -13
  264. package/lib/Utils/noise-handler.d.ts.map +1 -0
  265. package/lib/Utils/noise-handler.js +145 -99
  266. package/lib/Utils/noise-handler.js.map +1 -0
  267. package/lib/Utils/offline-node-processor.d.ts +17 -0
  268. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  269. package/lib/Utils/offline-node-processor.js +40 -0
  270. package/lib/Utils/offline-node-processor.js.map +1 -0
  271. package/lib/Utils/pre-key-manager.d.ts +28 -0
  272. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  273. package/lib/Utils/pre-key-manager.js +106 -0
  274. package/lib/Utils/pre-key-manager.js.map +1 -0
  275. package/lib/Utils/process-message.d.ts +31 -12
  276. package/lib/Utils/process-message.d.ts.map +1 -0
  277. package/lib/Utils/process-message.js +357 -150
  278. package/lib/Utils/process-message.js.map +1 -0
  279. package/lib/Utils/reporting-utils.d.ts +11 -0
  280. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  281. package/lib/Utils/reporting-utils.js +258 -0
  282. package/lib/Utils/reporting-utils.js.map +1 -0
  283. package/lib/Utils/rich-messages.d.ts +277 -0
  284. package/lib/Utils/rich-messages.d.ts.map +1 -0
  285. package/lib/Utils/rich-messages.js +1144 -0
  286. package/lib/Utils/rich-messages.js.map +1 -0
  287. package/lib/Utils/signal.d.ts +7 -5
  288. package/lib/Utils/signal.d.ts.map +1 -0
  289. package/lib/Utils/signal.js +78 -72
  290. package/lib/Utils/signal.js.map +1 -0
  291. package/lib/Utils/stanza-ack.d.ts +11 -0
  292. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  293. package/lib/Utils/stanza-ack.js +38 -0
  294. package/lib/Utils/stanza-ack.js.map +1 -0
  295. package/lib/Utils/sticker-pack.d.ts +10 -0
  296. package/lib/Utils/sticker-pack.js +111 -0
  297. package/lib/Utils/sync-action-utils.d.ts +19 -0
  298. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  299. package/lib/Utils/sync-action-utils.js +48 -0
  300. package/lib/Utils/sync-action-utils.js.map +1 -0
  301. package/lib/Utils/tc-token-utils.d.ts +12 -0
  302. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  303. package/lib/Utils/tc-token-utils.js +18 -0
  304. package/lib/Utils/tc-token-utils.js.map +1 -0
  305. package/lib/Utils/use-multi-file-auth-state.d.ts +2 -2
  306. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  307. package/lib/Utils/use-multi-file-auth-state.js +29 -27
  308. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  309. package/lib/Utils/validate-connection.d.ts +7 -7
  310. package/lib/Utils/validate-connection.d.ts.map +1 -0
  311. package/lib/Utils/validate-connection.js +70 -99
  312. package/lib/Utils/validate-connection.js.map +1 -0
  313. package/lib/WABinary/constants.d.ts +25 -27
  314. package/lib/WABinary/constants.d.ts.map +1 -0
  315. package/lib/WABinary/constants.js +1281 -20
  316. package/lib/WABinary/constants.js.map +1 -0
  317. package/lib/WABinary/decode.d.ts +5 -5
  318. package/lib/WABinary/decode.d.ts.map +1 -0
  319. package/lib/WABinary/decode.js +52 -42
  320. package/lib/WABinary/decode.js.map +1 -0
  321. package/lib/WABinary/encode.d.ts +3 -3
  322. package/lib/WABinary/encode.d.ts.map +1 -0
  323. package/lib/WABinary/encode.js +110 -155
  324. package/lib/WABinary/encode.js.map +1 -0
  325. package/lib/WABinary/generic-utils.d.ts +8 -8
  326. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  327. package/lib/WABinary/generic-utils.js +142 -149
  328. package/lib/WABinary/generic-utils.js.map +1 -0
  329. package/lib/WABinary/index.d.ts +6 -5
  330. package/lib/WABinary/index.d.ts.map +1 -0
  331. package/lib/WABinary/index.js +6 -21
  332. package/lib/WABinary/index.js.map +1 -0
  333. package/lib/WABinary/jid-utils.d.ts +25 -8
  334. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  335. package/lib/WABinary/jid-utils.js +74 -40
  336. package/lib/WABinary/jid-utils.js.map +1 -0
  337. package/lib/WABinary/types.d.ts +2 -1
  338. package/lib/WABinary/types.d.ts.map +1 -0
  339. package/lib/WABinary/types.js +2 -2
  340. package/lib/WABinary/types.js.map +1 -0
  341. package/lib/WAM/BinaryInfo.d.ts +3 -11
  342. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  343. package/lib/WAM/BinaryInfo.js +2 -5
  344. package/lib/WAM/BinaryInfo.js.map +1 -0
  345. package/lib/WAM/constants.d.ts +5 -3
  346. package/lib/WAM/constants.d.ts.map +1 -0
  347. package/lib/WAM/constants.js +19071 -11568
  348. package/lib/WAM/constants.js.map +1 -0
  349. package/lib/WAM/encode.d.ts +2 -2
  350. package/lib/WAM/encode.d.ts.map +1 -0
  351. package/lib/WAM/encode.js +17 -22
  352. package/lib/WAM/encode.js.map +1 -0
  353. package/lib/WAM/index.d.ts +4 -3
  354. package/lib/WAM/index.d.ts.map +1 -0
  355. package/lib/WAM/index.js +4 -19
  356. package/lib/WAM/index.js.map +1 -0
  357. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +4 -3
  358. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  359. package/lib/WAUSync/Protocols/USyncContactProtocol.js +8 -11
  360. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  361. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +3 -2
  362. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  363. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +11 -14
  364. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  365. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +3 -2
  366. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  367. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +9 -12
  368. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  369. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +3 -2
  370. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  371. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +9 -13
  372. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  373. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +4 -3
  374. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  375. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +20 -22
  376. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  377. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +5 -3
  378. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  379. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +13 -8
  380. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  381. package/lib/WAUSync/Protocols/index.d.ts +5 -4
  382. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  383. package/lib/WAUSync/Protocols/index.js +5 -20
  384. package/lib/WAUSync/Protocols/index.js.map +1 -0
  385. package/lib/WAUSync/USyncQuery.d.ts +5 -4
  386. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  387. package/lib/WAUSync/USyncQuery.js +40 -35
  388. package/lib/WAUSync/USyncQuery.js.map +1 -0
  389. package/lib/WAUSync/USyncUser.d.ts +6 -5
  390. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  391. package/lib/WAUSync/USyncUser.js +2 -5
  392. package/lib/WAUSync/USyncUser.js.map +1 -0
  393. package/lib/WAUSync/index.d.ts +4 -3
  394. package/lib/WAUSync/index.d.ts.map +1 -0
  395. package/lib/WAUSync/index.js +4 -19
  396. package/lib/WAUSync/index.js.map +1 -0
  397. package/lib/index.d.ts +10 -9
  398. package/lib/index.d.ts.map +1 -0
  399. package/lib/index.js +12 -33
  400. package/lib/index.js.map +1 -0
  401. package/package.json +64 -105
  402. package/README.md +0 -364
  403. package/engine-requirements.js +0 -10
  404. package/lib/Defaults/baileys-version.json +0 -3
  405. package/lib/Defaults/phonenumber-mcc.json +0 -223
  406. package/lib/Signal/Group/queue-job.d.ts +0 -1
  407. package/lib/Signal/Group/queue-job.js +0 -57
  408. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  409. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
  410. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  411. package/lib/Socket/Client/web-socket-client.js +0 -62
  412. package/lib/Socket/registration.d.ts +0 -267
  413. package/lib/Socket/registration.js +0 -166
  414. package/lib/Socket/usync.d.ts +0 -36
  415. package/lib/Socket/usync.js +0 -70
  416. package/lib/Store/index.d.ts +0 -3
  417. package/lib/Store/index.js +0 -10
  418. package/lib/Store/make-cache-manager-store.d.ts +0 -13
  419. package/lib/Store/make-cache-manager-store.js +0 -83
  420. package/lib/Store/make-in-memory-store.d.ts +0 -118
  421. package/lib/Store/make-in-memory-store.js +0 -427
  422. package/lib/Store/make-ordered-dictionary.d.ts +0 -13
  423. package/lib/Store/make-ordered-dictionary.js +0 -81
  424. package/lib/Store/object-repository.d.ts +0 -10
  425. package/lib/Store/object-repository.js +0 -27
  426. package/lib/Utils/baileys-event-stream.d.ts +0 -16
  427. package/lib/Utils/baileys-event-stream.js +0 -63
@@ -1,484 +1,768 @@
1
- // "kikyy dugonggg", ah dejavu (r)
2
- // tanggal 14 agustus 2025 makassar
3
- // telegram: @tskiofc & @kyuucode
4
-
5
- const WAProto = require('../../WAProto').proto;
6
- const crypto = require('crypto');
7
- const Utils_1 = require("../Utils");
8
-
9
- class kikyy {
10
- constructor(utils, waUploadToServer, relayMessageFn) {
11
- this.utils = utils;
12
- this.relayMessage = relayMessageFn
13
- this.waUploadToServer = waUploadToServer;
14
-
15
- this.bail = {
16
- generateWAMessageContent: this.utils.generateWAMessageContent || Utils_1.generateWAMessageContent,
17
- generateMessageID: Utils_1.generateMessageID,
18
- getContentType: (msg) => Object.keys(msg.message || {})[0]
19
- };
1
+ import crypto from "crypto";
2
+ import { proto } from "../../WAProto/index.js";
3
+ import {
4
+ delay,
5
+ generateMessageID,
6
+ generateWAMessage,
7
+ generateWAMessageContent,
8
+ generateWAMessageFromContent,
9
+ getUrlFromDirectPath,
10
+ normalizeMessageContent,
11
+ prepareWAMessageMedia,
12
+ } from "../Utils/index.js";
13
+ import {
14
+ isJidGroup,
15
+ isPnUser,
16
+ jidNormalizedUser,
17
+ STORIES_JID,
18
+ } from "../WABinary/index.js";
19
+ export class Dugong {
20
+ constructor(waUploadToServer, relayMessageFn, config, sock) {
21
+ this.relayMessage = relayMessageFn;
22
+ this.waUploadToServer = waUploadToServer;
23
+ this.config = config;
24
+ this.sock = sock;
25
+ }
26
+ detectType(content) {
27
+ if (content.requestPaymentMessage) return "PAYMENT";
28
+ if (content.productMessage) return "PRODUCT";
29
+ if (content.interactiveButtons) return "INTERACTIVE_BUTTONS";
30
+ if (content.interactiveMessage?.carouselMessage) return "CAROUSEL";
31
+ if (content.interactiveMessage) return "INTERACTIVE";
32
+ if (content.albumMessage || content.album) return "ALBUM";
33
+ if (content.eventMessage) return "EVENT";
34
+ if (content.pollResultMessage) return "POLL_RESULT";
35
+ if (content.groupStatusMessage) return "GROUP_STORY";
36
+ return null;
37
+ }
38
+ async handlePayment(content, quoted) {
39
+ const data = content.requestPaymentMessage;
40
+ let notes = {};
41
+ if (data.sticker?.stickerMessage) {
42
+ notes = {
43
+ stickerMessage: {
44
+ ...data.sticker.stickerMessage,
45
+ contextInfo: {
46
+ stanzaId: quoted?.key?.id,
47
+ participant: quoted?.key?.participant || content.sender,
48
+ quotedMessage: quoted?.message,
49
+ },
50
+ },
51
+ };
52
+ } else if (data.note) {
53
+ notes = {
54
+ extendedTextMessage: {
55
+ text: data.note,
56
+ contextInfo: {
57
+ stanzaId: quoted?.key?.id,
58
+ participant: quoted?.key?.participant || content.sender,
59
+ quotedMessage: quoted?.message,
60
+ },
61
+ },
62
+ };
20
63
  }
21
-
22
- detectType(content) {
23
- if (content.requestPaymentMessage) return 'PAYMENT';
24
- if (content.productMessage) return 'PRODUCT';
25
- if (content.interactiveMessage) return 'INTERACTIVE';
26
- if (content.albumMessage) return 'ALBUM';
27
- if (content.eventMessage) return 'EVENT';
28
- if (content.pollResultMessage) return 'POLL_RESULT';
29
- if (content.groupStatusMessage) return 'GROUP_STORY';
30
- return null;
64
+ return {
65
+ requestPaymentMessage: proto.Message.RequestPaymentMessage.fromObject({
66
+ expiryTimestamp: data.expiry || 0,
67
+ amount1000: data.amount || 0,
68
+ currencyCodeIso4217: data.currency || "IDR",
69
+ requestFrom: data.from || "0@s.whatsapp.net",
70
+ noteMessage: notes,
71
+ background: data.background ?? {
72
+ id: "DEFAULT",
73
+ placeholderArgb: 0xfff0f0f0,
74
+ },
75
+ }),
76
+ };
77
+ }
78
+ async handleProduct(content, _jid, _quoted) {
79
+ const {
80
+ title,
81
+ description,
82
+ thumbnail,
83
+ productId,
84
+ retailerId,
85
+ url,
86
+ body = "",
87
+ footer = "",
88
+ buttons = [],
89
+ priceAmount1000 = null,
90
+ currencyCode = "IDR",
91
+ } = content.productMessage;
92
+ let productImage;
93
+ if (Buffer.isBuffer(thumbnail)) {
94
+ const { imageMessage } = await generateWAMessageContent(
95
+ { image: thumbnail },
96
+ { upload: this.waUploadToServer },
97
+ );
98
+ productImage = imageMessage;
99
+ } else if (typeof thumbnail === "object" && thumbnail.url) {
100
+ const { imageMessage } = await generateWAMessageContent(
101
+ { image: { url: thumbnail.url } },
102
+ { upload: this.waUploadToServer },
103
+ );
104
+ productImage = imageMessage;
31
105
  }
32
-
33
- async handlePayment(content, quoted) {
34
- const data = content.requestPaymentMessage;
35
- let notes = {};
36
-
37
- if (data.sticker?.stickerMessage) {
38
- notes = {
39
- stickerMessage: {
40
- ...data.sticker.stickerMessage,
41
- contextInfo: {
42
- stanzaId: quoted?.key?.id,
43
- participant: quoted?.key?.participant || content.sender,
44
- quotedMessage: quoted?.message
45
- }
46
- }
47
- };
48
- } else if (data.note) {
49
- notes = {
50
- extendedTextMessage: {
51
- text: data.note,
52
- contextInfo: {
53
- stanzaId: quoted?.key?.id,
54
- participant: quoted?.key?.participant || content.sender,
55
- quotedMessage: quoted?.message
56
- }
57
- }
58
- };
59
- }
60
-
61
- return {
62
- requestPaymentMessage: WAProto.Message.RequestPaymentMessage.fromObject({
63
- expiryTimestamp: data.expiry || 0,
64
- amount1000: data.amount || 0,
65
- currencyCodeIso4217: data.currency || "IDR",
66
- requestFrom: data.from || "0@s.whatsapp.net",
67
- noteMessage: notes,
68
- background: data.background ?? {
69
- id: "DEFAULT",
70
- placeholderArgb: 0xFFF0F0F0
71
- }
72
- })
73
- };
106
+ return {
107
+ viewOnceMessage: {
108
+ message: {
109
+ interactiveMessage: {
110
+ body: { text: body },
111
+ footer: { text: footer },
112
+ header: {
113
+ title,
114
+ hasMediaAttachment: true,
115
+ productMessage: {
116
+ product: {
117
+ productImage,
118
+ productId,
119
+ title,
120
+ description,
121
+ currencyCode,
122
+ priceAmount1000,
123
+ retailerId,
124
+ url,
125
+ productImageCount: 1,
126
+ },
127
+ businessOwnerJid: "0@s.whatsapp.net",
128
+ },
129
+ },
130
+ nativeFlowMessage: { buttons },
131
+ },
132
+ },
133
+ },
134
+ };
135
+ }
136
+ async handleInteractive(content, _jid, _quoted) {
137
+ const {
138
+ title,
139
+ footer,
140
+ thumbnail,
141
+ image,
142
+ video,
143
+ document,
144
+ mimetype,
145
+ fileName,
146
+ jpegThumbnail,
147
+ contextInfo,
148
+ externalAdReply,
149
+ buttons = [],
150
+ nativeFlowMessage,
151
+ header,
152
+ } = content.interactiveMessage;
153
+ let media = null;
154
+ let _mediaType = null;
155
+ if (thumbnail) {
156
+ media = await prepareWAMessageMedia(
157
+ { image: { url: thumbnail } },
158
+ { upload: this.waUploadToServer },
159
+ );
160
+ _mediaType = "image";
161
+ } else if (image) {
162
+ const src =
163
+ typeof image === "object" && image.url
164
+ ? { image: { url: image.url } }
165
+ : { image };
166
+ media = await prepareWAMessageMedia(src, {
167
+ upload: this.waUploadToServer,
168
+ });
169
+ _mediaType = "image";
170
+ } else if (video) {
171
+ const src =
172
+ typeof video === "object" && video.url
173
+ ? { video: { url: video.url } }
174
+ : { video };
175
+ media = await prepareWAMessageMedia(src, {
176
+ upload: this.waUploadToServer,
177
+ });
178
+ _mediaType = "video";
179
+ } else if (document) {
180
+ const docPayload = { document };
181
+ if (jpegThumbnail) {
182
+ docPayload.jpegThumbnail =
183
+ typeof jpegThumbnail === "object" && jpegThumbnail.url
184
+ ? { url: jpegThumbnail.url }
185
+ : jpegThumbnail;
186
+ }
187
+ media = await prepareWAMessageMedia(docPayload, {
188
+ upload: this.waUploadToServer,
189
+ });
190
+ if (fileName) media.documentMessage.fileName = fileName;
191
+ if (mimetype) media.documentMessage.mimetype = mimetype;
192
+ _mediaType = "document";
74
193
  }
75
-
76
- async handleProduct(content, jid, quoted) {
77
- const {
78
- title,
79
- description,
80
- thumbnail,
81
- productId,
82
- retailerId,
83
- url,
84
- body = "",
85
- footer = "",
86
- buttons = [],
87
- priceAmount1000 = null,
88
- currencyCode = "IDR"
89
- } = content.productMessage;
90
-
91
- let productImage;
92
-
93
- if (Buffer.isBuffer(thumbnail)) {
94
- const { imageMessage } = await this.utils.generateWAMessageContent(
95
- { image: thumbnail },
96
- { upload: this.waUploadToServer }
97
- );
98
- productImage = imageMessage;
99
- } else if (typeof thumbnail === 'object' && thumbnail.url) {
100
- const { imageMessage } = await this.utils.generateWAMessageContent(
101
- { image: { url: thumbnail.url }},
102
- { upload: this.waUploadToServer }
103
- );
104
- productImage = imageMessage;
105
- }
106
-
107
- return {
108
- viewOnceMessage: {
109
- message: {
110
- interactiveMessage: {
111
- body: { text: body },
112
- footer: { text: footer },
113
- header: {
114
- title,
115
- hasMediaAttachment: true,
116
- productMessage: {
117
- product: {
118
- productImage,
119
- productId,
120
- title,
121
- description,
122
- currencyCode,
123
- priceAmount1000,
124
- retailerId,
125
- url,
126
- productImageCount: 1
127
- },
128
- businessOwnerJid: "0@s.whatsapp.net"
129
- }
130
- },
131
- nativeFlowMessage: { buttons }
132
- }
133
- }
134
- }
194
+ const interactiveMessage = {
195
+ body: { text: title || "" },
196
+ footer: { text: footer || "" },
197
+ };
198
+ if (buttons && buttons.length > 0) {
199
+ interactiveMessage.nativeFlowMessage = { buttons };
200
+ if (nativeFlowMessage) {
201
+ interactiveMessage.nativeFlowMessage = {
202
+ ...interactiveMessage.nativeFlowMessage,
203
+ ...nativeFlowMessage,
135
204
  };
205
+ }
206
+ } else if (nativeFlowMessage) {
207
+ interactiveMessage.nativeFlowMessage = nativeFlowMessage;
136
208
  }
137
-
138
- async handleInteractive(content, jid, quoted) {
139
- const {
140
- title,
141
- footer,
142
- thumbnail,
143
- image,
144
- video,
145
- document,
146
- mimetype,
147
- fileName,
148
- jpegThumbnail,
149
- contextInfo,
150
- externalAdReply,
151
- buttons = [],
152
- nativeFlowMessage,
153
- header
154
- } = content.interactiveMessage;
155
-
156
- let media = null;
157
- let mediaType = null;
158
-
159
- if (thumbnail) {
160
- media = await this.utils.prepareWAMessageMedia(
161
- { image: { url: thumbnail } },
162
- { upload: this.waUploadToServer }
163
- );
164
- mediaType = 'image';
165
- } else if (image) {
166
- if (typeof image === 'object' && image.url) {
167
- media = await this.utils.prepareWAMessageMedia(
168
- { image: { url: image.url } },
169
- { upload: this.waUploadToServer }
170
- );
171
- } else {
172
- media = await this.utils.prepareWAMessageMedia(
173
- { image: image },
174
- { upload: this.waUploadToServer }
175
- );
176
- }
177
- mediaType = 'image';
178
- } else if (video) {
179
- if (typeof video === 'object' && video.url) {
180
- media = await this.utils.prepareWAMessageMedia(
181
- { video: { url: video.url } },
182
- { upload: this.waUploadToServer }
183
- );
184
- } else {
185
- media = await this.utils.prepareWAMessageMedia(
186
- { video: video },
187
- { upload: this.waUploadToServer }
188
- );
189
- }
190
- mediaType = 'video';
191
- } else if (document) {
192
- let documentPayload = {
193
- document: document
194
- };
195
- if (jpegThumbnail) {
196
- if (typeof jpegThumbnail === 'object' && jpegThumbnail.url) {
197
- documentPayload.jpegThumbnail = { url: jpegThumbnail.url };
198
- } else {
199
- documentPayload.jpegThumbnail = jpegThumbnail;
200
- }
201
- }
202
-
203
- media = await this.utils.prepareWAMessageMedia(
204
- documentPayload,
205
- { upload: this.waUploadToServer }
206
- );
207
- if (fileName) {
208
- media.documentMessage.fileName = fileName;
209
- }
210
- if (mimetype) {
211
- media.documentMessage.mimetype = mimetype;
212
- }
213
- mediaType = 'document';
214
- }
215
- let interactiveMessage = {
216
- body: { text: title || "" },
217
- footer: { text: footer || "" }
218
- };
219
- if (buttons && buttons.length > 0) {
220
- interactiveMessage.nativeFlowMessage = {
221
- buttons: buttons
222
- };
223
- if (nativeFlowMessage) {
224
- interactiveMessage.nativeFlowMessage = {
225
- ...interactiveMessage.nativeFlowMessage,
226
- ...nativeFlowMessage
227
- };
228
- }
229
- } else if (nativeFlowMessage) {
230
- interactiveMessage.nativeFlowMessage = nativeFlowMessage;
231
- }
232
-
233
- if (media) {
234
- interactiveMessage.header = {
235
- title: header || "",
236
- hasMediaAttachment: true,
237
- ...media
238
- };
239
- } else {
240
- interactiveMessage.header = {
241
- title: header || "",
242
- hasMediaAttachment: false
243
- };
244
- }
245
-
246
- let finalContextInfo = {};
247
- if (contextInfo) {
248
- finalContextInfo = {
249
- mentionedJid: contextInfo.mentionedJid || [],
250
- forwardingScore: contextInfo.forwardingScore || 0,
251
- isForwarded: contextInfo.isForwarded || false,
252
- ...contextInfo
253
- };
254
- }
255
-
256
- if (externalAdReply) {
257
- finalContextInfo.externalAdReply = {
258
- title: externalAdReply.title || "",
259
- body: externalAdReply.body || "",
260
- mediaType: externalAdReply.mediaType || 1,
261
- thumbnailUrl: externalAdReply.thumbnailUrl || "",
262
- mediaUrl: externalAdReply.mediaUrl || "",
263
- sourceUrl: externalAdReply.sourceUrl || "",
264
- showAdAttribution: externalAdReply.showAdAttribution || false,
265
- renderLargerThumbnail: externalAdReply.renderLargerThumbnail || false,
266
- ...externalAdReply
267
- };
268
- }
269
-
270
- if (Object.keys(finalContextInfo).length > 0) {
271
- interactiveMessage.contextInfo = finalContextInfo;
209
+ if (media) {
210
+ interactiveMessage.header = {
211
+ title: header || "",
212
+ hasMediaAttachment: true,
213
+ ...media,
214
+ };
215
+ } else {
216
+ interactiveMessage.header = {
217
+ title: header || "",
218
+ hasMediaAttachment: false,
219
+ };
220
+ }
221
+ const finalContextInfo = {};
222
+ if (contextInfo) {
223
+ Object.assign(finalContextInfo, {
224
+ mentionedJid: contextInfo.mentionedJid || [],
225
+ forwardingScore: contextInfo.forwardingScore || 0,
226
+ isForwarded: contextInfo.isForwarded || false,
227
+ ...contextInfo,
228
+ });
229
+ }
230
+ if (externalAdReply) {
231
+ finalContextInfo.externalAdReply = {
232
+ title: externalAdReply.title || "",
233
+ body: externalAdReply.body || "",
234
+ mediaType: externalAdReply.mediaType || 1,
235
+ thumbnailUrl: externalAdReply.thumbnailUrl || "",
236
+ mediaUrl: externalAdReply.mediaUrl || "",
237
+ sourceUrl: externalAdReply.sourceUrl || "",
238
+ showAdAttribution: externalAdReply.showAdAttribution || false,
239
+ renderLargerThumbnail: externalAdReply.renderLargerThumbnail || false,
240
+ ...externalAdReply,
241
+ };
242
+ }
243
+ if (Object.keys(finalContextInfo).length > 0) {
244
+ interactiveMessage.contextInfo = finalContextInfo;
245
+ }
246
+ return { interactiveMessage };
247
+ }
248
+ async handleInteractiveButtons(content, _jid, _quoted) {
249
+ const {
250
+ text,
251
+ caption,
252
+ title,
253
+ subtitle,
254
+ footer,
255
+ interactiveButtons,
256
+ hasMediaAttachment,
257
+ image,
258
+ video,
259
+ document,
260
+ mimetype,
261
+ jpegThumbnail,
262
+ location,
263
+ product,
264
+ businessOwnerJid,
265
+ } = content;
266
+ const bodyText = text || caption || "";
267
+ const buttons = interactiveButtons.map((btn) => ({
268
+ name: btn.name,
269
+ buttonParamsJson:
270
+ typeof btn.buttonParamsJson === "string"
271
+ ? btn.buttonParamsJson
272
+ : JSON.stringify(btn.buttonParamsJson),
273
+ }));
274
+ let headerContent = {};
275
+ let mediaAttached =
276
+ typeof hasMediaAttachment === "boolean" ? hasMediaAttachment : false;
277
+ if (image) {
278
+ const src =
279
+ typeof image === "object" && image.url
280
+ ? { image: { url: image.url } }
281
+ : { image };
282
+ const uploaded = await prepareWAMessageMedia(src, {
283
+ upload: this.waUploadToServer,
284
+ });
285
+ headerContent = { ...uploaded };
286
+ mediaAttached =
287
+ typeof hasMediaAttachment === "boolean" ? hasMediaAttachment : true;
288
+ } else if (video) {
289
+ const src =
290
+ typeof video === "object" && video.url
291
+ ? { video: { url: video.url } }
292
+ : { video };
293
+ const uploaded = await prepareWAMessageMedia(src, {
294
+ upload: this.waUploadToServer,
295
+ });
296
+ headerContent = { ...uploaded };
297
+ mediaAttached =
298
+ typeof hasMediaAttachment === "boolean" ? hasMediaAttachment : true;
299
+ } else if (document) {
300
+ const docPayload =
301
+ typeof document === "object" && document.url
302
+ ? { document: { url: document.url } }
303
+ : { document };
304
+ if (mimetype) docPayload.mimetype = mimetype;
305
+ const uploaded = await prepareWAMessageMedia(docPayload, {
306
+ upload: this.waUploadToServer,
307
+ });
308
+ if (jpegThumbnail) {
309
+ uploaded.documentMessage.jpegThumbnail =
310
+ typeof jpegThumbnail === "string"
311
+ ? Buffer.from(jpegThumbnail, "base64")
312
+ : jpegThumbnail;
313
+ }
314
+ headerContent = { ...uploaded };
315
+ mediaAttached =
316
+ typeof hasMediaAttachment === "boolean" ? hasMediaAttachment : true;
317
+ } else if (location) {
318
+ headerContent = {
319
+ locationMessage: {
320
+ degreesLatitude:
321
+ location.degressLatitude || location.degreesLatitude || 0,
322
+ degreesLongitude:
323
+ location.degressLongitude || location.degreesLongitude || 0,
324
+ name: location.name || "",
325
+ },
326
+ };
327
+ mediaAttached =
328
+ typeof hasMediaAttachment === "boolean" ? hasMediaAttachment : true;
329
+ } else if (product) {
330
+ let productImage;
331
+ if (product.productImage) {
332
+ const imgSrc =
333
+ typeof product.productImage === "object" && product.productImage.url
334
+ ? { image: { url: product.productImage.url } }
335
+ : { image: product.productImage };
336
+ const uploaded = await prepareWAMessageMedia(imgSrc, {
337
+ upload: this.waUploadToServer,
338
+ });
339
+ productImage = uploaded.imageMessage;
340
+ }
341
+ headerContent = {
342
+ productMessage: {
343
+ product: {
344
+ productImage,
345
+ productId: product.productId,
346
+ title: product.title,
347
+ description: product.description,
348
+ currencyCode: product.currencyCode || "IDR",
349
+ priceAmount1000: product.priceAmount1000,
350
+ retailerId: product.retailerId,
351
+ url: product.url,
352
+ productImageCount: product.productImageCount || 1,
353
+ },
354
+ businessOwnerJid: businessOwnerJid || "0@s.whatsapp.net",
355
+ },
356
+ };
357
+ mediaAttached =
358
+ typeof hasMediaAttachment === "boolean" ? hasMediaAttachment : true;
359
+ }
360
+ const interactiveMessage = {
361
+ body: { text: bodyText },
362
+ footer: { text: footer || "" },
363
+ header: {
364
+ title: title || "",
365
+ subtitle: subtitle || "",
366
+ hasMediaAttachment: mediaAttached,
367
+ ...headerContent,
368
+ },
369
+ nativeFlowMessage: { buttons },
370
+ };
371
+ return {
372
+ viewOnceMessage: {
373
+ message: {
374
+ messageContextInfo: {
375
+ deviceListMetadata: {},
376
+ deviceListMetadataVersion: 2,
377
+ messageSecret: crypto.randomBytes(32),
378
+ },
379
+ interactiveMessage,
380
+ },
381
+ },
382
+ };
383
+ }
384
+ async handleCarousel(content, _jid, _quoted) {
385
+ const { interactiveMessage } = content;
386
+ const { body, footer, header, carouselMessage, contextInfo } =
387
+ interactiveMessage;
388
+ const processedCards = [];
389
+ for (const card of carouselMessage.cards) {
390
+ const cardMsg = {
391
+ body: card.body || { text: "" },
392
+ footer: card.footer || { text: "" },
393
+ header: {
394
+ title: card.header?.title || "",
395
+ hasMediaAttachment: false,
396
+ },
397
+ };
398
+ if (card.nativeFlowMessage) {
399
+ cardMsg.nativeFlowMessage = card.nativeFlowMessage;
400
+ }
401
+ if (
402
+ card.header?.imageMessage ||
403
+ card.header?.videoMessage ||
404
+ card.header?.documentMessage
405
+ ) {
406
+ let headerContent = {};
407
+ let mediaAttached = true;
408
+ if (card.header.imageMessage) {
409
+ const url = card.header.imageMessage.url || card.header.imageMessage;
410
+ const src =
411
+ typeof url === "string" ? { image: { url } } : { image: url };
412
+ const uploaded = await prepareWAMessageMedia(src, {
413
+ upload: this.waUploadToServer,
414
+ });
415
+ headerContent = { ...uploaded };
416
+ } else if (card.header.videoMessage) {
417
+ const url = card.header.videoMessage.url || card.header.videoMessage;
418
+ const src =
419
+ typeof url === "string" ? { video: { url } } : { video: url };
420
+ const uploaded = await prepareWAMessageMedia(src, {
421
+ upload: this.waUploadToServer,
422
+ });
423
+ headerContent = { ...uploaded };
424
+ } else if (card.header.documentMessage) {
425
+ const url =
426
+ card.header.documentMessage.url || card.header.documentMessage;
427
+ const src =
428
+ typeof url === "string" ? { document: { url } } : { document: url };
429
+ const uploaded = await prepareWAMessageMedia(src, {
430
+ upload: this.waUploadToServer,
431
+ });
432
+ headerContent = { ...uploaded };
272
433
  }
273
- return {
274
- interactiveMessage: interactiveMessage
434
+ cardMsg.header = {
435
+ title: card.header?.title || "",
436
+ hasMediaAttachment: mediaAttached,
437
+ ...headerContent,
275
438
  };
439
+ }
440
+ processedCards.push(cardMsg);
276
441
  }
277
-
278
- async handleAlbum(content, jid, quoted) {
279
- const array = content.albumMessage;
280
- const album = await this.utils.generateWAMessageFromContent(jid, {
442
+ const interactiveMsg = {
443
+ body: body || { text: "" },
444
+ footer: footer || { text: "" },
445
+ header: header || { title: "", hasMediaAttachment: false },
446
+ carouselMessage: {
447
+ cards: processedCards,
448
+ messageVersion: carouselMessage.messageVersion || 1,
449
+ carouselCardType: carouselMessage.carouselCardType ?? 1,
450
+ },
451
+ };
452
+ if (contextInfo) {
453
+ interactiveMsg.contextInfo = contextInfo;
454
+ }
455
+ return {
456
+ viewOnceMessage: {
457
+ message: {
458
+ messageContextInfo: {
459
+ deviceListMetadata: {},
460
+ deviceListMetadataVersion: 2,
461
+ messageSecret: crypto.randomBytes(32),
462
+ },
463
+ interactiveMessage: interactiveMsg,
464
+ },
465
+ },
466
+ };
467
+ }
468
+ async handleAlbum(content, jid, quoted) {
469
+ const array = content.albumMessage || content.album;
470
+ const ctxInfo = content.contextInfo || {};
471
+ const album = await generateWAMessageFromContent(
472
+ jid,
473
+ {
474
+ messageContextInfo: {
475
+ messageSecret: crypto.randomBytes(32),
476
+ },
477
+ albumMessage: {
478
+ expectedImageCount: array.filter((a) => "image" in a).length,
479
+ expectedVideoCount: array.filter((a) => "video" in a).length,
480
+ },
481
+ },
482
+ {
483
+ userJid: jidNormalizedUser(this.sock.authState?.creds?.me?.id || ""),
484
+ quoted,
485
+ upload: this.waUploadToServer,
486
+ },
487
+ );
488
+ await this.relayMessage(jid, album.message, {
489
+ messageId: album.key.id,
490
+ });
491
+ for (let item of array) {
492
+ if (ctxInfo && Object.keys(ctxInfo).length > 0 && !item.contextInfo) {
493
+ item = { ...item, contextInfo: ctxInfo };
494
+ }
495
+ const img = await generateWAMessage(jid, item, {
496
+ upload: this.waUploadToServer,
497
+ userJid: jidNormalizedUser(this.sock.authState?.creds?.me?.id || ""),
498
+ });
499
+ img.message.messageContextInfo = {
500
+ messageSecret: crypto.randomBytes(32),
501
+ messageAssociation: {
502
+ associationType: 1,
503
+ parentMessageKey: album.key,
504
+ },
505
+ };
506
+ await this.relayMessage(jid, img.message, {
507
+ messageId: img.key.id,
508
+ });
509
+ }
510
+ return album;
511
+ }
512
+ async handleEvent(content, jid, quoted) {
513
+ const eventData = content.eventMessage;
514
+ const msg = await generateWAMessageFromContent(
515
+ jid,
516
+ {
517
+ viewOnceMessage: {
518
+ message: {
281
519
  messageContextInfo: {
282
- messageSecret: crypto.randomBytes(32),
520
+ deviceListMetadata: {},
521
+ deviceListMetadataVersion: 2,
522
+ messageSecret: crypto.randomBytes(32),
283
523
  },
284
- albumMessage: {
285
- expectedImageCount: array.filter((a) => a.hasOwnProperty("image")).length,
286
- expectedVideoCount: array.filter((a) => a.hasOwnProperty("video")).length,
524
+ eventMessage: {
525
+ isCanceled: eventData.isCanceled || false,
526
+ name: eventData.name,
527
+ description: eventData.description,
528
+ location: eventData.location || {
529
+ degreesLatitude: 0,
530
+ degreesLongitude: 0,
531
+ name: "Location",
532
+ },
533
+ joinLink: eventData.joinLink || "",
534
+ startTime:
535
+ typeof eventData.startTime === "string"
536
+ ? parseInt(eventData.startTime)
537
+ : eventData.startTime || Date.now(),
538
+ endTime:
539
+ typeof eventData.endTime === "string"
540
+ ? parseInt(eventData.endTime)
541
+ : eventData.endTime || Date.now() + 3600000,
542
+ extraGuestsAllowed: eventData.extraGuestsAllowed !== false,
287
543
  },
288
- }, {
289
- userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
290
- quoted,
291
- upload: this.waUploadToServer
292
- });
293
-
294
- await this.relayMessage(jid, album.message, {
295
- messageId: album.key.id,
296
- });
297
-
298
- for (let content of array) {
299
- const img = await this.utils.generateWAMessage(jid, content, {
300
- upload: this.waUploadToServer,
301
- });
302
-
303
- img.message.messageContextInfo = {
304
- messageSecret: crypto.randomBytes(32),
305
- messageAssociation: {
306
- associationType: 1,
307
- parentMessageKey: album.key,
308
- },
309
- participant: "0@s.whatsapp.net",
310
- remoteJid: "status@broadcast",
311
- forwardingScore: 99999,
312
- isForwarded: true,
313
- mentionedJid: [jid],
314
- starred: true,
315
- labels: ["Y", "Important"],
316
- isHighlighted: true,
317
- businessMessageForwardInfo: {
318
- businessOwnerJid: jid,
319
- },
320
- dataSharingContext: {
321
- showMmDisclosure: true,
322
- },
323
- };
324
-
325
- img.message.forwardedNewsletterMessageInfo = {
326
- newsletterJid: "0@newsletter",
327
- serverMessageId: 1,
328
- newsletterName: `WhatsApp`,
329
- contentType: 1,
330
- timestamp: new Date().toISOString(),
331
- senderName: "kikyy dugonggg",
332
- content: "Text Message",
333
- priority: "high",
334
- status: "sent",
335
- };
336
-
337
- img.message.disappearingMode = {
338
- initiator: 3,
339
- trigger: 4,
340
- initiatorDeviceJid: jid,
341
- initiatedByExternalService: true,
342
- initiatedByUserDevice: true,
343
- initiatedBySystem: true,
344
- initiatedByServer: true,
345
- initiatedByAdmin: true,
346
- initiatedByUser: true,
347
- initiatedByApp: true,
348
- initiatedByBot: true,
349
- initiatedByMe: true,
350
- };
351
-
352
- await this.relayMessage(jid, img.message, {
353
- messageId: img.key.id,
354
- quoted: {
355
- key: {
356
- remoteJid: album.key.remoteJid,
357
- id: album.key.id,
358
- fromMe: true,
359
- participant: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
360
- },
361
- message: album.message,
362
- },
363
- });
364
- }
365
- return album;
366
- }
367
-
368
- async handleEvent(content, jid, quoted) {
369
- const eventData = content.eventMessage;
370
-
371
- const msg = await this.utils.generateWAMessageFromContent(jid, {
372
- viewOnceMessage: {
373
- message: {
374
- messageContextInfo: {
375
- deviceListMetadata: {},
376
- deviceListMetadataVersion: 2,
377
- messageSecret: crypto.randomBytes(32),
378
- supportPayload: JSON.stringify({
379
- version: 2,
380
- is_ai_message: true,
381
- should_show_system_message: true,
382
- ticket_id: crypto.randomBytes(16).toString('hex')
383
- })
384
- },
385
- eventMessage: {
386
- contextInfo: {
387
- mentionedJid: [jid],
388
- participant: jid,
389
- remoteJid: "status@broadcast",
390
- forwardedNewsletterMessageInfo: {
391
- newsletterName: "shenvn.",
392
- newsletterJid: "120363297591152843@newsletter",
393
- serverMessageId: 1
394
- }
395
- },
396
- isCanceled: eventData.isCanceled || false,
397
- name: eventData.name,
398
- description: eventData.description,
399
- location: eventData.location || {
400
- degreesLatitude: 0,
401
- degreesLongitude: 0,
402
- name: "Location"
403
- },
404
- joinLink: eventData.joinLink || '',
405
- startTime: typeof eventData.startTime === 'string' ? parseInt(eventData.startTime) : eventData.startTime || Date.now(),
406
- endTime: typeof eventData.endTime === 'string' ? parseInt(eventData.endTime) : eventData.endTime || Date.now() + 3600000,
407
- extraGuestsAllowed: eventData.extraGuestsAllowed !== false
408
- }
409
- }
410
- }
411
- }, { quoted });
412
-
413
- await this.relayMessage(jid, msg.message, {
414
- messageId: msg.key.id
415
- });
416
- return msg;
544
+ },
545
+ },
546
+ },
547
+ {
548
+ quoted,
549
+ userJid: jidNormalizedUser(this.sock.authState?.creds?.me?.id || ""),
550
+ },
551
+ );
552
+ await this.relayMessage(jid, msg.message, {
553
+ messageId: msg.key.id,
554
+ });
555
+ return msg;
556
+ }
557
+ async handlePollResult(content, jid, quoted) {
558
+ const pollData = content.pollResultMessage;
559
+ const msg = await generateWAMessageFromContent(
560
+ jid,
561
+ {
562
+ pollResultSnapshotMessage: {
563
+ name: pollData.name,
564
+ pollVotes: pollData.pollVotes.map((vote) => ({
565
+ optionName: vote.optionName,
566
+ optionVoteCount:
567
+ typeof vote.optionVoteCount === "number"
568
+ ? vote.optionVoteCount.toString()
569
+ : vote.optionVoteCount,
570
+ })),
571
+ },
572
+ },
573
+ {
574
+ quoted,
575
+ userJid: jidNormalizedUser(this.sock.authState?.creds?.me?.id || ""),
576
+ },
577
+ );
578
+ await this.relayMessage(jid, msg.message, {
579
+ messageId: msg.key.id,
580
+ });
581
+ return msg;
582
+ }
583
+ async handleGroupStory(content, jid, _quoted, options = {}) {
584
+ const storyData = content.groupStatusMessage;
585
+ let waMsgContent;
586
+ if (storyData.message) {
587
+ waMsgContent = storyData;
588
+ } else {
589
+ waMsgContent = await generateWAMessageContent(storyData, {
590
+ upload: this.waUploadToServer,
591
+ });
417
592
  }
418
-
419
- async handlePollResult(content, jid, quoted) {
420
- const pollData = content.pollResultMessage;
421
-
422
- const msg = await this.utils.generateWAMessageFromContent(jid, {
423
- pollResultSnapshotMessage: {
424
- name: pollData.name,
425
- pollVotes: pollData.pollVotes.map(vote => ({
426
- optionName: vote.optionName,
427
- optionVoteCount: typeof vote.optionVoteCount === 'number'
428
- ? vote.optionVoteCount.toString()
429
- : vote.optionVoteCount
430
- }))
431
- }
432
- }, {
433
- userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
434
- quoted
435
- });
436
-
437
- await this.relayMessage(jid, msg.message, {
438
- messageId: msg.key.id
439
- });
440
-
441
- return msg;
593
+ const innerMsg = waMsgContent.message || waMsgContent;
594
+ const msgKey = Object.keys(innerMsg).find(
595
+ (k) => innerMsg[k] && typeof innerMsg[k] === "object",
596
+ );
597
+ if (msgKey) {
598
+ innerMsg[msgKey].contextInfo = innerMsg[msgKey].contextInfo || {};
599
+ innerMsg[msgKey].contextInfo.isGroupStatus = true;
600
+ if (!innerMsg[msgKey].contextInfo.statusSourceType) {
601
+ if (innerMsg.imageMessage)
602
+ innerMsg[msgKey].contextInfo.statusSourceType = 0;
603
+ else if (innerMsg.videoMessage)
604
+ innerMsg[msgKey].contextInfo.statusSourceType = 1;
605
+ else if (innerMsg.audioMessage)
606
+ innerMsg[msgKey].contextInfo.statusSourceType = 3;
607
+ else if (innerMsg.extendedTextMessage)
608
+ innerMsg[msgKey].contextInfo.statusSourceType = 4;
609
+ }
442
610
  }
443
-
444
- async handleGroupStory(content, jid, quoted) {
445
- const storyData = content.groupStatusMessage;
446
- let waMsgContent;
447
-
448
- if (storyData.message) {
449
- waMsgContent = storyData;
450
- } else {
451
- if (typeof this.bail?.generateWAMessageContent === "function") {
452
- waMsgContent = await this.bail.generateWAMessageContent(storyData, {
453
- upload: this.waUploadToServer
454
- });
455
- } else if (typeof this.utils?.generateWAMessageContent === "function") {
456
- waMsgContent = await this.utils.generateWAMessageContent(storyData, {
457
- upload: this.waUploadToServer
458
- });
459
- } else if (typeof this.utils?.prepareMessageContent === "function") {
460
- waMsgContent = await this.utils.prepareMessageContent(storyData, {
461
- upload: this.waUploadToServer
462
- });
463
- } else {
464
- waMsgContent = await Utils_1.generateWAMessageContent(storyData, {
465
- upload: this.waUploadToServer
466
- });
467
- }
611
+ const finalMsg = {
612
+ groupStatusMessageV2: {
613
+ message: innerMsg,
614
+ },
615
+ };
616
+ return await this.relayMessage(jid, finalMsg, {
617
+ messageId: generateMessageID(),
618
+ });
619
+ }
620
+ async sendStatusWhatsApp(content, jids = []) {
621
+ const userJid = jidNormalizedUser(this.sock.authState.creds.me.id);
622
+ const allUsers = new Set();
623
+ allUsers.add(userJid);
624
+ for (const id of jids) {
625
+ if (isJidGroup(id)) {
626
+ try {
627
+ const metadata = await this.sock.groupMetadata(id);
628
+ metadata.participants.forEach((p) =>
629
+ allUsers.add(jidNormalizedUser(p.id)),
630
+ );
631
+ } catch (error) {
632
+ this.config.logger.error(
633
+ `Error getting metadata for group ${id}: ${error}`,
634
+ );
468
635
  }
469
-
470
- let msg = {
636
+ } else if (isPnUser(id)) {
637
+ allUsers.add(jidNormalizedUser(id));
638
+ }
639
+ }
640
+ const uniqueUsers = Array.from(allUsers);
641
+ const getRandomHexColor = () =>
642
+ "#" +
643
+ Math.floor(Math.random() * 16777215)
644
+ .toString(16)
645
+ .padStart(6, "0");
646
+ const isMedia = content.image || content.video || content.audio;
647
+ const isAudio = !!content.audio;
648
+ const messageContent = { ...content };
649
+ if (isMedia && !isAudio) {
650
+ if (messageContent.text) {
651
+ messageContent.caption = messageContent.text;
652
+ delete messageContent.text;
653
+ }
654
+ delete messageContent.ptt;
655
+ delete messageContent.font;
656
+ delete messageContent.backgroundColor;
657
+ delete messageContent.textColor;
658
+ }
659
+ if (isAudio) {
660
+ delete messageContent.text;
661
+ delete messageContent.caption;
662
+ delete messageContent.font;
663
+ delete messageContent.textColor;
664
+ }
665
+ const font = !isMedia
666
+ ? content.font || Math.floor(Math.random() * 9)
667
+ : undefined;
668
+ const textColor = !isMedia
669
+ ? content.textColor || getRandomHexColor()
670
+ : undefined;
671
+ const backgroundColor =
672
+ !isMedia || isAudio
673
+ ? content.backgroundColor || getRandomHexColor()
674
+ : undefined;
675
+ const ptt = isAudio
676
+ ? typeof content.ptt === "boolean"
677
+ ? content.ptt
678
+ : true
679
+ : undefined;
680
+ const { getUrlInfo } = await import("../Utils/link-preview.js");
681
+ const msg = await generateWAMessage(STORIES_JID, messageContent, {
682
+ logger: this.config.logger,
683
+ userJid,
684
+ getUrlInfo: (text) =>
685
+ getUrlInfo(text, {
686
+ thumbnailWidth: this.config.linkPreviewImageThumbnailWidth,
687
+ fetchOpts: { timeout: 3000, ...(this.config.options || {}) },
688
+ logger: this.config.logger,
689
+ uploadImage: this.config.generateHighQualityLinkPreview
690
+ ? this.waUploadToServer
691
+ : undefined,
692
+ }),
693
+ upload: this.waUploadToServer,
694
+ mediaCache: this.config.mediaCache,
695
+ options: this.config.options,
696
+ font,
697
+ textColor,
698
+ backgroundColor,
699
+ ptt,
700
+ });
701
+ await this.relayMessage(STORIES_JID, msg.message, {
702
+ messageId: msg.key.id,
703
+ statusJidList: uniqueUsers,
704
+ additionalNodes: [
705
+ {
706
+ tag: "meta",
707
+ attrs: {},
708
+ content: [
709
+ {
710
+ tag: "mentioned_users",
711
+ attrs: {},
712
+ content: jids.map((jid) => ({
713
+ tag: "to",
714
+ attrs: { jid: jidNormalizedUser(jid) },
715
+ })),
716
+ },
717
+ ],
718
+ },
719
+ ],
720
+ });
721
+ for (const id of jids) {
722
+ try {
723
+ const normalizedId = jidNormalizedUser(id);
724
+ const isPrivate = isPnUser(normalizedId);
725
+ const type = isPrivate
726
+ ? "statusMentionMessage"
727
+ : "groupStatusMentionMessage";
728
+ const protocolMessage = {
729
+ [type]: {
471
730
  message: {
472
- groupStatusMessageV2: {
473
- message: waMsgContent.message || waMsgContent
474
- }
475
- }
731
+ protocolMessage: {
732
+ key: msg.key,
733
+ type: 25,
734
+ },
735
+ },
736
+ },
737
+ messageContextInfo: {
738
+ messageSecret: crypto.randomBytes(32),
739
+ },
476
740
  };
477
-
478
- return await this.relayMessage(jid, msg.message, {
479
- messageId: this.bail.generateMessageID()
741
+ const statusMsg = await generateWAMessageFromContent(
742
+ normalizedId,
743
+ protocolMessage,
744
+ {
745
+ userJid: jidNormalizedUser(
746
+ this.sock.authState?.creds?.me?.id || "",
747
+ ),
748
+ },
749
+ );
750
+ await this.relayMessage(normalizedId, statusMsg.message, {
751
+ additionalNodes: [
752
+ {
753
+ tag: "meta",
754
+ attrs: isPrivate
755
+ ? { is_status_mention: "true" }
756
+ : { is_group_status_mention: "true" },
757
+ },
758
+ ],
480
759
  });
760
+ await delay(2000);
761
+ } catch (error) {
762
+ this.config.logger.error(`Error sending to ${id}: ${error}`);
763
+ }
481
764
  }
765
+ return msg;
766
+ }
482
767
  }
483
-
484
- module.exports = kikyy;
768
+ //# sourceMappingURL=dugong.js.map