@ubedsockets/baileys 1.6.9 → 1.7.1

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 (399) hide show
  1. package/WAProto/GenerateStatics.sh +26 -3
  2. package/WAProto/WAProto.proto +432 -180
  3. package/WAProto/add-missing-proto-deps.js +134 -0
  4. package/WAProto/imports-elaina.js +48 -0
  5. package/WAProto/index.js +78044 -140686
  6. package/WAProto/merge-elaina-ai-proto.js +187 -0
  7. package/engine-requirements.js +10 -0
  8. package/lib/Defaults/elaina-version.json +3 -0
  9. package/lib/Defaults/index.js +57 -55
  10. package/lib/Signal/Group/group_cipher.js +1 -1
  11. package/lib/Signal/Group/keyhelper.js +1 -1
  12. package/lib/Signal/Group/sender-chain-key.js +1 -1
  13. package/lib/Signal/Group/sender-key-message.js +1 -1
  14. package/lib/Signal/Group/sender-message-key.js +1 -1
  15. package/lib/Signal/libsignal.js +1 -1
  16. package/lib/Signal/libsignalnode/LICENSE +621 -0
  17. package/lib/Signal/libsignalnode/README.md +11 -0
  18. package/lib/Signal/libsignalnode/generate-proto.sh +1 -0
  19. package/lib/Signal/libsignalnode/index.js +10 -0
  20. package/lib/Signal/libsignalnode/protos/WhisperTextProtocol.proto +28 -0
  21. package/lib/Signal/libsignalnode/src/.eslintrc.json +31 -0
  22. package/lib/Signal/libsignalnode/src/WhisperTextProtocol.js +948 -0
  23. package/lib/Signal/libsignalnode/src/base_key_type.js +6 -0
  24. package/lib/Signal/libsignalnode/src/chain_type.js +6 -0
  25. package/lib/Signal/libsignalnode/src/crypto.js +98 -0
  26. package/lib/Signal/libsignalnode/src/curve.js +142 -0
  27. package/lib/Signal/libsignalnode/src/errors.js +33 -0
  28. package/lib/Signal/libsignalnode/src/keyhelper.js +45 -0
  29. package/lib/Signal/libsignalnode/src/numeric_fingerprint.js +70 -0
  30. package/lib/Signal/libsignalnode/src/protobufs.js +10 -0
  31. package/lib/Signal/libsignalnode/src/protocol_address.js +40 -0
  32. package/lib/Signal/libsignalnode/src/queue_job.js +70 -0
  33. package/lib/Signal/libsignalnode/src/session_builder.js +164 -0
  34. package/lib/Signal/libsignalnode/src/session_cipher.js +332 -0
  35. package/lib/Signal/libsignalnode/src/session_record.js +325 -0
  36. package/lib/Socket/Client/websocket.js +2 -41
  37. package/lib/Socket/RHandler.js +533 -0
  38. package/lib/Socket/chats.js +249 -123
  39. package/lib/Socket/index.js +1 -1
  40. package/lib/Socket/messages-recv.js +57 -5
  41. package/lib/Socket/messages-send.js +47 -280
  42. package/lib/Socket/newsletter.js +100 -132
  43. package/lib/Socket/socket.js +79 -87
  44. package/lib/Socket/usync.js +0 -2
  45. package/lib/Store/make-in-memory-store.js +1 -1
  46. package/lib/Utils/browser-utils.js +30 -23
  47. package/lib/Utils/crypto.js +22 -18
  48. package/lib/Utils/decode-wa-message.js +12 -2
  49. package/lib/Utils/{baileys-event-stream.js → elaina-event-stream.js} +1 -1
  50. package/lib/Utils/event-buffer.js +2 -2
  51. package/lib/Utils/generics.js +36 -10
  52. package/lib/Utils/index.js +3 -1
  53. package/lib/Utils/message-retry-manager.js +48 -185
  54. package/lib/Utils/messages-media.js +127 -236
  55. package/lib/Utils/messages.js +746 -232
  56. package/lib/Utils/noise-handler.js +1 -2
  57. package/lib/Utils/process-message.js +108 -25
  58. package/lib/Utils/signal.js +1 -10
  59. package/lib/Utils/use-multi-file-auth-state.js +1 -1
  60. package/lib/Utils/validate-connection.js +3 -7
  61. package/lib/Voip/audio-feeder.js +166 -0
  62. package/lib/Voip/index.js +639 -0
  63. package/lib/Voip/relay-transport.js +829 -0
  64. package/lib/Voip/signaling.js +1102 -0
  65. package/lib/Voip/types.js +23 -0
  66. package/lib/Voip/wasm-engine.js +1255 -0
  67. package/lib/Voip/worker-bootstrap.js +1078 -0
  68. package/lib/WABinary/jid-utils.js +17 -1
  69. package/lib/assets/wasm/loader.js +5 -0
  70. package/lib/assets/wasm/whatsapp.wasm +0 -0
  71. package/lib/assets/wasm/worker-modules.js +273 -0
  72. package/lib/index.js +21 -18
  73. package/package.json +32 -18
  74. package/WAProto/AICommon.js +0 -27981
  75. package/WAProto/AICommon.proto +0 -713
  76. package/WAProto/Ephemeral.js +0 -295
  77. package/WAProto/Ephemeral.proto +0 -7
  78. package/WAProto/fix-imports.js +0 -85
  79. package/WAProto/index.d.ts +0 -14017
  80. package/WAProto/vyzen.js +0 -7
  81. package/lib/Defaults/baileys-version.json +0 -3
  82. package/lib/Defaults/index.d.ts +0 -75
  83. package/lib/Defaults/index.d.ts.map +0 -1
  84. package/lib/Defaults/index.js.map +0 -1
  85. package/lib/Signal/Group/ciphertext-message.d.ts +0 -10
  86. package/lib/Signal/Group/ciphertext-message.d.ts.map +0 -1
  87. package/lib/Signal/Group/ciphertext-message.js.map +0 -1
  88. package/lib/Signal/Group/group-session-builder.d.ts +0 -15
  89. package/lib/Signal/Group/group-session-builder.d.ts.map +0 -1
  90. package/lib/Signal/Group/group-session-builder.js.map +0 -1
  91. package/lib/Signal/Group/group_cipher.d.ts +0 -17
  92. package/lib/Signal/Group/group_cipher.d.ts.map +0 -1
  93. package/lib/Signal/Group/group_cipher.js.map +0 -1
  94. package/lib/Signal/Group/index.d.ts +0 -12
  95. package/lib/Signal/Group/index.d.ts.map +0 -1
  96. package/lib/Signal/Group/index.js.map +0 -1
  97. package/lib/Signal/Group/keyhelper.d.ts +0 -11
  98. package/lib/Signal/Group/keyhelper.d.ts.map +0 -1
  99. package/lib/Signal/Group/keyhelper.js.map +0 -1
  100. package/lib/Signal/Group/sender-chain-key.d.ts +0 -14
  101. package/lib/Signal/Group/sender-chain-key.d.ts.map +0 -1
  102. package/lib/Signal/Group/sender-chain-key.js.map +0 -1
  103. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -17
  104. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +0 -1
  105. package/lib/Signal/Group/sender-key-distribution-message.js.map +0 -1
  106. package/lib/Signal/Group/sender-key-message.d.ts +0 -19
  107. package/lib/Signal/Group/sender-key-message.d.ts.map +0 -1
  108. package/lib/Signal/Group/sender-key-message.js.map +0 -1
  109. package/lib/Signal/Group/sender-key-name.d.ts +0 -18
  110. package/lib/Signal/Group/sender-key-name.d.ts.map +0 -1
  111. package/lib/Signal/Group/sender-key-name.js.map +0 -1
  112. package/lib/Signal/Group/sender-key-record.d.ts +0 -31
  113. package/lib/Signal/Group/sender-key-record.d.ts.map +0 -1
  114. package/lib/Signal/Group/sender-key-record.js.map +0 -1
  115. package/lib/Signal/Group/sender-key-state.d.ts +0 -39
  116. package/lib/Signal/Group/sender-key-state.d.ts.map +0 -1
  117. package/lib/Signal/Group/sender-key-state.js.map +0 -1
  118. package/lib/Signal/Group/sender-message-key.d.ts +0 -12
  119. package/lib/Signal/Group/sender-message-key.d.ts.map +0 -1
  120. package/lib/Signal/Group/sender-message-key.js.map +0 -1
  121. package/lib/Signal/libsignal.d.ts +0 -5
  122. package/lib/Signal/libsignal.d.ts.map +0 -1
  123. package/lib/Signal/libsignal.js.map +0 -1
  124. package/lib/Signal/lid-mapping.d.ts +0 -23
  125. package/lib/Signal/lid-mapping.d.ts.map +0 -1
  126. package/lib/Signal/lid-mapping.js +0 -277
  127. package/lib/Signal/lid-mapping.js.map +0 -1
  128. package/lib/Socket/Client/index.d.ts +0 -3
  129. package/lib/Socket/Client/index.d.ts.map +0 -1
  130. package/lib/Socket/Client/index.js.map +0 -1
  131. package/lib/Socket/Client/types.d.ts +0 -16
  132. package/lib/Socket/Client/types.d.ts.map +0 -1
  133. package/lib/Socket/Client/types.js.map +0 -1
  134. package/lib/Socket/Client/websocket.d.ts +0 -13
  135. package/lib/Socket/Client/websocket.d.ts.map +0 -1
  136. package/lib/Socket/Client/websocket.js.map +0 -1
  137. package/lib/Socket/business.d.ts +0 -217
  138. package/lib/Socket/business.d.ts.map +0 -1
  139. package/lib/Socket/business.js.map +0 -1
  140. package/lib/Socket/chats.d.ts +0 -124
  141. package/lib/Socket/chats.d.ts.map +0 -1
  142. package/lib/Socket/chats.js.map +0 -1
  143. package/lib/Socket/communities.d.ts +0 -273
  144. package/lib/Socket/communities.d.ts.map +0 -1
  145. package/lib/Socket/communities.js +0 -431
  146. package/lib/Socket/communities.js.map +0 -1
  147. package/lib/Socket/groups.d.ts +0 -161
  148. package/lib/Socket/groups.d.ts.map +0 -1
  149. package/lib/Socket/groups.js.map +0 -1
  150. package/lib/Socket/index.d.ts +0 -260
  151. package/lib/Socket/index.d.ts.map +0 -1
  152. package/lib/Socket/index.js.map +0 -1
  153. package/lib/Socket/messages-recv.d.ts +0 -203
  154. package/lib/Socket/messages-recv.d.ts.map +0 -1
  155. package/lib/Socket/messages-recv.js.map +0 -1
  156. package/lib/Socket/messages-send.d.ts +0 -199
  157. package/lib/Socket/messages-send.d.ts.map +0 -1
  158. package/lib/Socket/messages-send.js.map +0 -1
  159. package/lib/Socket/mex.d.ts +0 -3
  160. package/lib/Socket/mex.d.ts.map +0 -1
  161. package/lib/Socket/mex.js +0 -42
  162. package/lib/Socket/mex.js.map +0 -1
  163. package/lib/Socket/newsletter.d.ts +0 -170
  164. package/lib/Socket/newsletter.d.ts.map +0 -1
  165. package/lib/Socket/newsletter.js.map +0 -1
  166. package/lib/Socket/setup.js +0 -433
  167. package/lib/Socket/socket.d.ts +0 -59
  168. package/lib/Socket/socket.d.ts.map +0 -1
  169. package/lib/Socket/socket.js.map +0 -1
  170. package/lib/Types/Auth.d.ts +0 -117
  171. package/lib/Types/Auth.d.ts.map +0 -1
  172. package/lib/Types/Auth.js.map +0 -1
  173. package/lib/Types/Bussines.d.ts +0 -25
  174. package/lib/Types/Bussines.d.ts.map +0 -1
  175. package/lib/Types/Bussines.js +0 -2
  176. package/lib/Types/Bussines.js.map +0 -1
  177. package/lib/Types/Call.d.ts +0 -15
  178. package/lib/Types/Call.d.ts.map +0 -1
  179. package/lib/Types/Call.js.map +0 -1
  180. package/lib/Types/Chat.d.ts +0 -124
  181. package/lib/Types/Chat.d.ts.map +0 -1
  182. package/lib/Types/Chat.js.map +0 -1
  183. package/lib/Types/Contact.d.ts +0 -26
  184. package/lib/Types/Contact.d.ts.map +0 -1
  185. package/lib/Types/Contact.js.map +0 -1
  186. package/lib/Types/Events.d.ts +0 -256
  187. package/lib/Types/Events.d.ts.map +0 -1
  188. package/lib/Types/Events.js.map +0 -1
  189. package/lib/Types/GroupMetadata.d.ts +0 -71
  190. package/lib/Types/GroupMetadata.d.ts.map +0 -1
  191. package/lib/Types/GroupMetadata.js.map +0 -1
  192. package/lib/Types/Label.d.ts +0 -47
  193. package/lib/Types/Label.d.ts.map +0 -1
  194. package/lib/Types/Label.js.map +0 -1
  195. package/lib/Types/LabelAssociation.d.ts +0 -30
  196. package/lib/Types/LabelAssociation.d.ts.map +0 -1
  197. package/lib/Types/LabelAssociation.js.map +0 -1
  198. package/lib/Types/Message.d.ts +0 -320
  199. package/lib/Types/Message.d.ts.map +0 -1
  200. package/lib/Types/Message.js.map +0 -1
  201. package/lib/Types/Mex.d.ts +0 -141
  202. package/lib/Types/Mex.d.ts.map +0 -1
  203. package/lib/Types/Mex.js +0 -37
  204. package/lib/Types/Mex.js.map +0 -1
  205. package/lib/Types/Product.d.ts +0 -79
  206. package/lib/Types/Product.d.ts.map +0 -1
  207. package/lib/Types/Product.js.map +0 -1
  208. package/lib/Types/RichType.d.ts +0 -3
  209. package/lib/Types/RichType.d.ts.map +0 -1
  210. package/lib/Types/RichType.js +0 -31
  211. package/lib/Types/Signal.d.ts +0 -87
  212. package/lib/Types/Signal.d.ts.map +0 -1
  213. package/lib/Types/Signal.js.map +0 -1
  214. package/lib/Types/Socket.d.ts +0 -136
  215. package/lib/Types/Socket.d.ts.map +0 -1
  216. package/lib/Types/Socket.js.map +0 -1
  217. package/lib/Types/State.d.ts +0 -97
  218. package/lib/Types/State.d.ts.map +0 -1
  219. package/lib/Types/State.js.map +0 -1
  220. package/lib/Types/USync.d.ts +0 -26
  221. package/lib/Types/USync.d.ts.map +0 -1
  222. package/lib/Types/USync.js.map +0 -1
  223. package/lib/Types/index.d.ts +0 -65
  224. package/lib/Types/index.d.ts.map +0 -1
  225. package/lib/Types/index.js.map +0 -1
  226. package/lib/Utils/Tiktok.js +0 -80
  227. package/lib/Utils/auth-utils.d.ts +0 -24
  228. package/lib/Utils/auth-utils.d.ts.map +0 -1
  229. package/lib/Utils/auth-utils.js.map +0 -1
  230. package/lib/Utils/browser-utils.d.ts +0 -4
  231. package/lib/Utils/browser-utils.d.ts.map +0 -1
  232. package/lib/Utils/browser-utils.js.map +0 -1
  233. package/lib/Utils/business.d.ts +0 -23
  234. package/lib/Utils/business.d.ts.map +0 -1
  235. package/lib/Utils/business.js.map +0 -1
  236. package/lib/Utils/chaanel/vyzen.js +0 -0
  237. package/lib/Utils/chat-utils.d.ts +0 -100
  238. package/lib/Utils/chat-utils.d.ts.map +0 -1
  239. package/lib/Utils/chat-utils.js.map +0 -1
  240. package/lib/Utils/companion-reg-client-utils.d.ts +0 -17
  241. package/lib/Utils/companion-reg-client-utils.d.ts.map +0 -1
  242. package/lib/Utils/companion-reg-client-utils.js +0 -35
  243. package/lib/Utils/companion-reg-client-utils.js.map +0 -1
  244. package/lib/Utils/crypto.d.ts +0 -37
  245. package/lib/Utils/crypto.d.ts.map +0 -1
  246. package/lib/Utils/crypto.js.map +0 -1
  247. package/lib/Utils/decode-wa-message.d.ts +0 -66
  248. package/lib/Utils/decode-wa-message.d.ts.map +0 -1
  249. package/lib/Utils/decode-wa-message.js.map +0 -1
  250. package/lib/Utils/event-buffer.d.ts +0 -36
  251. package/lib/Utils/event-buffer.d.ts.map +0 -1
  252. package/lib/Utils/event-buffer.js.map +0 -1
  253. package/lib/Utils/facebook.js +0 -48
  254. package/lib/Utils/generics.d.ts +0 -91
  255. package/lib/Utils/generics.d.ts.map +0 -1
  256. package/lib/Utils/generics.js.map +0 -1
  257. package/lib/Utils/history.d.ts +0 -24
  258. package/lib/Utils/history.d.ts.map +0 -1
  259. package/lib/Utils/history.js.map +0 -1
  260. package/lib/Utils/identity-change-handler.d.ts +0 -44
  261. package/lib/Utils/identity-change-handler.d.ts.map +0 -1
  262. package/lib/Utils/identity-change-handler.js +0 -50
  263. package/lib/Utils/identity-change-handler.js.map +0 -1
  264. package/lib/Utils/index.d.ts +0 -22
  265. package/lib/Utils/index.d.ts.map +0 -1
  266. package/lib/Utils/index.js.map +0 -1
  267. package/lib/Utils/instagram.js +0 -50
  268. package/lib/Utils/link-preview.d.ts +0 -21
  269. package/lib/Utils/link-preview.d.ts.map +0 -1
  270. package/lib/Utils/link-preview.js.map +0 -1
  271. package/lib/Utils/logger.d.ts +0 -12
  272. package/lib/Utils/logger.d.ts.map +0 -1
  273. package/lib/Utils/logger.js.map +0 -1
  274. package/lib/Utils/lt-hash.d.ts +0 -8
  275. package/lib/Utils/lt-hash.d.ts.map +0 -1
  276. package/lib/Utils/lt-hash.js.map +0 -1
  277. package/lib/Utils/make-mutex.d.ts +0 -9
  278. package/lib/Utils/make-mutex.d.ts.map +0 -1
  279. package/lib/Utils/make-mutex.js.map +0 -1
  280. package/lib/Utils/message-retry-manager.d.ts +0 -115
  281. package/lib/Utils/message-retry-manager.d.ts.map +0 -1
  282. package/lib/Utils/message-retry-manager.js.map +0 -1
  283. package/lib/Utils/messages-media.d.ts +0 -133
  284. package/lib/Utils/messages-media.d.ts.map +0 -1
  285. package/lib/Utils/messages-media.js.map +0 -1
  286. package/lib/Utils/messages.d.ts +0 -91
  287. package/lib/Utils/messages.d.ts.map +0 -1
  288. package/lib/Utils/messages.js.map +0 -1
  289. package/lib/Utils/noise-handler.d.ts +0 -20
  290. package/lib/Utils/noise-handler.d.ts.map +0 -1
  291. package/lib/Utils/noise-handler.js.map +0 -1
  292. package/lib/Utils/offline-node-processor.d.ts +0 -17
  293. package/lib/Utils/offline-node-processor.d.ts.map +0 -1
  294. package/lib/Utils/offline-node-processor.js +0 -40
  295. package/lib/Utils/offline-node-processor.js.map +0 -1
  296. package/lib/Utils/pre-key-manager.d.ts +0 -28
  297. package/lib/Utils/pre-key-manager.d.ts.map +0 -1
  298. package/lib/Utils/pre-key-manager.js +0 -106
  299. package/lib/Utils/pre-key-manager.js.map +0 -1
  300. package/lib/Utils/process-message.d.ts +0 -60
  301. package/lib/Utils/process-message.d.ts.map +0 -1
  302. package/lib/Utils/process-message.js.map +0 -1
  303. package/lib/Utils/reporting-utils.d.ts +0 -11
  304. package/lib/Utils/reporting-utils.d.ts.map +0 -1
  305. package/lib/Utils/reporting-utils.js +0 -258
  306. package/lib/Utils/reporting-utils.js.map +0 -1
  307. package/lib/Utils/rich-message-utils.js +0 -387
  308. package/lib/Utils/signal.d.ts +0 -47
  309. package/lib/Utils/signal.d.ts.map +0 -1
  310. package/lib/Utils/signal.js.map +0 -1
  311. package/lib/Utils/stanza-ack.d.ts +0 -11
  312. package/lib/Utils/stanza-ack.d.ts.map +0 -1
  313. package/lib/Utils/stanza-ack.js +0 -38
  314. package/lib/Utils/stanza-ack.js.map +0 -1
  315. package/lib/Utils/sync-action-utils.d.ts +0 -19
  316. package/lib/Utils/sync-action-utils.d.ts.map +0 -1
  317. package/lib/Utils/sync-action-utils.js +0 -49
  318. package/lib/Utils/sync-action-utils.js.map +0 -1
  319. package/lib/Utils/tc-token-utils.d.ts +0 -37
  320. package/lib/Utils/tc-token-utils.d.ts.map +0 -1
  321. package/lib/Utils/tc-token-utils.js +0 -163
  322. package/lib/Utils/tc-token-utils.js.map +0 -1
  323. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
  324. package/lib/Utils/use-multi-file-auth-state.d.ts.map +0 -1
  325. package/lib/Utils/use-multi-file-auth-state.js.map +0 -1
  326. package/lib/Utils/validate-connection.d.ts +0 -11
  327. package/lib/Utils/validate-connection.d.ts.map +0 -1
  328. package/lib/Utils/validate-connection.js.map +0 -1
  329. package/lib/Utils/youtube.js +0 -44
  330. package/lib/WABinary/constants.d.ts +0 -28
  331. package/lib/WABinary/constants.d.ts.map +0 -1
  332. package/lib/WABinary/constants.js.map +0 -1
  333. package/lib/WABinary/decode.d.ts +0 -7
  334. package/lib/WABinary/decode.d.ts.map +0 -1
  335. package/lib/WABinary/decode.js.map +0 -1
  336. package/lib/WABinary/encode.d.ts +0 -3
  337. package/lib/WABinary/encode.d.ts.map +0 -1
  338. package/lib/WABinary/encode.js.map +0 -1
  339. package/lib/WABinary/generic-utils.d.ts +0 -15
  340. package/lib/WABinary/generic-utils.d.ts.map +0 -1
  341. package/lib/WABinary/generic-utils.js.map +0 -1
  342. package/lib/WABinary/index.d.ts +0 -6
  343. package/lib/WABinary/index.d.ts.map +0 -1
  344. package/lib/WABinary/index.js.map +0 -1
  345. package/lib/WABinary/jid-utils.d.ts +0 -48
  346. package/lib/WABinary/jid-utils.d.ts.map +0 -1
  347. package/lib/WABinary/jid-utils.js.map +0 -1
  348. package/lib/WABinary/types.d.ts +0 -19
  349. package/lib/WABinary/types.d.ts.map +0 -1
  350. package/lib/WABinary/types.js.map +0 -1
  351. package/lib/WAM/BinaryInfo.d.ts +0 -9
  352. package/lib/WAM/BinaryInfo.d.ts.map +0 -1
  353. package/lib/WAM/BinaryInfo.js.map +0 -1
  354. package/lib/WAM/constants.d.ts +0 -40
  355. package/lib/WAM/constants.d.ts.map +0 -1
  356. package/lib/WAM/constants.js.map +0 -1
  357. package/lib/WAM/encode.d.ts +0 -3
  358. package/lib/WAM/encode.d.ts.map +0 -1
  359. package/lib/WAM/encode.js.map +0 -1
  360. package/lib/WAM/index.d.ts +0 -4
  361. package/lib/WAM/index.d.ts.map +0 -1
  362. package/lib/WAM/index.js.map +0 -1
  363. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -10
  364. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +0 -1
  365. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +0 -1
  366. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -23
  367. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +0 -1
  368. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +0 -1
  369. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -13
  370. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +0 -1
  371. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +0 -1
  372. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -13
  373. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +0 -1
  374. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +0 -1
  375. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +0 -10
  376. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +0 -1
  377. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +0 -25
  378. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +0 -1
  379. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -26
  380. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +0 -1
  381. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +0 -1
  382. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -10
  383. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +0 -1
  384. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +0 -1
  385. package/lib/WAUSync/Protocols/index.d.ts +0 -6
  386. package/lib/WAUSync/Protocols/index.d.ts.map +0 -1
  387. package/lib/WAUSync/Protocols/index.js.map +0 -1
  388. package/lib/WAUSync/USyncQuery.d.ts +0 -30
  389. package/lib/WAUSync/USyncQuery.d.ts.map +0 -1
  390. package/lib/WAUSync/USyncQuery.js.map +0 -1
  391. package/lib/WAUSync/USyncUser.d.ts +0 -17
  392. package/lib/WAUSync/USyncUser.d.ts.map +0 -1
  393. package/lib/WAUSync/USyncUser.js.map +0 -1
  394. package/lib/WAUSync/index.d.ts +0 -4
  395. package/lib/WAUSync/index.d.ts.map +0 -1
  396. package/lib/WAUSync/index.js.map +0 -1
  397. package/lib/index.d.ts +0 -12
  398. package/lib/index.d.ts.map +0 -1
  399. package/lib/index.js.map +0 -1
@@ -11,11 +11,6 @@ class WebSocketClient extends types_1.AbstractSocketClient {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.socket = null;
14
- // queue & dispatch variables for throttling outgoing messages to avoid rate limits
15
- this._queue = [];
16
- this._isDispatching = false;
17
- this._lastDispatch = 0;
18
- this._minSendIntervalMs = (Defaults_1.DEFAULT_CONNECTION_CONFIG && Defaults_1.DEFAULT_CONNECTION_CONFIG.minSendIntervalMs) || 50;
19
14
  }
20
15
  get isOpen() {
21
16
  var _a;
@@ -69,43 +64,9 @@ class WebSocketClient extends types_1.AbstractSocketClient {
69
64
  await this.connect();
70
65
  }
71
66
  send(str, cb) {
72
- // throttle sends to reduce rate-limit likelihood
73
- const doSend = () => {
74
- var _a;
75
- (_a = this.socket) === null || _a === void 0 ? void 0 : _a.send(str, cb);
76
- return Boolean(this.socket);
77
- };
78
- this._queue.push(doSend);
79
- this._dispatch();
67
+ var _a;
68
+ (_a = this.socket) === null || _a === void 0 ? void 0 : _a.send(str, cb);
80
69
  return true;
81
70
  }
82
-
83
- _dispatch() {
84
- if (this._isDispatching) {
85
- return;
86
- }
87
- this._isDispatching = true;
88
- const tick = () => {
89
- const now = Date.now();
90
- if (this._queue.length === 0) {
91
- this._isDispatching = false;
92
- return;
93
- }
94
- const delta = now - this._lastDispatch;
95
- const wait = Math.max(0, this._minSendIntervalMs - delta);
96
- setTimeout(() => {
97
- const fn = this._queue.shift();
98
- this._lastDispatch = Date.now();
99
- try {
100
- fn && fn();
101
- }
102
- catch (_err) {
103
- // ignore send errors here; they'll surface elsewhere
104
- }
105
- tick();
106
- }, wait);
107
- };
108
- tick();
109
- }
110
71
  }
111
72
  exports.WebSocketClient = WebSocketClient;
@@ -0,0 +1,533 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+
5
+ const WAProto = require("../../WAProto").proto;
6
+ const crypto = require("crypto");
7
+ const Utils_1 = require("../Utils");
8
+
9
+ class RexxHayanasi {
10
+ constructor(utils, waUploadToServer, relayMessageFn) {
11
+ this.utils = utils;
12
+ this.relayMessage = relayMessageFn;
13
+ this.waUploadToServer = waUploadToServer;
14
+ this.bail = {
15
+ generateWAMessageContent: this.utils.generateWAMessageContent || Utils_1.generateWAMessageContent,
16
+ generateMessageID: Utils_1.generateMessageID,
17
+ getContentType: (msg) => {
18
+ if (!msg || typeof msg !== "object") return null;
19
+ const m = msg.message || {};
20
+ if (typeof m !== "object") return null;
21
+ return Object.keys(m)[0] || null;
22
+ }
23
+ };
24
+
25
+ this.handlers = {
26
+ PAYMENT: this.handlePayment.bind(this),
27
+ PRODUCT: this.handleProduct.bind(this),
28
+ INTERACTIVE: this.handleInteractive.bind(this),
29
+ ALBUM: this.handleAlbum.bind(this),
30
+ EVENT: this.handleEvent.bind(this),
31
+ POLL_RESULT: this.handlePollResult.bind(this),
32
+ GROUP_STORY: this.handleGroupStory.bind(this),
33
+ STICKER_PACK: this.handleStickerPack.bind(this)
34
+ };
35
+ }
36
+
37
+ detectType(content) {
38
+ if (content.requestPaymentMessage) return "PAYMENT";
39
+ if (content.productMessage) return "PRODUCT";
40
+ if (content.interactiveMessage) return "INTERACTIVE";
41
+ if (content.albumMessage) return "ALBUM";
42
+ if (content.eventMessage) return "EVENT";
43
+ if (content.pollResultMessage) return "POLL_RESULT";
44
+ if (content.groupStatusMessage) return "GROUP_STORY";
45
+ if (content.stickerPack) return "STICKER_PACK";
46
+ return null;
47
+ }
48
+
49
+ async processMessage(content, jid, quoted) {
50
+ const type = this.detectType(content);
51
+ if (!type) {
52
+ throw new Error("Unknown message type");
53
+ }
54
+
55
+ const handler = this.handlers[type];
56
+ if (!handler) {
57
+ throw new Error(`No handler for ${type}`);
58
+ }
59
+
60
+ const result = await handler(content, jid, quoted);
61
+
62
+ if (result && typeof result === "object" && !result.key && !result.message) {
63
+ const msg = await this.utils.generateWAMessageFromContent(
64
+ jid,
65
+ result,
66
+ { quoted, upload: this.waUploadToServer }
67
+ );
68
+
69
+ await this.relayMessage(jid, msg.message, {
70
+ messageId: msg.key.id
71
+ });
72
+
73
+ return msg;
74
+ }
75
+
76
+ return result;
77
+ }
78
+
79
+ async handleStickerPack(stickerPack, jid, quoted) {
80
+ const result = await this.utils.prepareStickerPackMessage(stickerPack, {
81
+ logger: this.utils?.logger,
82
+ upload: this.waUploadToServer,
83
+ options: this.utils?.options || {},
84
+ mediaUploadTimeoutMs: this.utils?.mediaUploadTimeoutMs
85
+ });
86
+
87
+ if (result.isBatched) {
88
+ let lastMsg;
89
+ for (let i = 0; i < result.stickerPackMessage.length; i++) {
90
+ const msg = await this.utils.generateWAMessageFromContent(
91
+ jid,
92
+ { stickerPackMessage: result.stickerPackMessage[i] },
93
+ { quoted, upload: this.waUploadToServer }
94
+ );
95
+
96
+ await this.relayMessage(jid, msg.message, {
97
+ messageId: msg.key.id
98
+ });
99
+
100
+ lastMsg = msg;
101
+
102
+ if (i < result.stickerPackMessage.length - 1) {
103
+ await new Promise(r => setTimeout(r, 2000));
104
+ }
105
+ }
106
+ return lastMsg;
107
+ }
108
+
109
+ const msg = await this.utils.generateWAMessageFromContent(
110
+ jid,
111
+ { stickerPackMessage: result.stickerPackMessage },
112
+ { quoted, upload: this.waUploadToServer }
113
+ );
114
+
115
+ await this.relayMessage(jid, msg.message, {
116
+ messageId: msg.key.id
117
+ });
118
+
119
+ return msg;
120
+ }
121
+
122
+ async handlePayment(content, quoted) {
123
+ const data = content?.requestPaymentMessage;
124
+ if (!data) throw new Error("Missing requestPaymentMessage in content");
125
+ try {
126
+ let notes = {};
127
+ if (data.sticker?.stickerMessage) {
128
+ notes = {
129
+ stickerMessage: {
130
+ ...data.sticker.stickerMessage,
131
+ contextInfo: {
132
+ stanzaId: quoted?.key?.id,
133
+ participant: quoted?.key?.participant || content.sender,
134
+ quotedMessage: quoted?.message
135
+ }
136
+ }
137
+ };
138
+ } else if (data.note) {
139
+ notes = {
140
+ extendedTextMessage: {
141
+ text: data.note,
142
+ contextInfo: {
143
+ stanzaId: quoted?.key?.id,
144
+ participant: quoted?.key?.participant || content.sender,
145
+ quotedMessage: quoted?.message
146
+ }
147
+ }
148
+ };
149
+ }
150
+ return {
151
+ requestPaymentMessage: WAProto.Message.RequestPaymentMessage.fromObject({
152
+ expiryTimestamp: data.expiry || 0,
153
+ amount1000: data.amount || 0,
154
+ currencyCodeIso4217: data.currency || "IDR",
155
+ requestFrom: data.from || "0@s.whatsapp.net",
156
+ noteMessage: notes,
157
+ background: data.background ?? {
158
+ id: "DEFAULT",
159
+ placeholderArgb: 0xfff0f0f0
160
+ }
161
+ })
162
+ };
163
+ } catch (err) {
164
+ console.error("handlePayment error:", err);
165
+ throw err;
166
+ }
167
+ }
168
+
169
+ async handleProduct(content, jid, quoted) {
170
+ try {
171
+ const {
172
+ title = "",
173
+ description = "",
174
+ thumbnail,
175
+ productId,
176
+ retailerId,
177
+ url,
178
+ body = "",
179
+ footer = "",
180
+ buttons = [],
181
+ priceAmount1000 = null,
182
+ currencyCode = "IDR"
183
+ } = content.productMessage || {};
184
+ let productImage = null;
185
+ if (thumbnail) {
186
+ try {
187
+ if (Buffer.isBuffer(thumbnail)) {
188
+ const res = await this.utils.generateWAMessageContent({ image: thumbnail }, { upload: this.waUploadToServer });
189
+ productImage = res?.imageMessage || res?.message?.imageMessage || null;
190
+ } else if (typeof thumbnail === "object" && thumbnail.url) {
191
+ const res = await this.utils.generateWAMessageContent({ image: { url: thumbnail.url } }, { upload: this.waUploadToServer });
192
+ productImage = res?.imageMessage || res?.message?.imageMessage || null;
193
+ }
194
+ } catch {}
195
+ }
196
+ const product = {
197
+ productId,
198
+ title,
199
+ description,
200
+ currencyCode,
201
+ priceAmount1000,
202
+ retailerId,
203
+ url,
204
+ productImageCount: productImage ? 1 : 0
205
+ };
206
+ if (productImage) product.productImage = productImage;
207
+ return {
208
+ viewOnceMessage: {
209
+ message: {
210
+ interactiveMessage: {
211
+ body: { text: body },
212
+ footer: { text: footer },
213
+ header: {
214
+ title,
215
+ hasMediaAttachment: !!productImage,
216
+ productMessage: {
217
+ product,
218
+ businessOwnerJid: "0@s.whatsapp.net"
219
+ }
220
+ },
221
+ nativeFlowMessage: { buttons }
222
+ }
223
+ }
224
+ }
225
+ };
226
+ } catch (err) {
227
+ console.error("handleProduct error:", err);
228
+ throw err;
229
+ }
230
+ }
231
+
232
+ async handleInteractive(content, jid, quoted) {
233
+ try {
234
+ const {
235
+ title,
236
+ footer,
237
+ thumbnail,
238
+ image,
239
+ video,
240
+ document,
241
+ mimetype,
242
+ fileName,
243
+ jpegThumbnail,
244
+ contextInfo,
245
+ externalAdReply,
246
+ buttons = [],
247
+ nativeFlowMessage,
248
+ header
249
+ } = content.interactiveMessage || {};
250
+ let media = null;
251
+ if (thumbnail) {
252
+ media = await this.utils.prepareWAMessageMedia({ image: { url: thumbnail } }, { upload: this.waUploadToServer });
253
+ } else if (image) {
254
+ media = await this.utils.prepareWAMessageMedia(
255
+ typeof image === "object" && image.url ? { image: { url: image.url } } : { image },
256
+ { upload: this.waUploadToServer }
257
+ );
258
+ } else if (video) {
259
+ media = await this.utils.prepareWAMessageMedia(
260
+ typeof video === "object" && video.url ? { video: { url: video.url } } : { video },
261
+ { upload: this.waUploadToServer }
262
+ );
263
+ } else if (document) {
264
+ const docPayload = { document };
265
+ if (jpegThumbnail) {
266
+ docPayload.jpegThumbnail = typeof jpegThumbnail === "object" && jpegThumbnail.url ? { url: jpegThumbnail.url } : jpegThumbnail;
267
+ }
268
+ media = await this.utils.prepareWAMessageMedia(docPayload, { upload: this.waUploadToServer });
269
+ if (fileName) media.documentMessage.fileName = fileName;
270
+ if (mimetype) media.documentMessage.mimetype = mimetype;
271
+ }
272
+ const interactiveMessage = {
273
+ body: { text: title || "" },
274
+ footer: { text: footer || "" }
275
+ };
276
+ if (buttons.length > 0) {
277
+ interactiveMessage.nativeFlowMessage = { buttons };
278
+ if (nativeFlowMessage) Object.assign(interactiveMessage.nativeFlowMessage, nativeFlowMessage);
279
+ } else if (nativeFlowMessage) {
280
+ interactiveMessage.nativeFlowMessage = nativeFlowMessage;
281
+ }
282
+ if (media) {
283
+ const headerMedia = {};
284
+ if (media.imageMessage) headerMedia.imageMessage = media.imageMessage;
285
+ if (media.videoMessage) headerMedia.videoMessage = media.videoMessage;
286
+ if (media.documentMessage) headerMedia.documentMessage = media.documentMessage;
287
+ interactiveMessage.header = { title: header || "", hasMediaAttachment: true, ...headerMedia };
288
+ } else {
289
+ interactiveMessage.header = { title: header || "", hasMediaAttachment: false };
290
+ }
291
+ let finalContextInfo = {};
292
+ if (contextInfo) {
293
+ finalContextInfo = {
294
+ mentionedJid: contextInfo.mentionedJid || [],
295
+ forwardingScore: contextInfo.forwardingScore || 0,
296
+ isForwarded: contextInfo.isForwarded || false,
297
+ ...contextInfo
298
+ };
299
+ }
300
+ if (externalAdReply) {
301
+ finalContextInfo.externalAdReply = {
302
+ title: externalAdReply.title || "",
303
+ body: externalAdReply.body || "",
304
+ mediaType: externalAdReply.mediaType || 1,
305
+ thumbnailUrl: externalAdReply.thumbnailUrl || "",
306
+ mediaUrl: externalAdReply.mediaUrl || "",
307
+ sourceUrl: externalAdReply.sourceUrl || "",
308
+ showAdAttribution: externalAdReply.showAdAttribution || false,
309
+ renderLargerThumbnail: externalAdReply.renderLargerThumbnail || false,
310
+ ...externalAdReply
311
+ };
312
+ }
313
+ if (Object.keys(finalContextInfo).length > 0) {
314
+ interactiveMessage.contextInfo = finalContextInfo;
315
+ }
316
+ return { interactiveMessage };
317
+ } catch (err) {
318
+ console.error("handleInteractive error:", err);
319
+ throw err;
320
+ }
321
+ }
322
+
323
+ async handleAlbum(content, jid, quoted) {
324
+ try {
325
+ const array = Array.isArray(content.albumMessage) ? content.albumMessage : [];
326
+ if (array.length === 0) throw new Error("albumMessage harus berupa array dengan isi media");
327
+ const album = await this.utils.generateWAMessageFromContent(
328
+ jid,
329
+ {
330
+ messageContextInfo: { messageSecret: crypto.randomBytes(32) },
331
+ albumMessage: {
332
+ expectedImageCount: array.filter((a) => a.image).length,
333
+ expectedVideoCount: array.filter((a) => a.video).length
334
+ }
335
+ },
336
+ {
337
+ userJid: this.utils.generateMessageID().split("@")[0] + "@s.whatsapp.net",
338
+ quoted,
339
+ upload: this.waUploadToServer
340
+ }
341
+ );
342
+ await this.relayMessage(jid, album.message, { messageId: album.key.id });
343
+ for (const item of array) {
344
+ const img = await this.utils.generateWAMessage(jid, item, { upload: this.waUploadToServer });
345
+ img.message.messageContextInfo = {
346
+ messageSecret: crypto.randomBytes(32),
347
+ messageAssociation: {
348
+ associationType: 1,
349
+ parentMessageKey: album.key
350
+ },
351
+ participant: "0@s.whatsapp.net",
352
+ remoteJid: "status@broadcast",
353
+ forwardingScore: 99999,
354
+ isForwarded: true,
355
+ mentionedJid: [jid],
356
+ starred: true,
357
+ labels: ["Y", "Important"],
358
+ isHighlighted: true,
359
+ businessMessageForwardInfo: { businessOwnerJid: jid },
360
+ dataSharingContext: { showMmDisclosure: true }
361
+ };
362
+ img.message.forwardedNewsletterMessageInfo = {
363
+ newsletterJid: "0@newsletter",
364
+ serverMessageId: 1,
365
+ newsletterName: "WhatsApp",
366
+ contentType: 1,
367
+ timestamp: new Date().toISOString(),
368
+ senderName: "kikyy dugonggg",
369
+ content: "Text Message",
370
+ priority: "high",
371
+ status: "sent"
372
+ };
373
+ img.message.disappearingMode = {
374
+ initiator: 3,
375
+ trigger: 4,
376
+ initiatorDeviceJid: jid,
377
+ initiatedByExternalService: true,
378
+ initiatedByUserDevice: true,
379
+ initiatedBySystem: true,
380
+ initiatedByServer: true,
381
+ initiatedByAdmin: true,
382
+ initiatedByUser: true,
383
+ initiatedByApp: true,
384
+ initiatedByBot: true,
385
+ initiatedByMe: true
386
+ };
387
+ await this.relayMessage(jid, img.message, {
388
+ messageId: img.key.id,
389
+ quoted: {
390
+ key: {
391
+ remoteJid: album.key.remoteJid,
392
+ id: album.key.id,
393
+ fromMe: true,
394
+ participant: this.utils.generateMessageID().split("@")[0] + "@s.whatsapp.net"
395
+ },
396
+ message: album.message
397
+ }
398
+ });
399
+ }
400
+ return album;
401
+ } catch (err) {
402
+ console.error("handleAlbum error:", err);
403
+ throw err;
404
+ }
405
+ }
406
+
407
+ async handleEvent(content, jid, quoted) {
408
+ try {
409
+ const eventData = content.eventMessage;
410
+ if (!eventData) throw new Error("Missing eventMessage");
411
+ const msg = await this.utils.generateWAMessageFromContent(
412
+ jid,
413
+ {
414
+ viewOnceMessage: {
415
+ message: {
416
+ messageContextInfo: {
417
+ deviceListMetadata: {},
418
+ deviceListMetadataVersion: 2,
419
+ messageSecret: crypto.randomBytes(32),
420
+ supportPayload: JSON.stringify({
421
+ version: 2,
422
+ is_ai_message: true,
423
+ should_show_system_message: true,
424
+ ticket_id: crypto.randomBytes(16).toString("hex")
425
+ })
426
+ },
427
+ eventMessage: {
428
+ contextInfo: {
429
+ mentionedJid: [jid],
430
+ participant: jid,
431
+ remoteJid: "status@broadcast",
432
+ forwardedNewsletterMessageInfo: {
433
+ newsletterName: "@rexxhayanasi/elaina-baileys",
434
+ newsletterJid: "120363407037697487@newsletter",
435
+ serverMessageId: 1
436
+ }
437
+ },
438
+ isCanceled: eventData.isCanceled || false,
439
+ name: eventData.name,
440
+ description: eventData.description,
441
+ location: eventData.location || {
442
+ degreesLatitude: 0,
443
+ degreesLongitude: 0,
444
+ name: "Location"
445
+ },
446
+ joinLink: eventData.joinLink || "",
447
+ startTime: typeof eventData.startTime === "string" ? parseInt(eventData.startTime) : eventData.startTime || Date.now(),
448
+ endTime: typeof eventData.endTime === "string" ? parseInt(eventData.endTime) : eventData.endTime || Date.now() + 3600000,
449
+ extraGuestsAllowed: eventData.extraGuestsAllowed !== false
450
+ }
451
+ }
452
+ }
453
+ },
454
+ { quoted }
455
+ );
456
+ await this.relayMessage(jid, msg.message, { messageId: msg.key.id });
457
+ return msg;
458
+ } catch (err) {
459
+ console.error("handleEvent error:", err);
460
+ throw err;
461
+ }
462
+ }
463
+
464
+ async handlePollResult(content, jid, quoted) {
465
+ try {
466
+ const pollData = content.pollResultMessage;
467
+ if (!pollData) throw new Error("Missing pollResultMessage");
468
+ const msg = await this.utils.generateWAMessageFromContent(
469
+ jid,
470
+ {
471
+ pollResultSnapshotMessage: {
472
+ name: pollData.name,
473
+ pollVotes: (pollData.pollVotes || []).map((v) => ({
474
+ optionName: v.optionName,
475
+ optionVoteCount: typeof v.optionVoteCount === "number" ? v.optionVoteCount.toString() : v.optionVoteCount
476
+ }))
477
+ }
478
+ },
479
+ {
480
+ userJid: this.utils.generateMessageID().split("@")[0] + "@s.whatsapp.net",
481
+ quoted
482
+ }
483
+ );
484
+ await this.relayMessage(jid, msg.message, { messageId: msg.key.id });
485
+ return msg;
486
+ } catch (err) {
487
+ console.error("handlePollResult error:", err);
488
+ throw err;
489
+ }
490
+ }
491
+
492
+ async handleGroupStory(content, jid, quoted) {
493
+ try {
494
+ const storyData = content.groupStatusMessage;
495
+ if (!storyData) throw new Error("Missing groupStatusMessage");
496
+ let waMsgContent;
497
+ if (storyData.message) {
498
+ waMsgContent = storyData;
499
+ } else if (typeof this.bail?.generateWAMessageContent === "function") {
500
+ waMsgContent = await this.bail.generateWAMessageContent(storyData, {
501
+ upload: this.waUploadToServer
502
+ });
503
+ } else if (typeof this.utils?.generateWAMessageContent === "function") {
504
+ waMsgContent = await this.utils.generateWAMessageContent(storyData, {
505
+ upload: this.waUploadToServer
506
+ });
507
+ } else if (typeof this.utils?.prepareMessageContent === "function") {
508
+ waMsgContent = await this.utils.prepareMessageContent(storyData, {
509
+ upload: this.waUploadToServer
510
+ });
511
+ } else {
512
+ waMsgContent = await Utils_1.generateWAMessageContent(storyData, {
513
+ upload: this.waUploadToServer
514
+ });
515
+ }
516
+ const msg = {
517
+ message: {
518
+ groupStatusMessageV2: {
519
+ message: waMsgContent.message || waMsgContent
520
+ }
521
+ }
522
+ };
523
+ return await this.relayMessage(jid, msg.message, {
524
+ messageId: this.bail.generateMessageID()
525
+ });
526
+ } catch (err) {
527
+ console.error("handleGroupStory error:", err);
528
+ throw err;
529
+ }
530
+ }
531
+ }
532
+
533
+ module.exports = RexxHayanasi;