baileys-joss 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +377 -0
  3. package/WAProto/GenerateStatics.sh +3 -0
  4. package/WAProto/WAProto.proto +5479 -0
  5. package/WAProto/fix-imports.js +81 -0
  6. package/WAProto/index.d.ts +14017 -0
  7. package/WAProto/index.js +97687 -0
  8. package/engine-requirements.js +10 -0
  9. package/lib/Defaults/index.d.ts +66 -0
  10. package/lib/Defaults/index.d.ts.map +1 -0
  11. package/lib/Defaults/index.js +120 -0
  12. package/lib/Defaults/index.js.map +1 -0
  13. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  14. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  15. package/lib/Signal/Group/ciphertext-message.js +12 -0
  16. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  17. package/lib/Signal/Group/group-session-builder.d.ts +15 -0
  18. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  19. package/lib/Signal/Group/group-session-builder.js +30 -0
  20. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  21. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  22. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  23. package/lib/Signal/Group/group_cipher.js +82 -0
  24. package/lib/Signal/Group/group_cipher.js.map +1 -0
  25. package/lib/Signal/Group/index.d.ts +12 -0
  26. package/lib/Signal/Group/index.d.ts.map +1 -0
  27. package/lib/Signal/Group/index.js +12 -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 +18 -0
  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 +26 -0
  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 +63 -0
  40. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  41. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  42. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  43. package/lib/Signal/Group/sender-key-message.js +66 -0
  44. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  45. package/lib/Signal/Group/sender-key-name.d.ts +18 -0
  46. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  47. package/lib/Signal/Group/sender-key-name.js +48 -0
  48. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  49. package/lib/Signal/Group/sender-key-record.d.ts +31 -0
  50. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  51. package/lib/Signal/Group/sender-key-record.js +41 -0
  52. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  53. package/lib/Signal/Group/sender-key-state.d.ts +39 -0
  54. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  55. package/lib/Signal/Group/sender-key-state.js +84 -0
  56. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  57. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  58. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  59. package/lib/Signal/Group/sender-message-key.js +26 -0
  60. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  61. package/lib/Signal/libsignal.d.ts +5 -0
  62. package/lib/Signal/libsignal.d.ts.map +1 -0
  63. package/lib/Signal/libsignal.js +342 -0
  64. package/lib/Signal/libsignal.js.map +1 -0
  65. package/lib/Signal/lid-mapping.d.ts +24 -0
  66. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  67. package/lib/Signal/lid-mapping.js +220 -0
  68. package/lib/Signal/lid-mapping.js.map +1 -0
  69. package/lib/Socket/Client/index.d.ts +3 -0
  70. package/lib/Socket/Client/index.d.ts.map +1 -0
  71. package/lib/Socket/Client/index.js +3 -0
  72. package/lib/Socket/Client/index.js.map +1 -0
  73. package/lib/Socket/Client/types.d.ts +16 -0
  74. package/lib/Socket/Client/types.d.ts.map +1 -0
  75. package/lib/Socket/Client/types.js +11 -0
  76. package/lib/Socket/Client/types.js.map +1 -0
  77. package/lib/Socket/Client/websocket.d.ts +13 -0
  78. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  79. package/lib/Socket/Client/websocket.js +54 -0
  80. package/lib/Socket/Client/websocket.js.map +1 -0
  81. package/lib/Socket/business.d.ts +200 -0
  82. package/lib/Socket/business.d.ts.map +1 -0
  83. package/lib/Socket/business.js +379 -0
  84. package/lib/Socket/business.js.map +1 -0
  85. package/lib/Socket/chats.d.ts +109 -0
  86. package/lib/Socket/chats.d.ts.map +1 -0
  87. package/lib/Socket/chats.js +978 -0
  88. package/lib/Socket/chats.js.map +1 -0
  89. package/lib/Socket/communities.d.ts +256 -0
  90. package/lib/Socket/communities.d.ts.map +1 -0
  91. package/lib/Socket/communities.js +431 -0
  92. package/lib/Socket/communities.js.map +1 -0
  93. package/lib/Socket/groups.d.ts +148 -0
  94. package/lib/Socket/groups.d.ts.map +1 -0
  95. package/lib/Socket/groups.js +327 -0
  96. package/lib/Socket/groups.js.map +1 -0
  97. package/lib/Socket/index.d.ts +243 -0
  98. package/lib/Socket/index.d.ts.map +1 -0
  99. package/lib/Socket/index.js +12 -0
  100. package/lib/Socket/index.js.map +1 -0
  101. package/lib/Socket/messages-recv.d.ts +185 -0
  102. package/lib/Socket/messages-recv.d.ts.map +1 -0
  103. package/lib/Socket/messages-recv.js +1294 -0
  104. package/lib/Socket/messages-recv.js.map +1 -0
  105. package/lib/Socket/messages-send.d.ts +181 -0
  106. package/lib/Socket/messages-send.d.ts.map +1 -0
  107. package/lib/Socket/messages-send.js +1043 -0
  108. package/lib/Socket/messages-send.js.map +1 -0
  109. package/lib/Socket/mex.d.ts +3 -0
  110. package/lib/Socket/mex.d.ts.map +1 -0
  111. package/lib/Socket/mex.js +42 -0
  112. package/lib/Socket/mex.js.map +1 -0
  113. package/lib/Socket/newsletter.d.ts +158 -0
  114. package/lib/Socket/newsletter.d.ts.map +1 -0
  115. package/lib/Socket/newsletter.js +181 -0
  116. package/lib/Socket/newsletter.js.map +1 -0
  117. package/lib/Socket/socket.d.ts +53 -0
  118. package/lib/Socket/socket.d.ts.map +1 -0
  119. package/lib/Socket/socket.js +887 -0
  120. package/lib/Socket/socket.js.map +1 -0
  121. package/lib/Types/Auth.d.ts +115 -0
  122. package/lib/Types/Auth.d.ts.map +1 -0
  123. package/lib/Types/Auth.js +2 -0
  124. package/lib/Types/Auth.js.map +1 -0
  125. package/lib/Types/Bussines.d.ts +25 -0
  126. package/lib/Types/Bussines.d.ts.map +1 -0
  127. package/lib/Types/Bussines.js +2 -0
  128. package/lib/Types/Bussines.js.map +1 -0
  129. package/lib/Types/Call.d.ts +14 -0
  130. package/lib/Types/Call.d.ts.map +1 -0
  131. package/lib/Types/Call.js +2 -0
  132. package/lib/Types/Call.js.map +1 -0
  133. package/lib/Types/Chat.d.ts +123 -0
  134. package/lib/Types/Chat.d.ts.map +1 -0
  135. package/lib/Types/Chat.js +8 -0
  136. package/lib/Types/Chat.js.map +1 -0
  137. package/lib/Types/Contact.d.ts +24 -0
  138. package/lib/Types/Contact.d.ts.map +1 -0
  139. package/lib/Types/Contact.js +2 -0
  140. package/lib/Types/Contact.js.map +1 -0
  141. package/lib/Types/Events.d.ts +236 -0
  142. package/lib/Types/Events.d.ts.map +1 -0
  143. package/lib/Types/Events.js +2 -0
  144. package/lib/Types/Events.js.map +1 -0
  145. package/lib/Types/GroupMetadata.d.ts +67 -0
  146. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  147. package/lib/Types/GroupMetadata.js +2 -0
  148. package/lib/Types/GroupMetadata.js.map +1 -0
  149. package/lib/Types/Label.d.ts +47 -0
  150. package/lib/Types/Label.d.ts.map +1 -0
  151. package/lib/Types/Label.js +25 -0
  152. package/lib/Types/Label.js.map +1 -0
  153. package/lib/Types/LabelAssociation.d.ts +30 -0
  154. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  155. package/lib/Types/LabelAssociation.js +7 -0
  156. package/lib/Types/LabelAssociation.js.map +1 -0
  157. package/lib/Types/Message.d.ts +305 -0
  158. package/lib/Types/Message.d.ts.map +1 -0
  159. package/lib/Types/Message.js +11 -0
  160. package/lib/Types/Message.js.map +1 -0
  161. package/lib/Types/Newsletter.d.ts +135 -0
  162. package/lib/Types/Newsletter.d.ts.map +1 -0
  163. package/lib/Types/Newsletter.js +31 -0
  164. package/lib/Types/Newsletter.js.map +1 -0
  165. package/lib/Types/Product.d.ts +79 -0
  166. package/lib/Types/Product.d.ts.map +1 -0
  167. package/lib/Types/Product.js +2 -0
  168. package/lib/Types/Product.js.map +1 -0
  169. package/lib/Types/Signal.d.ts +76 -0
  170. package/lib/Types/Signal.d.ts.map +1 -0
  171. package/lib/Types/Signal.js +2 -0
  172. package/lib/Types/Signal.js.map +1 -0
  173. package/lib/Types/Socket.d.ts +133 -0
  174. package/lib/Types/Socket.d.ts.map +1 -0
  175. package/lib/Types/Socket.js +3 -0
  176. package/lib/Types/Socket.js.map +1 -0
  177. package/lib/Types/State.d.ts +39 -0
  178. package/lib/Types/State.d.ts.map +1 -0
  179. package/lib/Types/State.js +13 -0
  180. package/lib/Types/State.js.map +1 -0
  181. package/lib/Types/USync.d.ts +26 -0
  182. package/lib/Types/USync.d.ts.map +1 -0
  183. package/lib/Types/USync.js +2 -0
  184. package/lib/Types/USync.js.map +1 -0
  185. package/lib/Types/index.d.ts +65 -0
  186. package/lib/Types/index.d.ts.map +1 -0
  187. package/lib/Types/index.js +26 -0
  188. package/lib/Types/index.js.map +1 -0
  189. package/lib/Utils/anti-delete.d.ts +153 -0
  190. package/lib/Utils/anti-delete.d.ts.map +1 -0
  191. package/lib/Utils/anti-delete.js +269 -0
  192. package/lib/Utils/anti-delete.js.map +1 -0
  193. package/lib/Utils/auth-utils.d.ts +19 -0
  194. package/lib/Utils/auth-utils.d.ts.map +1 -0
  195. package/lib/Utils/auth-utils.js +290 -0
  196. package/lib/Utils/auth-utils.js.map +1 -0
  197. package/lib/Utils/browser-utils.d.ts +4 -0
  198. package/lib/Utils/browser-utils.d.ts.map +1 -0
  199. package/lib/Utils/browser-utils.js +28 -0
  200. package/lib/Utils/browser-utils.js.map +1 -0
  201. package/lib/Utils/business.d.ts +23 -0
  202. package/lib/Utils/business.d.ts.map +1 -0
  203. package/lib/Utils/business.js +231 -0
  204. package/lib/Utils/business.js.map +1 -0
  205. package/lib/Utils/chat-utils.d.ts +70 -0
  206. package/lib/Utils/chat-utils.d.ts.map +1 -0
  207. package/lib/Utils/chat-utils.js +812 -0
  208. package/lib/Utils/chat-utils.js.map +1 -0
  209. package/lib/Utils/crypto.d.ts +41 -0
  210. package/lib/Utils/crypto.d.ts.map +1 -0
  211. package/lib/Utils/crypto.js +142 -0
  212. package/lib/Utils/crypto.js.map +1 -0
  213. package/lib/Utils/decode-wa-message.d.ts +48 -0
  214. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  215. package/lib/Utils/decode-wa-message.js +283 -0
  216. package/lib/Utils/decode-wa-message.js.map +1 -0
  217. package/lib/Utils/event-buffer.d.ts +34 -0
  218. package/lib/Utils/event-buffer.d.ts.map +1 -0
  219. package/lib/Utils/event-buffer.js +574 -0
  220. package/lib/Utils/event-buffer.js.map +1 -0
  221. package/lib/Utils/generics.d.ts +91 -0
  222. package/lib/Utils/generics.d.ts.map +1 -0
  223. package/lib/Utils/generics.js +384 -0
  224. package/lib/Utils/generics.js.map +1 -0
  225. package/lib/Utils/group-utils.d.ts +190 -0
  226. package/lib/Utils/group-utils.d.ts.map +1 -0
  227. package/lib/Utils/group-utils.js +241 -0
  228. package/lib/Utils/group-utils.js.map +1 -0
  229. package/lib/Utils/history.d.ts +22 -0
  230. package/lib/Utils/history.d.ts.map +1 -0
  231. package/lib/Utils/history.js +131 -0
  232. package/lib/Utils/history.js.map +1 -0
  233. package/lib/Utils/identity-change-handler.d.ts +37 -0
  234. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  235. package/lib/Utils/identity-change-handler.js +49 -0
  236. package/lib/Utils/identity-change-handler.js.map +1 -0
  237. package/lib/Utils/index.d.ts +26 -0
  238. package/lib/Utils/index.d.ts.map +1 -0
  239. package/lib/Utils/index.js +35 -0
  240. package/lib/Utils/index.js.map +1 -0
  241. package/lib/Utils/interactive-message.d.ts +262 -0
  242. package/lib/Utils/interactive-message.d.ts.map +1 -0
  243. package/lib/Utils/interactive-message.js +264 -0
  244. package/lib/Utils/interactive-message.js.map +1 -0
  245. package/lib/Utils/jid-plotting.d.ts +167 -0
  246. package/lib/Utils/jid-plotting.d.ts.map +1 -0
  247. package/lib/Utils/jid-plotting.js +266 -0
  248. package/lib/Utils/jid-plotting.js.map +1 -0
  249. package/lib/Utils/link-preview.d.ts +21 -0
  250. package/lib/Utils/link-preview.d.ts.map +1 -0
  251. package/lib/Utils/link-preview.js +85 -0
  252. package/lib/Utils/link-preview.js.map +1 -0
  253. package/lib/Utils/logger.d.ts +13 -0
  254. package/lib/Utils/logger.d.ts.map +1 -0
  255. package/lib/Utils/logger.js +3 -0
  256. package/lib/Utils/logger.js.map +1 -0
  257. package/lib/Utils/lt-hash.d.ts +13 -0
  258. package/lib/Utils/lt-hash.d.ts.map +1 -0
  259. package/lib/Utils/lt-hash.js +48 -0
  260. package/lib/Utils/lt-hash.js.map +1 -0
  261. package/lib/Utils/make-mutex.d.ts +9 -0
  262. package/lib/Utils/make-mutex.d.ts.map +1 -0
  263. package/lib/Utils/make-mutex.js +33 -0
  264. package/lib/Utils/make-mutex.js.map +1 -0
  265. package/lib/Utils/message-retry-manager.d.ts +82 -0
  266. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  267. package/lib/Utils/message-retry-manager.js +168 -0
  268. package/lib/Utils/message-retry-manager.js.map +1 -0
  269. package/lib/Utils/messages-media.d.ts +130 -0
  270. package/lib/Utils/messages-media.d.ts.map +1 -0
  271. package/lib/Utils/messages-media.js +774 -0
  272. package/lib/Utils/messages-media.js.map +1 -0
  273. package/lib/Utils/messages.d.ts +91 -0
  274. package/lib/Utils/messages.d.ts.map +1 -0
  275. package/lib/Utils/messages.js +870 -0
  276. package/lib/Utils/messages.js.map +1 -0
  277. package/lib/Utils/noise-handler.d.ts +20 -0
  278. package/lib/Utils/noise-handler.d.ts.map +1 -0
  279. package/lib/Utils/noise-handler.js +201 -0
  280. package/lib/Utils/noise-handler.js.map +1 -0
  281. package/lib/Utils/pre-key-manager.d.ts +28 -0
  282. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  283. package/lib/Utils/pre-key-manager.js +106 -0
  284. package/lib/Utils/pre-key-manager.js.map +1 -0
  285. package/lib/Utils/process-message.d.ts +60 -0
  286. package/lib/Utils/process-message.d.ts.map +1 -0
  287. package/lib/Utils/process-message.js +504 -0
  288. package/lib/Utils/process-message.js.map +1 -0
  289. package/lib/Utils/reporting-utils.d.ts +11 -0
  290. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  291. package/lib/Utils/reporting-utils.js +258 -0
  292. package/lib/Utils/reporting-utils.js.map +1 -0
  293. package/lib/Utils/signal.d.ts +34 -0
  294. package/lib/Utils/signal.d.ts.map +1 -0
  295. package/lib/Utils/signal.js +159 -0
  296. package/lib/Utils/signal.js.map +1 -0
  297. package/lib/Utils/sticker-maker.d.ts +106 -0
  298. package/lib/Utils/sticker-maker.d.ts.map +1 -0
  299. package/lib/Utils/sticker-maker.js +240 -0
  300. package/lib/Utils/sticker-maker.js.map +1 -0
  301. package/lib/Utils/sync-action-utils.d.ts +19 -0
  302. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  303. package/lib/Utils/sync-action-utils.js +48 -0
  304. package/lib/Utils/sync-action-utils.js.map +1 -0
  305. package/lib/Utils/tc-token-utils.d.ts +12 -0
  306. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  307. package/lib/Utils/tc-token-utils.js +18 -0
  308. package/lib/Utils/tc-token-utils.js.map +1 -0
  309. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
  310. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  311. package/lib/Utils/use-multi-file-auth-state.js +121 -0
  312. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  313. package/lib/Utils/validate-connection.d.ts +11 -0
  314. package/lib/Utils/validate-connection.d.ts.map +1 -0
  315. package/lib/Utils/validate-connection.js +200 -0
  316. package/lib/Utils/validate-connection.js.map +1 -0
  317. package/lib/Utils/view-once.d.ts +172 -0
  318. package/lib/Utils/view-once.d.ts.map +1 -0
  319. package/lib/Utils/view-once.js +507 -0
  320. package/lib/Utils/view-once.js.map +1 -0
  321. package/lib/WABinary/constants.d.ts +28 -0
  322. package/lib/WABinary/constants.d.ts.map +1 -0
  323. package/lib/WABinary/constants.js +1301 -0
  324. package/lib/WABinary/constants.js.map +1 -0
  325. package/lib/WABinary/decode.d.ts +7 -0
  326. package/lib/WABinary/decode.d.ts.map +1 -0
  327. package/lib/WABinary/decode.js +262 -0
  328. package/lib/WABinary/decode.js.map +1 -0
  329. package/lib/WABinary/encode.d.ts +3 -0
  330. package/lib/WABinary/encode.d.ts.map +1 -0
  331. package/lib/WABinary/encode.js +220 -0
  332. package/lib/WABinary/encode.js.map +1 -0
  333. package/lib/WABinary/generic-utils.d.ts +15 -0
  334. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  335. package/lib/WABinary/generic-utils.js +113 -0
  336. package/lib/WABinary/generic-utils.js.map +1 -0
  337. package/lib/WABinary/index.d.ts +6 -0
  338. package/lib/WABinary/index.d.ts.map +1 -0
  339. package/lib/WABinary/index.js +6 -0
  340. package/lib/WABinary/index.js.map +1 -0
  341. package/lib/WABinary/jid-utils.d.ts +48 -0
  342. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  343. package/lib/WABinary/jid-utils.js +96 -0
  344. package/lib/WABinary/jid-utils.js.map +1 -0
  345. package/lib/WABinary/types.d.ts +19 -0
  346. package/lib/WABinary/types.d.ts.map +1 -0
  347. package/lib/WABinary/types.js +2 -0
  348. package/lib/WABinary/types.js.map +1 -0
  349. package/lib/WAM/BinaryInfo.d.ts +9 -0
  350. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  351. package/lib/WAM/BinaryInfo.js +10 -0
  352. package/lib/WAM/BinaryInfo.js.map +1 -0
  353. package/lib/WAM/constants.d.ts +40 -0
  354. package/lib/WAM/constants.d.ts.map +1 -0
  355. package/lib/WAM/constants.js +22853 -0
  356. package/lib/WAM/constants.js.map +1 -0
  357. package/lib/WAM/encode.d.ts +3 -0
  358. package/lib/WAM/encode.d.ts.map +1 -0
  359. package/lib/WAM/encode.js +150 -0
  360. package/lib/WAM/encode.js.map +1 -0
  361. package/lib/WAM/index.d.ts +4 -0
  362. package/lib/WAM/index.d.ts.map +1 -0
  363. package/lib/WAM/index.js +4 -0
  364. package/lib/WAM/index.js.map +1 -0
  365. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
  366. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  367. package/lib/WAUSync/Protocols/USyncContactProtocol.js +29 -0
  368. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  369. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  370. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  371. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +54 -0
  372. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  373. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  374. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  375. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
  376. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  377. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  378. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  379. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -0
  380. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  381. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
  382. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  383. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  384. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  385. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
  386. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  387. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  388. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  389. package/lib/WAUSync/Protocols/index.d.ts +5 -0
  390. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  391. package/lib/WAUSync/Protocols/index.js +5 -0
  392. package/lib/WAUSync/Protocols/index.js.map +1 -0
  393. package/lib/WAUSync/USyncQuery.d.ts +29 -0
  394. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  395. package/lib/WAUSync/USyncQuery.js +94 -0
  396. package/lib/WAUSync/USyncQuery.js.map +1 -0
  397. package/lib/WAUSync/USyncUser.d.ts +13 -0
  398. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  399. package/lib/WAUSync/USyncUser.js +23 -0
  400. package/lib/WAUSync/USyncUser.js.map +1 -0
  401. package/lib/WAUSync/index.d.ts +4 -0
  402. package/lib/WAUSync/index.d.ts.map +1 -0
  403. package/lib/WAUSync/index.js +4 -0
  404. package/lib/WAUSync/index.js.map +1 -0
  405. package/lib/index.d.ts +12 -0
  406. package/lib/index.d.ts.map +1 -0
  407. package/lib/index.js +11 -0
  408. package/lib/index.js.map +1 -0
  409. package/package.json +114 -0
@@ -0,0 +1,167 @@
1
+ /**
2
+ * LID & SenderPn Plotting Utilities untuk Baileys-Joss
3
+ *
4
+ * senderPn = nomor WA yang sedang digunakan (current session)
5
+ * LID = Linked ID yang dipakai WhatsApp untuk identifikasi
6
+ *
7
+ * @module jid-plotting
8
+ */
9
+ import type { AuthenticationCreds } from '../Types/index.js';
10
+ export interface JidInfo {
11
+ /** Full JID string */
12
+ jid: string;
13
+ /** User part (phone number or LID) */
14
+ user: string;
15
+ /** Server/domain part */
16
+ server: string;
17
+ /** Device number (0 = primary) */
18
+ device: number;
19
+ /** Agent (0 = user, 1 = agent) */
20
+ agent: number;
21
+ /** Is this a LID? */
22
+ isLid: boolean;
23
+ /** Is this a phone number (PN)? */
24
+ isPn: boolean;
25
+ /** Is this a hosted account? */
26
+ isHosted: boolean;
27
+ /** Is this a group? */
28
+ isGroup: boolean;
29
+ /** Is this a newsletter? */
30
+ isNewsletter: boolean;
31
+ /** Normalized user (without device) */
32
+ normalizedUser: string;
33
+ }
34
+ export interface PlottedJid {
35
+ /** Original JID yang diberikan */
36
+ original: string;
37
+ /** Phone number JID */
38
+ pn?: string;
39
+ /** LID */
40
+ lid?: string;
41
+ /** Resolved (primary identifier) */
42
+ primary: string;
43
+ /** Info lengkap */
44
+ info: JidInfo;
45
+ }
46
+ export interface SenderPnInfo {
47
+ /** Phone number dengan @s.whatsapp.net */
48
+ phoneJid: string;
49
+ /** Phone number tanpa domain */
50
+ phoneNumber: string;
51
+ /** LID jika tersedia */
52
+ lid?: string;
53
+ /** Device ID */
54
+ deviceId: number;
55
+ /** Nama yang tersimpan di account */
56
+ pushName?: string;
57
+ /** Platform (android/ios/web/etc) */
58
+ platform?: string;
59
+ }
60
+ /**
61
+ * Parse dan extract informasi lengkap dari JID
62
+ */
63
+ export declare const parseJid: (jid: string) => JidInfo | null;
64
+ /**
65
+ * Get senderPn (current session phone number) dari AuthenticationCreds
66
+ */
67
+ export declare const getSenderPn: (creds: AuthenticationCreds) => SenderPnInfo | null;
68
+ /**
69
+ * Get current sender info dari authState
70
+ * Ini function yang paling sering dipakai
71
+ */
72
+ export declare const getCurrentSenderInfo: (authState: {
73
+ creds: AuthenticationCreds;
74
+ }) => SenderPnInfo | null;
75
+ /**
76
+ * Check apakah JID adalah diri sendiri (current sender)
77
+ */
78
+ export declare const isSelf: (jid: string, senderPn: SenderPnInfo) => boolean;
79
+ /**
80
+ * Plot JID - convert antara PN dan LID
81
+ * Ini memerlukan LIDMappingStore untuk full functionality
82
+ */
83
+ export declare const plotJid: (jid: string) => PlottedJid | null;
84
+ /**
85
+ * Normalize berbagai format nomor ke JID yang valid
86
+ */
87
+ export declare const normalizePhoneToJid: (phone: string) => string;
88
+ /**
89
+ * Extract phone number dari JID (tanpa domain)
90
+ */
91
+ export declare const extractPhoneNumber: (jid: string) => string | null;
92
+ /**
93
+ * Buat formatted display untuk JID
94
+ */
95
+ export declare const formatJidDisplay: (jid: string, options?: {
96
+ showDevice?: boolean;
97
+ showType?: boolean;
98
+ }) => string;
99
+ /**
100
+ * Compare dua JID apakah merujuk ke user yang sama
101
+ */
102
+ export declare const isSameUser: (jid1: string, jid2: string) => boolean;
103
+ /**
104
+ * Get all JID variants dari satu nomor
105
+ * Useful untuk searching across different formats
106
+ */
107
+ export declare const getJidVariants: (phone: string) => string[];
108
+ /**
109
+ * Construct JID dengan device ID
110
+ */
111
+ export declare const constructJidWithDevice: (user: string, device: number, server?: string) => string;
112
+ /**
113
+ * Helper untuk mendapatkan remoteJid yang benar dari message
114
+ * Memperhitungkan group dan direct messages
115
+ */
116
+ export declare const getRemoteJidFromMessage: (msg: {
117
+ key: {
118
+ remoteJid?: string;
119
+ participant?: string;
120
+ };
121
+ }) => {
122
+ chatJid: string;
123
+ senderJid: string;
124
+ } | null;
125
+ /**
126
+ * Interface untuk plotting dengan external mapping
127
+ */
128
+ export interface JidPlotterWithMapping {
129
+ plotToLid: (pn: string) => Promise<string | null>;
130
+ plotToPn: (lid: string) => Promise<string | null>;
131
+ plotBidirectional: (jid: string) => Promise<PlottedJid>;
132
+ }
133
+ /**
134
+ * Create plotter yang bisa resolve LID <-> PN
135
+ * Membutuhkan getLIDForPN dan getPNForLID dari LIDMappingStore
136
+ */
137
+ export declare const createJidPlotter: (getLIDForPN: (pn: string) => Promise<string | null>, getPNForLID: (lid: string) => Promise<string | null>) => JidPlotterWithMapping;
138
+ declare const _default: {
139
+ parseJid: (jid: string) => JidInfo | null;
140
+ getSenderPn: (creds: AuthenticationCreds) => SenderPnInfo | null;
141
+ getCurrentSenderInfo: (authState: {
142
+ creds: AuthenticationCreds;
143
+ }) => SenderPnInfo | null;
144
+ isSelf: (jid: string, senderPn: SenderPnInfo) => boolean;
145
+ plotJid: (jid: string) => PlottedJid | null;
146
+ normalizePhoneToJid: (phone: string) => string;
147
+ extractPhoneNumber: (jid: string) => string | null;
148
+ formatJidDisplay: (jid: string, options?: {
149
+ showDevice?: boolean;
150
+ showType?: boolean;
151
+ }) => string;
152
+ isSameUser: (jid1: string, jid2: string) => boolean;
153
+ getJidVariants: (phone: string) => string[];
154
+ constructJidWithDevice: (user: string, device: number, server?: string) => string;
155
+ getRemoteJidFromMessage: (msg: {
156
+ key: {
157
+ remoteJid?: string;
158
+ participant?: string;
159
+ };
160
+ }) => {
161
+ chatJid: string;
162
+ senderJid: string;
163
+ } | null;
164
+ createJidPlotter: (getLIDForPN: (pn: string) => Promise<string | null>, getPNForLID: (lid: string) => Promise<string | null>) => JidPlotterWithMapping;
165
+ };
166
+ export default _default;
167
+ //# sourceMappingURL=jid-plotting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jid-plotting.d.ts","sourceRoot":"","sources":["../../src/Utils/jid-plotting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAMnD,MAAM,WAAW,OAAO;IACpB,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,mCAAmC;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAA;IACjB,uBAAuB;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAA;IACrB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,uBAAuB;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU;IACV,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB;IACnB,IAAI,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,OAAO,GAAG,IAyBhD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,mBAAmB,KAAG,YAAY,GAAG,IAiBvE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW;IAAE,KAAK,EAAE,mBAAmB,CAAA;CAAE,KAAG,YAAY,GAAG,IAE/F,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,UAAU,YAAY,KAAG,OAgB5D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,KAAG,UAAU,GAAG,IAoBlD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,MAWnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,IAIzD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,UAAU;IACpD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB,KAAG,MAkBH,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,OAQvD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MAAM,EAWpD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAC/B,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,SAAQ,MAAyB,KAClC,MAKF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,KAAK;IACzC,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACpD,KAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAa5C,CAAA;AAMD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACjD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACjD,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GACzB,aAAa,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EACnD,aAAa,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KACrD,qBAyCF,CAAA;;oBAzR6B,MAAM,KAAG,OAAO,GAAG,IAAI;yBA8BlB,mBAAmB,KAAG,YAAY,GAAG,IAAI;sCAuB5B;QAAE,KAAK,EAAE,mBAAmB,CAAA;KAAE,KAAG,YAAY,GAAG,IAAI;kBAOxE,MAAM,YAAY,YAAY,KAAG,OAAO;mBAsBvC,MAAM,KAAG,UAAU,GAAG,IAAI;iCAyBZ,MAAM,KAAG,MAAM;8BAgBlB,MAAM,KAAG,MAAM,GAAG,IAAI;4BASxB,MAAM,YAAY;QACpD,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;KACrB,KAAG,MAAM;uBAuBuB,MAAM,QAAQ,MAAM,KAAG,OAAO;4BAczB,MAAM,KAAG,MAAM,EAAE;mCAiB7C,MAAM,UACJ,MAAM,WACN,MAAM,KACf,MAAM;mCAWoC;QACzC,GAAG,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KACpD,KAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;oCAiChC,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,eACtC,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KACrD,qBAAqB;;AA2CxB,wBAcC"}
@@ -0,0 +1,266 @@
1
+ /**
2
+ * LID & SenderPn Plotting Utilities untuk Baileys-Joss
3
+ *
4
+ * senderPn = nomor WA yang sedang digunakan (current session)
5
+ * LID = Linked ID yang dipakai WhatsApp untuk identifikasi
6
+ *
7
+ * @module jid-plotting
8
+ */
9
+ import { jidDecode, jidEncode, jidNormalizedUser, isLidUser, isPnUser, isHostedLidUser, isHostedPnUser, S_WHATSAPP_NET } from '../WABinary/index.js';
10
+ // =====================================================
11
+ // CORE FUNCTIONS
12
+ // =====================================================
13
+ /**
14
+ * Parse dan extract informasi lengkap dari JID
15
+ */
16
+ export const parseJid = (jid) => {
17
+ if (!jid)
18
+ return null;
19
+ const decoded = jidDecode(jid);
20
+ if (!decoded)
21
+ return null;
22
+ const isLidVal = isLidUser(jid) || isHostedLidUser(jid);
23
+ const isPnVal = isPnUser(jid) || isHostedPnUser(jid);
24
+ const isGroup = jid.endsWith('@g.us');
25
+ const isNewsletter = jid.endsWith('@newsletter');
26
+ const isHostedVal = jid.includes('@hosted') || isHostedLidUser(jid) || isHostedPnUser(jid);
27
+ return {
28
+ jid,
29
+ user: decoded.user,
30
+ server: decoded.server,
31
+ device: decoded.device || 0,
32
+ agent: 0,
33
+ isLid: !!isLidVal,
34
+ isPn: !!isPnVal,
35
+ isHosted: !!isHostedVal,
36
+ isGroup,
37
+ isNewsletter,
38
+ normalizedUser: jidNormalizedUser(jid)
39
+ };
40
+ };
41
+ /**
42
+ * Get senderPn (current session phone number) dari AuthenticationCreds
43
+ */
44
+ export const getSenderPn = (creds) => {
45
+ if (!creds?.me?.id)
46
+ return null;
47
+ const decoded = jidDecode(creds.me.id);
48
+ if (!decoded)
49
+ return null;
50
+ const phoneNumber = decoded.user;
51
+ const phoneJid = `${phoneNumber}@s.whatsapp.net`;
52
+ return {
53
+ phoneJid,
54
+ phoneNumber,
55
+ lid: creds.me.lid || undefined,
56
+ deviceId: decoded.device || 0,
57
+ pushName: creds.me.name,
58
+ platform: creds.platform
59
+ };
60
+ };
61
+ /**
62
+ * Get current sender info dari authState
63
+ * Ini function yang paling sering dipakai
64
+ */
65
+ export const getCurrentSenderInfo = (authState) => {
66
+ return getSenderPn(authState.creds);
67
+ };
68
+ /**
69
+ * Check apakah JID adalah diri sendiri (current sender)
70
+ */
71
+ export const isSelf = (jid, senderPn) => {
72
+ if (!jid || !senderPn)
73
+ return false;
74
+ const normalizedJid = jidNormalizedUser(jid);
75
+ const normalizedSelf = jidNormalizedUser(senderPn.phoneJid);
76
+ // Check phone number match
77
+ if (normalizedJid === normalizedSelf)
78
+ return true;
79
+ // Check LID match if available
80
+ if (senderPn.lid) {
81
+ const normalizedLid = jidNormalizedUser(senderPn.lid);
82
+ if (normalizedJid === normalizedLid)
83
+ return true;
84
+ }
85
+ return false;
86
+ };
87
+ /**
88
+ * Plot JID - convert antara PN dan LID
89
+ * Ini memerlukan LIDMappingStore untuk full functionality
90
+ */
91
+ export const plotJid = (jid) => {
92
+ const info = parseJid(jid);
93
+ if (!info)
94
+ return null;
95
+ const result = {
96
+ original: jid,
97
+ primary: jid,
98
+ info
99
+ };
100
+ // Determine what type this is
101
+ if (info.isPn) {
102
+ result.pn = info.normalizedUser;
103
+ result.primary = info.normalizedUser;
104
+ }
105
+ else if (info.isLid) {
106
+ result.lid = info.normalizedUser;
107
+ result.primary = info.normalizedUser;
108
+ }
109
+ return result;
110
+ };
111
+ /**
112
+ * Normalize berbagai format nomor ke JID yang valid
113
+ */
114
+ export const normalizePhoneToJid = (phone) => {
115
+ // Hapus karakter non-numeric kecuali @
116
+ let cleaned = phone.replace(/[^\d@]/g, '');
117
+ // Jika sudah ada domain, return as-is setelah normalize
118
+ if (phone.includes('@')) {
119
+ return jidNormalizedUser(phone);
120
+ }
121
+ // Tambah domain
122
+ return `${cleaned}@s.whatsapp.net`;
123
+ };
124
+ /**
125
+ * Extract phone number dari JID (tanpa domain)
126
+ */
127
+ export const extractPhoneNumber = (jid) => {
128
+ const info = parseJid(jid);
129
+ if (!info || !info.isPn)
130
+ return null;
131
+ return info.user;
132
+ };
133
+ /**
134
+ * Buat formatted display untuk JID
135
+ */
136
+ export const formatJidDisplay = (jid, options) => {
137
+ const info = parseJid(jid);
138
+ if (!info)
139
+ return jid;
140
+ let display = info.user;
141
+ if (options?.showDevice && info.device > 0) {
142
+ display += `:${info.device}`;
143
+ }
144
+ if (options?.showType) {
145
+ if (info.isLid)
146
+ display += ' (LID)';
147
+ else if (info.isGroup)
148
+ display += ' (Group)';
149
+ else if (info.isNewsletter)
150
+ display += ' (Newsletter)';
151
+ else if (info.isPn)
152
+ display += ' (PN)';
153
+ }
154
+ return display;
155
+ };
156
+ /**
157
+ * Compare dua JID apakah merujuk ke user yang sama
158
+ */
159
+ export const isSameUser = (jid1, jid2) => {
160
+ const info1 = parseJid(jid1);
161
+ const info2 = parseJid(jid2);
162
+ if (!info1 || !info2)
163
+ return false;
164
+ // Normalize dan compare
165
+ return info1.normalizedUser === info2.normalizedUser;
166
+ };
167
+ /**
168
+ * Get all JID variants dari satu nomor
169
+ * Useful untuk searching across different formats
170
+ */
171
+ export const getJidVariants = (phone) => {
172
+ const cleaned = phone.replace(/[^\d]/g, '');
173
+ return [
174
+ `${cleaned}@s.whatsapp.net`,
175
+ `${cleaned}:0@s.whatsapp.net`,
176
+ `${cleaned}@lid`,
177
+ // Dengan device IDs
178
+ `${cleaned}:1@s.whatsapp.net`,
179
+ `${cleaned}:2@s.whatsapp.net`,
180
+ ];
181
+ };
182
+ /**
183
+ * Construct JID dengan device ID
184
+ */
185
+ export const constructJidWithDevice = (user, device, server = 's.whatsapp.net') => {
186
+ if (device === 0) {
187
+ return `${user}@${server}`;
188
+ }
189
+ return `${user}:${device}@${server}`;
190
+ };
191
+ /**
192
+ * Helper untuk mendapatkan remoteJid yang benar dari message
193
+ * Memperhitungkan group dan direct messages
194
+ */
195
+ export const getRemoteJidFromMessage = (msg) => {
196
+ if (!msg?.key?.remoteJid)
197
+ return null;
198
+ const chatJid = msg.key.remoteJid;
199
+ const isGroupMsg = chatJid.endsWith('@g.us');
200
+ // For group messages, sender is in participant
201
+ // For direct messages, sender is remoteJid
202
+ const senderJid = isGroupMsg
203
+ ? (msg.key.participant || chatJid)
204
+ : chatJid;
205
+ return { chatJid, senderJid };
206
+ };
207
+ /**
208
+ * Create plotter yang bisa resolve LID <-> PN
209
+ * Membutuhkan getLIDForPN dan getPNForLID dari LIDMappingStore
210
+ */
211
+ export const createJidPlotter = (getLIDForPN, getPNForLID) => {
212
+ return {
213
+ plotToLid: async (pn) => {
214
+ return await getLIDForPN(pn);
215
+ },
216
+ plotToPn: async (lid) => {
217
+ return await getPNForLID(lid);
218
+ },
219
+ plotBidirectional: async (jid) => {
220
+ const info = parseJid(jid);
221
+ if (!info) {
222
+ return {
223
+ original: jid,
224
+ primary: jid,
225
+ info: parseJid(jid)
226
+ };
227
+ }
228
+ const result = {
229
+ original: jid,
230
+ primary: jid,
231
+ info
232
+ };
233
+ if (info.isPn) {
234
+ result.pn = info.normalizedUser;
235
+ const lid = await getLIDForPN(jid);
236
+ if (lid)
237
+ result.lid = lid;
238
+ result.primary = info.normalizedUser;
239
+ }
240
+ else if (info.isLid) {
241
+ result.lid = info.normalizedUser;
242
+ const pn = await getPNForLID(jid);
243
+ if (pn)
244
+ result.pn = pn;
245
+ result.primary = result.pn || info.normalizedUser;
246
+ }
247
+ return result;
248
+ }
249
+ };
250
+ };
251
+ export default {
252
+ parseJid,
253
+ getSenderPn,
254
+ getCurrentSenderInfo,
255
+ isSelf,
256
+ plotJid,
257
+ normalizePhoneToJid,
258
+ extractPhoneNumber,
259
+ formatJidDisplay,
260
+ isSameUser,
261
+ getJidVariants,
262
+ constructJidWithDevice,
263
+ getRemoteJidFromMessage,
264
+ createJidPlotter
265
+ };
266
+ //# sourceMappingURL=jid-plotting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jid-plotting.js","sourceRoot":"","sources":["../../src/Utils/jid-plotting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { WAMediaUploadFunction, WAUrlInfo } from '../Types/index.js';
2
+ import type { ILogger } from './logger.js';
3
+ export type URLGenerationOptions = {
4
+ thumbnailWidth: number;
5
+ fetchOpts: {
6
+ /** Timeout in ms */
7
+ timeout: number;
8
+ proxyUrl?: string;
9
+ headers?: HeadersInit;
10
+ };
11
+ uploadImage?: WAMediaUploadFunction;
12
+ logger?: ILogger;
13
+ };
14
+ /**
15
+ * Given a piece of text, checks for any URL present, generates link preview for the same and returns it
16
+ * Return undefined if the fetch failed or no URL was found
17
+ * @param text first matched URL in text
18
+ * @returns the URL info required to generate link preview
19
+ */
20
+ export declare const getUrlInfo: (text: string, opts?: URLGenerationOptions) => Promise<WAUrlInfo | undefined>;
21
+ //# sourceMappingURL=link-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-preview.d.ts","sourceRoot":"","sources":["../../src/Utils/link-preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAavC,MAAM,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE;QACV,oBAAoB;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,WAAW,CAAA;KACrB,CAAA;IACD,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GACtB,MAAM,MAAM,EACZ,OAAM,oBAGL,KACC,OAAO,CAAC,SAAS,GAAG,SAAS,CAwE/B,CAAA"}
@@ -0,0 +1,85 @@
1
+ import { prepareWAMessageMedia } from './messages.js';
2
+ import { extractImageThumb, getHttpStream } from './messages-media.js';
3
+ const THUMBNAIL_WIDTH_PX = 192;
4
+ /** Fetches an image and generates a thumbnail for it */
5
+ const getCompressedJpegThumbnail = async (url, { thumbnailWidth, fetchOpts }) => {
6
+ const stream = await getHttpStream(url, fetchOpts);
7
+ const result = await extractImageThumb(stream, thumbnailWidth);
8
+ return result;
9
+ };
10
+ /**
11
+ * Given a piece of text, checks for any URL present, generates link preview for the same and returns it
12
+ * Return undefined if the fetch failed or no URL was found
13
+ * @param text first matched URL in text
14
+ * @returns the URL info required to generate link preview
15
+ */
16
+ export const getUrlInfo = async (text, opts = {
17
+ thumbnailWidth: THUMBNAIL_WIDTH_PX,
18
+ fetchOpts: { timeout: 3000 }
19
+ }) => {
20
+ try {
21
+ // retries
22
+ const retries = 0;
23
+ const maxRetry = 5;
24
+ const { getLinkPreview } = await import('link-preview-js');
25
+ let previewLink = text;
26
+ if (!text.startsWith('https://') && !text.startsWith('http://')) {
27
+ previewLink = 'https://' + previewLink;
28
+ }
29
+ const info = await getLinkPreview(previewLink, {
30
+ ...opts.fetchOpts,
31
+ followRedirects: 'follow',
32
+ handleRedirects: (baseURL, forwardedURL) => {
33
+ const urlObj = new URL(baseURL);
34
+ const forwardedURLObj = new URL(forwardedURL);
35
+ if (retries >= maxRetry) {
36
+ return false;
37
+ }
38
+ if (forwardedURLObj.hostname === urlObj.hostname ||
39
+ forwardedURLObj.hostname === 'www.' + urlObj.hostname ||
40
+ 'www.' + forwardedURLObj.hostname === urlObj.hostname) {
41
+ retries + 1;
42
+ return true;
43
+ }
44
+ else {
45
+ return false;
46
+ }
47
+ },
48
+ headers: opts.fetchOpts?.headers
49
+ });
50
+ if (info && 'title' in info && info.title) {
51
+ const [image] = info.images;
52
+ const urlInfo = {
53
+ 'canonical-url': info.url,
54
+ 'matched-text': text,
55
+ title: info.title,
56
+ description: info.description,
57
+ originalThumbnailUrl: image
58
+ };
59
+ if (opts.uploadImage) {
60
+ const { imageMessage } = await prepareWAMessageMedia({ image: { url: image } }, {
61
+ upload: opts.uploadImage,
62
+ mediaTypeOverride: 'thumbnail-link',
63
+ options: opts.fetchOpts
64
+ });
65
+ urlInfo.jpegThumbnail = imageMessage?.jpegThumbnail ? Buffer.from(imageMessage.jpegThumbnail) : undefined;
66
+ urlInfo.highQualityThumbnail = imageMessage || undefined;
67
+ }
68
+ else {
69
+ try {
70
+ urlInfo.jpegThumbnail = image ? (await getCompressedJpegThumbnail(image, opts)).buffer : undefined;
71
+ }
72
+ catch (error) {
73
+ opts.logger?.debug({ err: error.stack, url: previewLink }, 'error in generating thumbnail');
74
+ }
75
+ }
76
+ return urlInfo;
77
+ }
78
+ }
79
+ catch (error) {
80
+ if (!error.message.includes('receive a valid')) {
81
+ throw error;
82
+ }
83
+ }
84
+ };
85
+ //# sourceMappingURL=link-preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-preview.js","sourceRoot":"","sources":["../../src/Utils/link-preview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import P from 'pino';
2
+ export interface ILogger {
3
+ level: string;
4
+ child(obj: Record<string, unknown>): ILogger;
5
+ trace(obj: unknown, msg?: string): void;
6
+ debug(obj: unknown, msg?: string): void;
7
+ info(obj: unknown, msg?: string): void;
8
+ warn(obj: unknown, msg?: string): void;
9
+ error(obj: unknown, msg?: string): void;
10
+ }
11
+ declare const _default: P.Logger<never, boolean>;
12
+ export default _default;
13
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/Utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,MAAM,CAAA;AAEpB,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC5C,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;;AAED,wBAAyE"}
@@ -0,0 +1,3 @@
1
+ import P from 'pino';
2
+ export default P({ timestamp: () => `,"time":"${new Date().toJSON()}"` });
3
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/Utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,MAAM,CAAA;AAYpB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ declare class LTHash {
2
+ salt: string;
3
+ constructor(e: string);
4
+ add(e: ArrayBuffer, t: ArrayBuffer[]): Promise<ArrayBuffer>;
5
+ subtract(e: ArrayBuffer, t: ArrayBuffer[]): Promise<ArrayBuffer>;
6
+ subtractThenAdd(e: ArrayBuffer, addList: ArrayBuffer[], subtractList: ArrayBuffer[]): Promise<ArrayBuffer>;
7
+ private _addSingle;
8
+ private _subtractSingle;
9
+ private performPointwiseWithOverflow;
10
+ }
11
+ export declare const LT_HASH_ANTI_TAMPERING: LTHash;
12
+ export {};
13
+ //# sourceMappingURL=lt-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lt-hash.d.ts","sourceRoot":"","sources":["../../src/Utils/lt-hash.ts"],"names":[],"mappings":"AASA,cAAM,MAAM;IACX,IAAI,EAAE,MAAM,CAAA;gBAEA,CAAC,EAAE,MAAM;IAIf,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAQhE,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YAKlG,UAAU;YAKV,eAAe;IAK7B,OAAO,CAAC,4BAA4B;CAgBpC;AACD,eAAO,MAAM,sBAAsB,QAAyC,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { hkdf } from './crypto.js';
2
+ /**
3
+ * LT Hash is a summation based hash algorithm that maintains the integrity of a piece of data
4
+ * over a series of mutations. You can add/remove mutations and it'll return a hash equal to
5
+ * if the same series of mutations was made sequentially.
6
+ */
7
+ const o = 128;
8
+ class LTHash {
9
+ constructor(e) {
10
+ this.salt = e;
11
+ }
12
+ async add(e, t) {
13
+ for (const item of t) {
14
+ e = await this._addSingle(e, item);
15
+ }
16
+ return e;
17
+ }
18
+ async subtract(e, t) {
19
+ for (const item of t) {
20
+ e = await this._subtractSingle(e, item);
21
+ }
22
+ return e;
23
+ }
24
+ async subtractThenAdd(e, addList, subtractList) {
25
+ const subtracted = await this.subtract(e, subtractList);
26
+ return this.add(subtracted, addList);
27
+ }
28
+ async _addSingle(e, t) {
29
+ const derived = new Uint8Array(await hkdf(Buffer.from(t), o, { info: this.salt })).buffer;
30
+ return this.performPointwiseWithOverflow(e, derived, (a, b) => a + b);
31
+ }
32
+ async _subtractSingle(e, t) {
33
+ const derived = new Uint8Array(await hkdf(Buffer.from(t), o, { info: this.salt })).buffer;
34
+ return this.performPointwiseWithOverflow(e, derived, (a, b) => a - b);
35
+ }
36
+ performPointwiseWithOverflow(e, t, op) {
37
+ const n = new DataView(e);
38
+ const i = new DataView(t);
39
+ const out = new ArrayBuffer(n.byteLength);
40
+ const s = new DataView(out);
41
+ for (let offset = 0; offset < n.byteLength; offset += 2) {
42
+ s.setUint16(offset, op(n.getUint16(offset, true), i.getUint16(offset, true)), true);
43
+ }
44
+ return out;
45
+ }
46
+ }
47
+ export const LT_HASH_ANTI_TAMPERING = new LTHash('WhatsApp Patch Integrity');
48
+ //# sourceMappingURL=lt-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lt-hash.js","sourceRoot":"","sources":["../../src/Utils/lt-hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAE/B;;;;GAIG;AACH,MAAM,CAAC,GAAG,GAAG,CAAA;AAEb,MAAM,MAAM;IAGX,YAAY,CAAS;QACpB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,CAAc,EAAE,CAAgB;QACzC,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;YACtB,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,CAAC,CAAA;IACT,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,CAAc,EAAE,CAAgB;QAC9C,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;YACtB,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACxC,CAAC;QAED,OAAO,CAAC,CAAA;IACT,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,CAAc,EAAE,OAAsB,EAAE,YAA2B;QACxF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,CAAc,EAAE,CAAc;QACtD,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;QACzF,OAAO,IAAI,CAAC,4BAA4B,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACtE,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,CAAc,EAAE,CAAc;QAC3D,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;QACzF,OAAO,IAAI,CAAC,4BAA4B,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACtE,CAAC;IAEO,4BAA4B,CACnC,CAAc,EACd,CAAc,EACd,EAAoC;QAEpC,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;QAE3B,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;YACzD,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACpF,CAAC;QAED,OAAO,GAAG,CAAA;IACX,CAAC;CACD;AACD,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAA"}