@ubedsockets/baileys 1.7.3 → 1.7.6

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 (375) hide show
  1. package/WAProto/AICommon.js +27981 -0
  2. package/WAProto/AICommon.proto +713 -0
  3. package/WAProto/Ephemeral.js +295 -0
  4. package/WAProto/Ephemeral.proto +7 -0
  5. package/WAProto/GenerateStatics.sh +59 -16
  6. package/WAProto/WAProto.proto +44 -0
  7. package/WAProto/fix-imports.js +85 -0
  8. package/WAProto/index.d.ts +14017 -0
  9. package/WAProto/index.js +155308 -82430
  10. package/WAProto/vyzen.js +7 -0
  11. package/lib/Defaults/baileys-version.json +1 -0
  12. package/lib/Defaults/index.d.ts +75 -0
  13. package/lib/Defaults/index.d.ts.map +1 -0
  14. package/lib/Defaults/index.js +3 -28
  15. package/lib/Defaults/index.js.map +1 -0
  16. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  17. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  18. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  19. package/lib/Signal/Group/group-session-builder.d.ts +15 -0
  20. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  21. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  22. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  23. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  24. package/lib/Signal/Group/group_cipher.js +1 -1
  25. package/lib/Signal/Group/group_cipher.js.map +1 -0
  26. package/lib/Signal/Group/index.d.ts +12 -0
  27. package/lib/Signal/Group/index.d.ts.map +1 -0
  28. package/lib/Signal/Group/index.js.map +1 -0
  29. package/lib/Signal/Group/keyhelper.d.ts +11 -0
  30. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  31. package/lib/Signal/Group/keyhelper.js +34 -8
  32. package/lib/Signal/Group/keyhelper.js.map +1 -0
  33. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  34. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  35. package/lib/Signal/Group/sender-chain-key.js +1 -1
  36. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  37. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  38. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  39. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  40. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  41. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  42. package/lib/Signal/Group/sender-key-message.js +1 -1
  43. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  44. package/lib/Signal/Group/sender-key-name.d.ts +18 -0
  45. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  46. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  47. package/lib/Signal/Group/sender-key-record.d.ts +31 -0
  48. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  49. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  50. package/lib/Signal/Group/sender-key-state.d.ts +39 -0
  51. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  52. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  53. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  54. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  55. package/lib/Signal/Group/sender-message-key.js +1 -1
  56. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  57. package/lib/Signal/libsignal.d.ts +5 -0
  58. package/lib/Signal/libsignal.d.ts.map +1 -0
  59. package/lib/Signal/libsignal.js +1 -1
  60. package/lib/Signal/libsignal.js.map +1 -0
  61. package/lib/Signal/lid-mapping.d.ts +23 -0
  62. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  63. package/lib/Signal/lid-mapping.js +277 -0
  64. package/lib/Signal/lid-mapping.js.map +1 -0
  65. package/lib/Socket/Client/index.d.ts +3 -0
  66. package/lib/Socket/Client/index.d.ts.map +1 -0
  67. package/lib/Socket/Client/index.js.map +1 -0
  68. package/lib/Socket/Client/types.d.ts +16 -0
  69. package/lib/Socket/Client/types.d.ts.map +1 -0
  70. package/lib/Socket/Client/types.js.map +1 -0
  71. package/lib/Socket/Client/websocket.d.ts +13 -0
  72. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  73. package/lib/Socket/Client/websocket.js.map +1 -0
  74. package/lib/Socket/business.d.ts +217 -0
  75. package/lib/Socket/business.d.ts.map +1 -0
  76. package/lib/Socket/business.js.map +1 -0
  77. package/lib/Socket/chats.d.ts +124 -0
  78. package/lib/Socket/chats.d.ts.map +1 -0
  79. package/lib/Socket/chats.js.map +1 -0
  80. package/lib/Socket/communities.d.ts +273 -0
  81. package/lib/Socket/communities.d.ts.map +1 -0
  82. package/lib/Socket/communities.js +431 -0
  83. package/lib/Socket/communities.js.map +1 -0
  84. package/lib/Socket/groups.d.ts +161 -0
  85. package/lib/Socket/groups.d.ts.map +1 -0
  86. package/lib/Socket/groups.js.map +1 -0
  87. package/lib/Socket/index.d.ts +260 -0
  88. package/lib/Socket/index.d.ts.map +1 -0
  89. package/lib/Socket/index.js.map +1 -0
  90. package/lib/Socket/messages-recv.d.ts +203 -0
  91. package/lib/Socket/messages-recv.d.ts.map +1 -0
  92. package/lib/Socket/messages-recv.js +229 -46
  93. package/lib/Socket/messages-recv.js.map +1 -0
  94. package/lib/Socket/messages-send.d.ts +199 -0
  95. package/lib/Socket/messages-send.d.ts.map +1 -0
  96. package/lib/Socket/messages-send.js +394 -53
  97. package/lib/Socket/messages-send.js.map +1 -0
  98. package/lib/Socket/mex.d.ts +3 -0
  99. package/lib/Socket/mex.d.ts.map +1 -0
  100. package/lib/Socket/mex.js +42 -0
  101. package/lib/Socket/mex.js.map +1 -0
  102. package/lib/Socket/newsletter.d.ts +170 -0
  103. package/lib/Socket/newsletter.d.ts.map +1 -0
  104. package/lib/Socket/newsletter.js.map +1 -0
  105. package/lib/Socket/passkey-handler.js +134 -0
  106. package/lib/Socket/passkey.js +186 -0
  107. package/lib/Socket/setup.js +433 -0
  108. package/lib/Socket/socket.d.ts +59 -0
  109. package/lib/Socket/socket.d.ts.map +1 -0
  110. package/lib/Socket/socket.js +28 -35
  111. package/lib/Socket/socket.js.map +1 -0
  112. package/lib/Types/Auth.d.ts +117 -0
  113. package/lib/Types/Auth.d.ts.map +1 -0
  114. package/lib/Types/Auth.js.map +1 -0
  115. package/lib/Types/Bussines.d.ts +25 -0
  116. package/lib/Types/Bussines.d.ts.map +1 -0
  117. package/lib/Types/Bussines.js +2 -0
  118. package/lib/Types/Bussines.js.map +1 -0
  119. package/lib/Types/Call.d.ts +15 -0
  120. package/lib/Types/Call.d.ts.map +1 -0
  121. package/lib/Types/Call.js.map +1 -0
  122. package/lib/Types/Chat.d.ts +124 -0
  123. package/lib/Types/Chat.d.ts.map +1 -0
  124. package/lib/Types/Chat.js.map +1 -0
  125. package/lib/Types/Contact.d.ts +26 -0
  126. package/lib/Types/Contact.d.ts.map +1 -0
  127. package/lib/Types/Contact.js.map +1 -0
  128. package/lib/Types/Events.d.ts +256 -0
  129. package/lib/Types/Events.d.ts.map +1 -0
  130. package/lib/Types/Events.js.map +1 -0
  131. package/lib/Types/GroupMetadata.d.ts +71 -0
  132. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  133. package/lib/Types/GroupMetadata.js.map +1 -0
  134. package/lib/Types/Label.d.ts +47 -0
  135. package/lib/Types/Label.d.ts.map +1 -0
  136. package/lib/Types/Label.js.map +1 -0
  137. package/lib/Types/LabelAssociation.d.ts +30 -0
  138. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  139. package/lib/Types/LabelAssociation.js.map +1 -0
  140. package/lib/Types/Message.d.ts +320 -0
  141. package/lib/Types/Message.d.ts.map +1 -0
  142. package/lib/Types/Message.js.map +1 -0
  143. package/lib/Types/Mex.d.ts +141 -0
  144. package/lib/Types/Mex.d.ts.map +1 -0
  145. package/lib/Types/Mex.js +37 -0
  146. package/lib/Types/Mex.js.map +1 -0
  147. package/lib/Types/Product.d.ts +79 -0
  148. package/lib/Types/Product.d.ts.map +1 -0
  149. package/lib/Types/Product.js.map +1 -0
  150. package/lib/Types/RichType.d.ts +3 -0
  151. package/lib/Types/RichType.d.ts.map +1 -0
  152. package/lib/Types/RichType.js +31 -0
  153. package/lib/Types/Signal.d.ts +87 -0
  154. package/lib/Types/Signal.d.ts.map +1 -0
  155. package/lib/Types/Signal.js.map +1 -0
  156. package/lib/Types/Socket.d.ts +136 -0
  157. package/lib/Types/Socket.d.ts.map +1 -0
  158. package/lib/Types/Socket.js.map +1 -0
  159. package/lib/Types/State.d.ts +97 -0
  160. package/lib/Types/State.d.ts.map +1 -0
  161. package/lib/Types/State.js.map +1 -0
  162. package/lib/Types/USync.d.ts +26 -0
  163. package/lib/Types/USync.d.ts.map +1 -0
  164. package/lib/Types/USync.js.map +1 -0
  165. package/lib/Types/index.d.ts +65 -0
  166. package/lib/Types/index.d.ts.map +1 -0
  167. package/lib/Types/index.js.map +1 -0
  168. package/lib/Utils/Tiktok.js +80 -0
  169. package/lib/Utils/auth-utils.d.ts +24 -0
  170. package/lib/Utils/auth-utils.d.ts.map +1 -0
  171. package/lib/Utils/auth-utils.js.map +1 -0
  172. package/lib/Utils/{elaina-event-stream.js → baileys-event-stream.js} +1 -1
  173. package/lib/Utils/browser-utils.d.ts +4 -0
  174. package/lib/Utils/browser-utils.d.ts.map +1 -0
  175. package/lib/Utils/browser-utils.js.map +1 -0
  176. package/lib/Utils/business.d.ts +23 -0
  177. package/lib/Utils/business.d.ts.map +1 -0
  178. package/lib/Utils/business.js.map +1 -0
  179. package/lib/Utils/chaanel/vyzen.js +0 -0
  180. package/lib/Utils/chat-utils.d.ts +100 -0
  181. package/lib/Utils/chat-utils.d.ts.map +1 -0
  182. package/lib/Utils/chat-utils.js.map +1 -0
  183. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  184. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  185. package/lib/Utils/companion-reg-client-utils.js +35 -0
  186. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  187. package/lib/Utils/crypto.d.ts +37 -0
  188. package/lib/Utils/crypto.d.ts.map +1 -0
  189. package/lib/Utils/crypto.js +1 -1
  190. package/lib/Utils/crypto.js.map +1 -0
  191. package/lib/Utils/decode-wa-message.d.ts +66 -0
  192. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  193. package/lib/Utils/decode-wa-message.js.map +1 -0
  194. package/lib/Utils/event-buffer.d.ts +36 -0
  195. package/lib/Utils/event-buffer.d.ts.map +1 -0
  196. package/lib/Utils/event-buffer.js +2 -2
  197. package/lib/Utils/event-buffer.js.map +1 -0
  198. package/lib/Utils/facebook.js +48 -0
  199. package/lib/Utils/generics.d.ts +91 -0
  200. package/lib/Utils/generics.d.ts.map +1 -0
  201. package/lib/Utils/generics.js +11 -11
  202. package/lib/Utils/generics.js.map +1 -0
  203. package/lib/Utils/history.d.ts +24 -0
  204. package/lib/Utils/history.d.ts.map +1 -0
  205. package/lib/Utils/history.js.map +1 -0
  206. package/lib/Utils/identity-change-handler.d.ts +44 -0
  207. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  208. package/lib/Utils/identity-change-handler.js +50 -0
  209. package/lib/Utils/identity-change-handler.js.map +1 -0
  210. package/lib/Utils/index.d.ts +22 -0
  211. package/lib/Utils/index.d.ts.map +1 -0
  212. package/lib/Utils/index.js +2 -1
  213. package/lib/Utils/index.js.map +1 -0
  214. package/lib/Utils/instagram.js +50 -0
  215. package/lib/Utils/link-preview.d.ts +21 -0
  216. package/lib/Utils/link-preview.d.ts.map +1 -0
  217. package/lib/Utils/link-preview.js.map +1 -0
  218. package/lib/Utils/logger.d.ts +12 -0
  219. package/lib/Utils/logger.d.ts.map +1 -0
  220. package/lib/Utils/logger.js.map +1 -0
  221. package/lib/Utils/lt-hash.d.ts +8 -0
  222. package/lib/Utils/lt-hash.d.ts.map +1 -0
  223. package/lib/Utils/lt-hash.js.map +1 -0
  224. package/lib/Utils/make-mutex.d.ts +9 -0
  225. package/lib/Utils/make-mutex.d.ts.map +1 -0
  226. package/lib/Utils/make-mutex.js.map +1 -0
  227. package/lib/Utils/message-retry-manager.d.ts +115 -0
  228. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  229. package/lib/Utils/message-retry-manager.js.map +1 -0
  230. package/lib/Utils/messages-media.d.ts +133 -0
  231. package/lib/Utils/messages-media.d.ts.map +1 -0
  232. package/lib/Utils/messages-media.js +16 -77
  233. package/lib/Utils/messages-media.js.map +1 -0
  234. package/lib/Utils/messages.d.ts +91 -0
  235. package/lib/Utils/messages.d.ts.map +1 -0
  236. package/lib/Utils/messages.js +158 -728
  237. package/lib/Utils/messages.js.map +1 -0
  238. package/lib/Utils/noise-handler.d.ts +20 -0
  239. package/lib/Utils/noise-handler.d.ts.map +1 -0
  240. package/lib/Utils/noise-handler.js.map +1 -0
  241. package/lib/Utils/offline-node-processor.d.ts +17 -0
  242. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  243. package/lib/Utils/offline-node-processor.js +40 -0
  244. package/lib/Utils/offline-node-processor.js.map +1 -0
  245. package/lib/Utils/pre-key-manager.d.ts +28 -0
  246. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  247. package/lib/Utils/pre-key-manager.js +106 -0
  248. package/lib/Utils/pre-key-manager.js.map +1 -0
  249. package/lib/Utils/process-message.d.ts +60 -0
  250. package/lib/Utils/process-message.d.ts.map +1 -0
  251. package/lib/Utils/process-message.js.map +1 -0
  252. package/lib/Utils/protocol-debug.js +81 -0
  253. package/lib/Utils/reporting-utils.d.ts +11 -0
  254. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  255. package/lib/Utils/reporting-utils.js +258 -0
  256. package/lib/Utils/reporting-utils.js.map +1 -0
  257. package/lib/Utils/rich-message-utils.js +387 -0
  258. package/lib/Utils/signal.d.ts +47 -0
  259. package/lib/Utils/signal.d.ts.map +1 -0
  260. package/lib/Utils/signal.js.map +1 -0
  261. package/lib/Utils/stanza-ack.d.ts +11 -0
  262. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  263. package/lib/Utils/stanza-ack.js +38 -0
  264. package/lib/Utils/stanza-ack.js.map +1 -0
  265. package/lib/Utils/sync-action-utils.d.ts +19 -0
  266. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  267. package/lib/Utils/sync-action-utils.js +49 -0
  268. package/lib/Utils/sync-action-utils.js.map +1 -0
  269. package/lib/Utils/tc-token-utils.d.ts +37 -0
  270. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  271. package/lib/Utils/tc-token-utils.js +163 -0
  272. package/lib/Utils/tc-token-utils.js.map +1 -0
  273. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
  274. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  275. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  276. package/lib/Utils/validate-connection.d.ts +11 -0
  277. package/lib/Utils/validate-connection.d.ts.map +1 -0
  278. package/lib/Utils/validate-connection.js +5 -1
  279. package/lib/Utils/validate-connection.js.map +1 -0
  280. package/lib/Utils/youtube.js +44 -0
  281. package/lib/WABinary/constants.d.ts +28 -0
  282. package/lib/WABinary/constants.d.ts.map +1 -0
  283. package/lib/WABinary/constants.js.map +1 -0
  284. package/lib/WABinary/decode.d.ts +7 -0
  285. package/lib/WABinary/decode.d.ts.map +1 -0
  286. package/lib/WABinary/decode.js.map +1 -0
  287. package/lib/WABinary/encode.d.ts +3 -0
  288. package/lib/WABinary/encode.d.ts.map +1 -0
  289. package/lib/WABinary/encode.js.map +1 -0
  290. package/lib/WABinary/generic-utils.d.ts +15 -0
  291. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  292. package/lib/WABinary/generic-utils.js.map +1 -0
  293. package/lib/WABinary/index.d.ts +6 -0
  294. package/lib/WABinary/index.d.ts.map +1 -0
  295. package/lib/WABinary/index.js.map +1 -0
  296. package/lib/WABinary/jid-utils.d.ts +48 -0
  297. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  298. package/lib/WABinary/jid-utils.js.map +1 -0
  299. package/lib/WABinary/types.d.ts +19 -0
  300. package/lib/WABinary/types.d.ts.map +1 -0
  301. package/lib/WABinary/types.js.map +1 -0
  302. package/lib/WAM/BinaryInfo.d.ts +9 -0
  303. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  304. package/lib/WAM/BinaryInfo.js.map +1 -0
  305. package/lib/WAM/constants.d.ts +40 -0
  306. package/lib/WAM/constants.d.ts.map +1 -0
  307. package/lib/WAM/constants.js.map +1 -0
  308. package/lib/WAM/encode.d.ts +3 -0
  309. package/lib/WAM/encode.d.ts.map +1 -0
  310. package/lib/WAM/encode.js.map +1 -0
  311. package/lib/WAM/index.d.ts +4 -0
  312. package/lib/WAM/index.d.ts.map +1 -0
  313. package/lib/WAM/index.js.map +1 -0
  314. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
  315. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  316. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  317. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  318. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  319. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  320. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  321. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  322. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  323. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  324. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  325. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  326. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  327. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  328. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  329. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  330. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
  331. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  332. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  333. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
  334. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  335. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  336. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  337. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  338. package/lib/WAUSync/Protocols/index.js.map +1 -0
  339. package/lib/WAUSync/USyncQuery.d.ts +30 -0
  340. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  341. package/lib/WAUSync/USyncQuery.js.map +1 -0
  342. package/lib/WAUSync/USyncUser.d.ts +17 -0
  343. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  344. package/lib/WAUSync/USyncUser.js.map +1 -0
  345. package/lib/WAUSync/index.d.ts +4 -0
  346. package/lib/WAUSync/index.d.ts.map +1 -0
  347. package/lib/WAUSync/index.js.map +1 -0
  348. package/lib/index.d.ts +12 -0
  349. package/lib/index.d.ts.map +1 -0
  350. package/lib/index.js +1 -21
  351. package/lib/index.js.map +1 -0
  352. package/package.json +39 -51
  353. package/engine-requirements.js +0 -10
  354. package/lib/Defaults/elaina-version.json +0 -3
  355. package/lib/Signal/libsignalnode/LICENSE +0 -621
  356. package/lib/Signal/libsignalnode/README.md +0 -11
  357. package/lib/Signal/libsignalnode/generate-proto.sh +0 -1
  358. package/lib/Signal/libsignalnode/index.js +0 -10
  359. package/lib/Signal/libsignalnode/protos/WhisperTextProtocol.proto +0 -28
  360. package/lib/Signal/libsignalnode/src/.eslintrc.json +0 -31
  361. package/lib/Signal/libsignalnode/src/WhisperTextProtocol.js +0 -948
  362. package/lib/Signal/libsignalnode/src/base_key_type.js +0 -6
  363. package/lib/Signal/libsignalnode/src/chain_type.js +0 -6
  364. package/lib/Signal/libsignalnode/src/crypto.js +0 -98
  365. package/lib/Signal/libsignalnode/src/curve.js +0 -142
  366. package/lib/Signal/libsignalnode/src/errors.js +0 -33
  367. package/lib/Signal/libsignalnode/src/keyhelper.js +0 -45
  368. package/lib/Signal/libsignalnode/src/numeric_fingerprint.js +0 -70
  369. package/lib/Signal/libsignalnode/src/protobufs.js +0 -10
  370. package/lib/Signal/libsignalnode/src/protocol_address.js +0 -40
  371. package/lib/Signal/libsignalnode/src/queue_job.js +0 -70
  372. package/lib/Signal/libsignalnode/src/session_builder.js +0 -164
  373. package/lib/Signal/libsignalnode/src/session_cipher.js +0 -332
  374. package/lib/Signal/libsignalnode/src/session_record.js +0 -325
  375. package/lib/Socket/RHandler.js +0 -533
@@ -0,0 +1,258 @@
1
+ import { createHmac } from 'crypto';
2
+ import { proto } from '../../WAProto/index.js';
3
+ import { hkdf } from './crypto.js';
4
+ const reportingFields = [
5
+ { f: 1 },
6
+ {
7
+ f: 3,
8
+ s: [{ f: 2 }, { f: 3 }, { f: 8 }, { f: 11 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }, { f: 25 }]
9
+ },
10
+ { f: 4, s: [{ f: 1 }, { f: 16 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }] },
11
+ { f: 5, s: [{ f: 3 }, { f: 4 }, { f: 5 }, { f: 16 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }] },
12
+ { f: 6, s: [{ f: 1 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }, { f: 30 }] },
13
+ { f: 7, s: [{ f: 2 }, { f: 7 }, { f: 10 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }, { f: 20 }] },
14
+ { f: 8, s: [{ f: 2 }, { f: 7 }, { f: 9 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }, { f: 21 }] },
15
+ { f: 9, s: [{ f: 2 }, { f: 6 }, { f: 7 }, { f: 13 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }, { f: 20 }] },
16
+ { f: 12, s: [{ f: 1 }, { f: 2 }, { f: 14, m: true }, { f: 15 }] },
17
+ { f: 18, s: [{ f: 6 }, { f: 16 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }] },
18
+ { f: 26, s: [{ f: 4 }, { f: 5 }, { f: 8 }, { f: 13 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }] },
19
+ { f: 28, s: [{ f: 1 }, { f: 2 }, { f: 4 }, { f: 5 }, { f: 6 }, { f: 7, s: [{ f: 21 }, { f: 22 }] }] },
20
+ { f: 37, s: [{ f: 1, m: true }] },
21
+ {
22
+ f: 49,
23
+ s: [
24
+ { f: 2 },
25
+ { f: 3, s: [{ f: 1 }, { f: 2 }] },
26
+ { f: 5, s: [{ f: 21 }, { f: 22 }] },
27
+ { f: 8, s: [{ f: 1 }, { f: 2 }] }
28
+ ]
29
+ },
30
+ { f: 53, s: [{ f: 1, m: true }] },
31
+ { f: 55, s: [{ f: 1, m: true }] },
32
+ { f: 58, s: [{ f: 1, m: true }] },
33
+ { f: 59, s: [{ f: 1, m: true }] },
34
+ {
35
+ f: 60,
36
+ s: [
37
+ { f: 2 },
38
+ { f: 3, s: [{ f: 1 }, { f: 2 }] },
39
+ { f: 5, s: [{ f: 21 }, { f: 22 }] },
40
+ { f: 8, s: [{ f: 1 }, { f: 2 }] }
41
+ ]
42
+ },
43
+ {
44
+ f: 64,
45
+ s: [
46
+ { f: 2 },
47
+ { f: 3, s: [{ f: 1 }, { f: 2 }] },
48
+ { f: 5, s: [{ f: 21 }, { f: 22 }] },
49
+ { f: 8, s: [{ f: 1 }, { f: 2 }] }
50
+ ]
51
+ },
52
+ { f: 66, s: [{ f: 2 }, { f: 6 }, { f: 7 }, { f: 13 }, { f: 17, s: [{ f: 21 }, { f: 22 }] }, { f: 20 }] },
53
+ { f: 74, s: [{ f: 1, m: true }] },
54
+ { f: 87, s: [{ f: 1, m: true }] },
55
+ { f: 88, s: [{ f: 1 }, { f: 2, s: [{ f: 1 }] }, { f: 3, s: [{ f: 21 }, { f: 22 }] }] },
56
+ { f: 92, s: [{ f: 1, m: true }] },
57
+ { f: 93, s: [{ f: 1, m: true }] },
58
+ { f: 94, s: [{ f: 1, m: true }] }
59
+ ];
60
+ const compileReportingFields = (fields) => {
61
+ const map = new Map();
62
+ for (const f of fields) {
63
+ map.set(f.f, {
64
+ m: f.m,
65
+ children: f.s ? compileReportingFields(f.s) : undefined
66
+ });
67
+ }
68
+ return map;
69
+ };
70
+ const compiledReportingFields = compileReportingFields(reportingFields);
71
+ const EMPTY_MAP = new Map();
72
+ const ENC_SECRET_REPORT_TOKEN = 'Report Token';
73
+ const WIRE = {
74
+ VARINT: 0,
75
+ FIXED64: 1,
76
+ BYTES: 2,
77
+ FIXED32: 5
78
+ };
79
+ export const shouldIncludeReportingToken = (message) => !message.reactionMessage &&
80
+ !message.encReactionMessage &&
81
+ !message.encEventResponseMessage &&
82
+ !message.pollUpdateMessage;
83
+ const generateMsgSecretKey = (modificationType, origMsgId, origMsgSender, modificationSender, origMsgSecret) => {
84
+ const useCaseSecret = Buffer.concat([
85
+ Buffer.from(origMsgId, 'utf8'),
86
+ Buffer.from(origMsgSender, 'utf8'),
87
+ Buffer.from(modificationSender, 'utf8'),
88
+ Buffer.from(modificationType, 'utf8')
89
+ ]);
90
+ return hkdf(origMsgSecret, 32, { info: useCaseSecret.toString('latin1') });
91
+ };
92
+ const extractReportingTokenContent = (data, cfg) => {
93
+ const out = [];
94
+ let i = 0;
95
+ while (i < data.length) {
96
+ const tag = decodeVarint(data, i);
97
+ if (!tag.ok) {
98
+ return null;
99
+ }
100
+ const fieldNum = tag.value >> 3;
101
+ const wireType = tag.value & 0x7;
102
+ const fieldStart = i;
103
+ i += tag.bytes;
104
+ const fieldCfg = cfg.get(fieldNum);
105
+ const pushSlice = (end) => {
106
+ if (end > data.length) {
107
+ return false;
108
+ }
109
+ out.push({ num: fieldNum, bytes: data.subarray(fieldStart, end) });
110
+ i = end;
111
+ return true;
112
+ };
113
+ const skip = (end) => {
114
+ if (end > data.length) {
115
+ return false;
116
+ }
117
+ i = end;
118
+ return true;
119
+ };
120
+ if (wireType === WIRE.VARINT) {
121
+ const v = decodeVarint(data, i);
122
+ if (!v.ok) {
123
+ return null;
124
+ }
125
+ const end = i + v.bytes;
126
+ if (!fieldCfg) {
127
+ if (!skip(end)) {
128
+ return null;
129
+ }
130
+ continue;
131
+ }
132
+ if (!pushSlice(end)) {
133
+ return null;
134
+ }
135
+ continue;
136
+ }
137
+ if (wireType === WIRE.FIXED64) {
138
+ const end = i + 8;
139
+ if (!fieldCfg) {
140
+ if (!skip(end)) {
141
+ return null;
142
+ }
143
+ continue;
144
+ }
145
+ if (!pushSlice(end)) {
146
+ return null;
147
+ }
148
+ continue;
149
+ }
150
+ if (wireType === WIRE.FIXED32) {
151
+ const end = i + 4;
152
+ if (!fieldCfg) {
153
+ if (!skip(end)) {
154
+ return null;
155
+ }
156
+ continue;
157
+ }
158
+ if (!pushSlice(end)) {
159
+ return null;
160
+ }
161
+ continue;
162
+ }
163
+ if (wireType === WIRE.BYTES) {
164
+ const len = decodeVarint(data, i);
165
+ if (!len.ok) {
166
+ return null;
167
+ }
168
+ const valStart = i + len.bytes;
169
+ const valEnd = valStart + len.value;
170
+ if (valEnd > data.length) {
171
+ return null;
172
+ }
173
+ if (!fieldCfg) {
174
+ i = valEnd;
175
+ continue;
176
+ }
177
+ if (fieldCfg.m || fieldCfg.children) {
178
+ const sub = extractReportingTokenContent(data.subarray(valStart, valEnd), fieldCfg.children ?? EMPTY_MAP);
179
+ if (sub === null) {
180
+ return null;
181
+ }
182
+ if (sub.length > 0) {
183
+ const newTag = encodeVarint(tag.value);
184
+ const newLen = encodeVarint(sub.length);
185
+ out.push({
186
+ num: fieldNum,
187
+ bytes: Buffer.concat([newTag, newLen, sub])
188
+ });
189
+ }
190
+ i = valEnd;
191
+ continue;
192
+ }
193
+ out.push({ num: fieldNum, bytes: data.subarray(fieldStart, valEnd) });
194
+ i = valEnd;
195
+ continue;
196
+ }
197
+ return null;
198
+ }
199
+ if (out.length === 0) {
200
+ return Buffer.alloc(0);
201
+ }
202
+ out.sort((a, b) => a.num - b.num);
203
+ return Buffer.concat(out.map(f => f.bytes));
204
+ };
205
+ const decodeVarint = (buffer, offset) => {
206
+ let value = 0;
207
+ let bytes = 0;
208
+ let shift = 0;
209
+ while (offset + bytes < buffer.length) {
210
+ const current = buffer[offset + bytes];
211
+ value |= (current & 0x7f) << shift;
212
+ bytes++;
213
+ if ((current & 0x80) === 0) {
214
+ return { value, bytes, ok: true };
215
+ }
216
+ shift += 7;
217
+ if (shift > 35) {
218
+ return { value: 0, bytes: 0, ok: false };
219
+ }
220
+ }
221
+ return { value: 0, bytes: 0, ok: false };
222
+ };
223
+ const encodeVarint = (value) => {
224
+ const parts = [];
225
+ let remaining = value >>> 0;
226
+ while (remaining > 0x7f) {
227
+ parts.push((remaining & 0x7f) | 0x80);
228
+ remaining >>>= 7;
229
+ }
230
+ parts.push(remaining);
231
+ return Buffer.from(parts);
232
+ };
233
+ export const getMessageReportingToken = async (msgProtobuf, message, key) => {
234
+ const msgSecret = message.messageContextInfo?.messageSecret;
235
+ if (!msgSecret || !key.id) {
236
+ return null;
237
+ }
238
+ const from = key.fromMe ? key.remoteJid : key.participant || key.remoteJid;
239
+ const to = key.fromMe ? key.participant || key.remoteJid : key.remoteJid;
240
+ const reportingSecret = generateMsgSecretKey(ENC_SECRET_REPORT_TOKEN, key.id, from, to, msgSecret);
241
+ const content = extractReportingTokenContent(msgProtobuf, compiledReportingFields);
242
+ if (!content || content.length === 0) {
243
+ return null;
244
+ }
245
+ const reportingToken = createHmac('sha256', reportingSecret).update(content).digest().subarray(0, 16);
246
+ return {
247
+ tag: 'reporting',
248
+ attrs: {},
249
+ content: [
250
+ {
251
+ tag: 'reporting_token',
252
+ attrs: { v: '2' },
253
+ content: reportingToken
254
+ }
255
+ ]
256
+ };
257
+ };
258
+ //# sourceMappingURL=reporting-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting-utils.js","sourceRoot":"","sources":["../../src/Utils/reporting-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAa/B,MAAM,eAAe,GAAqB;IACzC,EAAE,CAAC,EAAE,CAAC,EAAE;IACR;QACC,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;KAC7F;IACD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;IACxE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;IAC5F,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IACxE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IAC7F,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IAC5F,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IACvG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IACjE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,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"}
@@ -0,0 +1,387 @@
1
+ /**
2
+ * Lia@Changes 09-04-26 [WIP]
3
+ * Adds support for tables and code blocks with richResponseMessage (wrapped inside botForwardedMessage).
4
+ *
5
+ * If you use or copy this code, please credit my name or project. AND DO NOT CHANGE THIS NOTE
6
+ */
7
+
8
+ const { getRandomValues, randomUUID } = require('crypto');
9
+ const { DONATE_URL, LEXER_REGEX } = require('../Defaults/index.js');
10
+ const { LANGUAGE_KEYWORDS } = require('../WABinary/constants.js');
11
+ const { CodeHighlightType, RichSubMessageType } = require('../Types/RichType.js');
12
+ const { proto } = require('../../WAProto/index.js');
13
+ const { unixTimestampSeconds } = require('./generics.js');
14
+
15
+ const NOOP = new Set([]);
16
+
17
+ const tokenizeCode = (code, language = 'javascript') => {
18
+ const keywords = LANGUAGE_KEYWORDS[language] || NOOP;
19
+ const blocks = [];
20
+ LEXER_REGEX.lastIndex = 0;
21
+ let match;
22
+ while ((match = LEXER_REGEX.exec(code)) !== null) {
23
+ if (match[1]) {
24
+ blocks.push({ highlightType: CodeHighlightType.COMMENT, codeContent: match[1] });
25
+ }
26
+ else if (match[2]) {
27
+ blocks.push({ highlightType: CodeHighlightType.STRING, codeContent: match[2] });
28
+ }
29
+ else if (match[3]) {
30
+ blocks.push({
31
+ highlightType: keywords.has(match[3]) ? CodeHighlightType.KEYWORD : CodeHighlightType.METHOD,
32
+ codeContent: match[3],
33
+ });
34
+ }
35
+ else if (match[4]) {
36
+ blocks.push({
37
+ highlightType: keywords.has(match[4]) ? CodeHighlightType.KEYWORD : CodeHighlightType.DEFAULT,
38
+ codeContent: match[4],
39
+ });
40
+ }
41
+ else if (match[5]) {
42
+ blocks.push({ highlightType: CodeHighlightType.NUMBER, codeContent: match[5] });
43
+ }
44
+ else {
45
+ blocks.push({ highlightType: CodeHighlightType.DEFAULT, codeContent: match[6] });
46
+ }
47
+ }
48
+ return blocks;
49
+ };
50
+
51
+ // Lia@Changes 09-04-26 --- Inject buffer into unifiedResponse.data to support proper rendering of rich messages (ex: tables and code blocks)
52
+ const toUnified = (submessages, uuid) => ({
53
+ response_id: uuid || randomUUID(),
54
+ sections: submessages.map((submessage, index) => {
55
+ switch (submessage.messageType) {
56
+ case RichSubMessageType.CODE:
57
+ const codeMetadata = submessage.codeMetadata;
58
+ return {
59
+ view_model: {
60
+ primitive: {
61
+ language: codeMetadata.codeLanguage,
62
+ code_blocks: codeMetadata.codeBlocks.map((block) => ({ content: block.codeContent, type: CodeHighlightType[block.highlightType] })),
63
+ __typename: 'GenAICodeUXPrimitive'
64
+ },
65
+ __typename: 'GenAISingleLayoutViewModel'
66
+ }
67
+ };
68
+ case RichSubMessageType.CONTENT_ITEMS:
69
+ return {};
70
+ case RichSubMessageType.INLINE_IMAGE:
71
+ return {};
72
+ case RichSubMessageType.LATEX:
73
+ return {};
74
+ case RichSubMessageType.TABLE:
75
+ const tableMetadata = submessage.tableMetadata;
76
+ return {
77
+ view_model: {
78
+ primitive: {
79
+ title: tableMetadata.title,
80
+ rows: tableMetadata.rows.map((row) => ({
81
+ is_header: row.isHeading,
82
+ cells: row.items,
83
+ markdown_cells: row.items.map((item) => ({ text: item }))
84
+ })),
85
+ __typename: 'GenATableUXPrimitive'
86
+ },
87
+ __typename: 'GenAISingleLayoutViewModel'
88
+ }
89
+ };
90
+ case RichSubMessageType.TEXT:
91
+ return {
92
+ view_model: {
93
+ primitive: {
94
+ text: submessage.messageText,
95
+ inline_entities: submessage.inlineEntities || [],
96
+ __typename: 'GenAIMarkdownTextUXPrimitive'
97
+ },
98
+ __typename: 'GenAISingleLayoutViewModel'
99
+ }
100
+ };
101
+ }
102
+ return submessage;
103
+ })
104
+ });
105
+
106
+ const prepareRichResponseMessage = (content) => {
107
+ const { alignment, code, contentText, disclaimerText, footerText, headerText, imageText, inlineImage, inlineVideo, items, language, latex, links, noHeading, posts, products, suggested, richResponse, table, tapLinkUrl, title } = content;
108
+ let submessages = [];
109
+ if (Array.isArray(richResponse)) {
110
+ submessages = richResponse.map((submessage) => {
111
+ if (submessage.text) {
112
+ return {
113
+ messageType: RichSubMessageType.TEXT,
114
+ messageText: submessage.text,
115
+ inlineEntities: submessage.inlineEntities
116
+ };
117
+ }
118
+ else if (submessage.code) {
119
+ return {
120
+ messageType: RichSubMessageType.CODE,
121
+ codeMetadata: {
122
+ codeLanguage: submessage.language,
123
+ codeBlocks: submessage.code
124
+ }
125
+ };
126
+ }
127
+ else if (submessage.items) {
128
+ return {
129
+ messageType: RichSubMessageType.CONTENT_ITEMS,
130
+ contentItemsMetadata: {
131
+ itemsMetadata: submessage.items,
132
+ contentType: proto.AIRichResponseContentItemsMetadata.ContentType.CAROUSEL
133
+ }
134
+ };
135
+ }
136
+ else if (submessage.inlineImage) {
137
+ return {
138
+ messageType: RichSubMessageType.INLINE_IMAGE,
139
+ imageMetadata: {
140
+ imageUrl: submessage.inlineImage,
141
+ imageText: submessage.imageText,
142
+ alignment: submessage.alignment,
143
+ tapLinkUrl: submessage.tapLinkUrl
144
+ }
145
+ };
146
+ }
147
+ else if (submessage.inlineVideo) {
148
+ return {
149
+ messageType: RichSubMessageType.TEXT,
150
+ messageText: 'INLINE_VIDEO'
151
+ };
152
+ }
153
+ else if (submessage.latex) {
154
+ return {
155
+ messageType: RichSubMessageType.LATEX,
156
+ latexMetadata: {
157
+ text: submessage.text,
158
+ expressions: submessage.latex
159
+ }
160
+ };
161
+ }
162
+ else if (submessage.posts) {
163
+ return {
164
+ messageType: RichSubMessageType.TEXT,
165
+ messageText: 'POSTS'
166
+ };
167
+ }
168
+ else if (submessage.products) {
169
+ return {
170
+ messageType: RichSubMessageType.TEXT,
171
+ messageText: 'PRODUCTS'
172
+ };
173
+ }
174
+ else if (submessage.suggested) {
175
+ return {
176
+ messageType: RichSubMessageType.TEXT,
177
+ messageText: 'SUGGESTED_PROMPT'
178
+ };
179
+ }
180
+ else if (submessage.table) {
181
+ return {
182
+ messageType: RichSubMessageType.TABLE,
183
+ tableMetadata: {
184
+ title: submessage.title,
185
+ rows: submessage.table
186
+ }
187
+ };
188
+ }
189
+ return submessage;
190
+ });
191
+ }
192
+ else {
193
+ if (headerText) {
194
+ submessages.push({
195
+ messageType: RichSubMessageType.TEXT,
196
+ messageText: headerText
197
+ });
198
+ }
199
+ if (contentText) {
200
+ submessages.push({
201
+ messageType: RichSubMessageType.TEXT,
202
+ messageText: contentText
203
+ });
204
+ }
205
+ if (code) {
206
+ let selectedLanguage = language || 'javascript';
207
+ submessages.push({
208
+ messageType: RichSubMessageType.CODE,
209
+ codeMetadata: {
210
+ codeLanguage: selectedLanguage,
211
+ codeBlocks: tokenizeCode(code, selectedLanguage)
212
+ }
213
+ });
214
+ }
215
+ if (items) {
216
+ submessages.push({
217
+ messageType: RichSubMessageType.CONTENT_ITEMS,
218
+ contentItemsMetadata: {
219
+ itemsMetadata: items,
220
+ contentType: proto.AIRichResponseContentItemsMetadata.ContentType.CAROUSEL
221
+ }
222
+ });
223
+ }
224
+ if (inlineImage) {
225
+ submessages.push({
226
+ messageType: RichSubMessageType.INLINE_IMAGE,
227
+ imageMetadata: {
228
+ imageUrl: inlineImage,
229
+ imageText,
230
+ alignment,
231
+ tapLinkUrl
232
+ }
233
+ });
234
+ }
235
+ if (inlineVideo) {
236
+ submessages.push({
237
+ messageType: RichSubMessageType.TEXT,
238
+ messageText: 'INLINE_VIDEO'
239
+ });
240
+ }
241
+ if (latex) {
242
+ submessages.push({
243
+ messageType: RichSubMessageType.LATEX,
244
+ latexMetadata: {
245
+ text,
246
+ expressions: latex
247
+ }
248
+ });
249
+ }
250
+ if (links) {
251
+ links.forEach((linkField, index) => {
252
+ const prefix = 'SS_' + index;
253
+ const url = linkField.url || DONATE_URL;
254
+ const sources = linkField.sources?.map((sourceField) => ({
255
+ source_type: 'THIRD_PARTY',
256
+ source_display_name: sourceField.displayName || 'Donate',
257
+ source_subtitle: sourceField.subtitle || 'Saweria',
258
+ source_url: sourceField.url || url
259
+ }));
260
+ submessages.push({
261
+ messageType: RichSubMessageType.TEXT,
262
+ messageText: linkField.text + ` {{${prefix}}}¹{{/${prefix}}} `,
263
+ inlineEntities: [{
264
+ key: prefix,
265
+ metadata: {
266
+ reference_id: index + 1,
267
+ reference_url: url,
268
+ reference_title: linkField.title || 'For Donation via Saweria',
269
+ reference_display_name: linkField.displayName || 'Donation',
270
+ sources: sources || [],
271
+ __typename: 'GenAISearchCitationItem'
272
+ }
273
+ }]
274
+ });
275
+ });
276
+ }
277
+ if (posts) {
278
+ submessages.push({
279
+ messageType: RichSubMessageType.TEXT,
280
+ messageText: 'POSTS'
281
+ });
282
+ }
283
+ if (products) {
284
+ submessages.push({
285
+ messageType: RichSubMessageType.TEXT,
286
+ messageText: 'PRODUCTS'
287
+ });
288
+ }
289
+ if (suggested) {
290
+ submessages.push({
291
+ messageType: RichSubMessageType.TEXT,
292
+ messageText: 'SUGGESTED_PROMPT'
293
+ });
294
+ }
295
+ if (table) {
296
+ submessages.push({
297
+ messageType: RichSubMessageType.TABLE,
298
+ tableMetadata: {
299
+ title,
300
+ rows: table.map((items, index) => ({
301
+ isHeading: !noHeading && index == 0,
302
+ items
303
+ }))
304
+ }
305
+ });
306
+ }
307
+ if (footerText) {
308
+ submessages.push({
309
+ messageType: RichSubMessageType.TEXT,
310
+ messageText: footerText
311
+ });
312
+ }
313
+ }
314
+ const uuid = randomUUID();
315
+ const unified = toUnified(submessages, uuid);
316
+ const richResponseMessage = proto.AIRichResponseMessage.create({
317
+ submessages,
318
+ messageType: proto.AIRichResponseMessageType.AI_RICH_RESPONSE_TYPE_STANDARD,
319
+ unifiedResponse: {
320
+ data: Buffer.from(JSON.stringify(unified)) // Lia@Note 25-04-26 --- Expects "ArrayBufferLike"
321
+ },
322
+ contextInfo: {
323
+ isForwarded: true,
324
+ forwardingScore: 1,
325
+ forwardedAiBotMessageInfo: { botJid: '867051314767696@bot' },
326
+ forwardOrigin: 4
327
+ }
328
+ });
329
+ const message = wrapToBotForwardedMessage(richResponseMessage);
330
+ const botMetadata = message.messageContextInfo.botMetadata;
331
+ // Lia@Note 13-05-26 --- Add disclaimer text on richResponseMessage
332
+ if (disclaimerText) {
333
+ botMetadata.messageDisclaimerText = disclaimerText;
334
+ }
335
+ // Lia@Note 15-05-26 --- Add responseId from unified directly to botMetadata
336
+ botMetadata.botResponseId = uuid;
337
+ return message;
338
+ };
339
+
340
+ // Lia@Note 17-04-26 --- signature and certificateChain for proofs[] field
341
+ const botMetadataSignature = () => {
342
+ const signature = new Uint8Array(64);
343
+ getRandomValues(signature);
344
+ return signature;
345
+ };
346
+
347
+ const botMetadataCertificate = (length = 685) => {
348
+ const certificate = new Uint8Array(length);
349
+ certificate[0] = 48;
350
+ certificate[1] = 130;
351
+ getRandomValues(certificate.subarray(2));
352
+ return certificate;
353
+ };
354
+
355
+ const wrapToBotForwardedMessage = (richResponseMessage) => ({
356
+ messageContextInfo: {
357
+ botMetadata: {
358
+ // Lia@Note 09-04-26 --- TODO: Fill verificationMetadata field
359
+ verificationMetadata: {
360
+ proofs: [
361
+ {
362
+ certificateChain: [
363
+ botMetadataCertificate(),
364
+ botMetadataCertificate(892)
365
+ ],
366
+ version: 1,
367
+ useCase: 1,
368
+ signature: botMetadataSignature()
369
+ }
370
+ ]
371
+ }
372
+ }
373
+ },
374
+ botForwardedMessage: {
375
+ message: { richResponseMessage }
376
+ }
377
+ });
378
+
379
+ // Ekspor semua fungsi eksternal menggunakan CommonJS
380
+ module.exports = {
381
+ tokenizeCode,
382
+ toUnified,
383
+ prepareRichResponseMessage,
384
+ botMetadataSignature,
385
+ botMetadataCertificate,
386
+ wrapToBotForwardedMessage
387
+ };