@queenanya/baileys 7.3.7 → 7.4.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 (390) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +931 -0
  3. package/WAProto/GenerateStatics.sh +4 -0
  4. package/WAProto/WAProto.proto +3344 -0
  5. package/WAProto/index.d.ts +37016 -0
  6. package/WAProto/index.js +101044 -0
  7. package/WASignalGroup/GroupProtocol.js +1697 -0
  8. package/WASignalGroup/ciphertext_message.js +16 -0
  9. package/WASignalGroup/group_cipher.js +120 -0
  10. package/WASignalGroup/group_session_builder.js +46 -0
  11. package/WASignalGroup/index.js +5 -0
  12. package/WASignalGroup/keyhelper.js +21 -0
  13. package/WASignalGroup/protobufs.js +3 -0
  14. package/WASignalGroup/queue_job.js +69 -0
  15. package/WASignalGroup/sender_chain_key.js +50 -0
  16. package/WASignalGroup/sender_key_distribution_message.js +78 -0
  17. package/WASignalGroup/sender_key_message.js +92 -0
  18. package/WASignalGroup/sender_key_name.js +70 -0
  19. package/WASignalGroup/sender_key_record.js +56 -0
  20. package/WASignalGroup/sender_key_state.js +129 -0
  21. package/WASignalGroup/sender_message_key.js +39 -0
  22. package/lib/Defaults/baileys-version.json +3 -0
  23. package/lib/Defaults/index.d.ts +53 -0
  24. package/lib/Defaults/index.js +106 -0
  25. package/lib/Signal/libsignal.d.ts +3 -0
  26. package/lib/Signal/libsignal.js +152 -0
  27. package/lib/Socket/Client/index.d.ts +2 -0
  28. package/lib/Socket/Client/index.js +18 -0
  29. package/lib/Socket/Client/types.d.ts +17 -0
  30. package/lib/Socket/Client/types.js +13 -0
  31. package/lib/Socket/Client/websocket.d.ts +12 -0
  32. package/lib/Socket/Client/websocket.js +62 -0
  33. package/lib/Socket/business.d.ts +177 -0
  34. package/lib/Socket/business.js +260 -0
  35. package/lib/Socket/chats.d.ts +91 -0
  36. package/lib/Socket/chats.js +949 -0
  37. package/lib/Socket/groups.d.ts +131 -0
  38. package/lib/Socket/groups.js +314 -0
  39. package/lib/Socket/index.d.ts +177 -0
  40. package/lib/Socket/index.js +10 -0
  41. package/lib/Socket/messages-recv.d.ts +164 -0
  42. package/lib/Socket/messages-recv.js +918 -0
  43. package/lib/Socket/messages-send.d.ts +157 -0
  44. package/lib/Socket/messages-send.js +794 -0
  45. package/lib/Socket/newsletter.d.ts +143 -0
  46. package/lib/Socket/newsletter.js +249 -0
  47. package/lib/Socket/socket.d.ts +45 -0
  48. package/lib/Socket/socket.js +615 -0
  49. package/lib/Store/index.d.ts +3 -0
  50. package/lib/Store/index.js +10 -0
  51. package/lib/Store/make-cache-manager-store.d.ts +14 -0
  52. package/lib/Store/make-cache-manager-store.js +83 -0
  53. package/lib/Store/make-in-memory-store.d.ts +118 -0
  54. package/lib/Store/make-in-memory-store.js +420 -0
  55. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  56. package/lib/Store/make-ordered-dictionary.js +81 -0
  57. package/lib/Store/object-repository.d.ts +10 -0
  58. package/lib/Store/object-repository.js +27 -0
  59. package/lib/Types/Auth.d.ts +105 -0
  60. package/lib/Types/Auth.js +2 -0
  61. package/lib/Types/Call.d.ts +13 -0
  62. package/lib/Types/Call.js +2 -0
  63. package/lib/Types/Chat.d.ts +107 -0
  64. package/lib/Types/Chat.js +4 -0
  65. package/lib/Types/Contact.d.ts +19 -0
  66. package/lib/Types/Contact.js +2 -0
  67. package/lib/Types/Events.d.ts +199 -0
  68. package/lib/Types/Events.js +2 -0
  69. package/lib/Types/GroupMetadata.d.ts +56 -0
  70. package/lib/Types/GroupMetadata.js +2 -0
  71. package/lib/Types/Label.d.ts +46 -0
  72. package/lib/Types/Label.js +27 -0
  73. package/lib/Types/LabelAssociation.d.ts +29 -0
  74. package/lib/Types/LabelAssociation.js +9 -0
  75. package/lib/Types/Message.d.ts +280 -0
  76. package/lib/Types/Message.js +9 -0
  77. package/lib/Types/Newsletter.d.ts +79 -0
  78. package/lib/Types/Newsletter.js +18 -0
  79. package/lib/Types/Product.d.ts +78 -0
  80. package/lib/Types/Product.js +2 -0
  81. package/lib/Types/Signal.d.ts +57 -0
  82. package/lib/Types/Signal.js +2 -0
  83. package/lib/Types/Socket.d.ts +118 -0
  84. package/lib/Types/Socket.js +2 -0
  85. package/lib/Types/State.d.ts +27 -0
  86. package/lib/Types/State.js +2 -0
  87. package/lib/Types/index.d.ts +65 -0
  88. package/lib/Types/index.js +42 -0
  89. package/lib/Utils/auth-utils.d.ts +18 -0
  90. package/lib/Utils/auth-utils.js +200 -0
  91. package/lib/Utils/baileys-event-stream.d.ts +16 -0
  92. package/lib/Utils/baileys-event-stream.js +63 -0
  93. package/lib/Utils/business.d.ts +22 -0
  94. package/lib/Utils/business.js +234 -0
  95. package/lib/Utils/chat-utils.d.ts +72 -0
  96. package/lib/Utils/chat-utils.js +745 -0
  97. package/lib/Utils/crypto.d.ts +42 -0
  98. package/lib/Utils/crypto.js +153 -0
  99. package/lib/Utils/decode-wa-message.d.ts +20 -0
  100. package/lib/Utils/decode-wa-message.js +218 -0
  101. package/lib/Utils/event-buffer.d.ts +35 -0
  102. package/lib/Utils/event-buffer.js +520 -0
  103. package/lib/Utils/generics.d.ts +119 -0
  104. package/lib/Utils/generics.js +467 -0
  105. package/lib/Utils/history.d.ts +19 -0
  106. package/lib/Utils/history.js +94 -0
  107. package/lib/Utils/index.d.ts +17 -0
  108. package/lib/Utils/index.js +33 -0
  109. package/lib/Utils/link-preview.d.ts +21 -0
  110. package/lib/Utils/link-preview.js +116 -0
  111. package/lib/Utils/logger.d.ts +2 -0
  112. package/lib/Utils/logger.js +7 -0
  113. package/lib/Utils/lt-hash.d.ts +12 -0
  114. package/lib/Utils/lt-hash.js +51 -0
  115. package/lib/Utils/make-mutex.d.ts +7 -0
  116. package/lib/Utils/make-mutex.js +44 -0
  117. package/lib/Utils/messages-media.d.ts +131 -0
  118. package/lib/Utils/messages-media.js +786 -0
  119. package/lib/Utils/messages.d.ts +78 -0
  120. package/lib/Utils/messages.js +767 -0
  121. package/lib/Utils/noise-handler.d.ts +21 -0
  122. package/lib/Utils/noise-handler.js +150 -0
  123. package/lib/Utils/process-message.d.ts +42 -0
  124. package/lib/Utils/process-message.js +355 -0
  125. package/lib/Utils/signal.d.ts +32 -0
  126. package/lib/Utils/signal.js +158 -0
  127. package/lib/Utils/use-multi-file-auth-state.d.ts +12 -0
  128. package/lib/Utils/use-multi-file-auth-state.js +94 -0
  129. package/lib/Utils/validate-connection.d.ts +10 -0
  130. package/lib/Utils/validate-connection.js +171 -0
  131. package/lib/WABinary/constants.d.ts +27 -0
  132. package/lib/WABinary/constants.js +40 -0
  133. package/lib/WABinary/decode.d.ts +8 -0
  134. package/lib/WABinary/decode.js +254 -0
  135. package/lib/WABinary/encode.d.ts +2 -0
  136. package/lib/WABinary/encode.js +230 -0
  137. package/lib/WABinary/generic-utils.d.ts +16 -0
  138. package/lib/WABinary/generic-utils.js +110 -0
  139. package/lib/WABinary/index.d.ts +5 -0
  140. package/lib/WABinary/index.js +21 -0
  141. package/lib/WABinary/jid-utils.d.ts +31 -0
  142. package/lib/WABinary/jid-utils.js +62 -0
  143. package/lib/WABinary/types.d.ts +18 -0
  144. package/lib/WABinary/types.js +2 -0
  145. package/lib/WAM/BinaryInfo.d.ts +18 -0
  146. package/lib/WAM/BinaryInfo.js +13 -0
  147. package/lib/WAM/constants.d.ts +39 -0
  148. package/lib/WAM/constants.js +15350 -0
  149. package/lib/WAM/encode.d.ts +4 -0
  150. package/lib/WAM/encode.js +155 -0
  151. package/lib/WAM/index.d.ts +3 -0
  152. package/lib/WAM/index.js +19 -0
  153. package/lib/index.d.ts +11 -0
  154. package/lib/index.js +30 -0
  155. package/package.json +101 -2
  156. package/.anya-md/.replit +0 -2
  157. package/.anya-md/.temp/.temp +0 -1
  158. package/.anya-md/Dockerfile +0 -16
  159. package/.anya-md/LICENCE +0 -674
  160. package/.anya-md/README.md +0 -301
  161. package/.anya-md/app.json +0 -81
  162. package/.anya-md/config.js +0 -74
  163. package/.anya-md/heroku.yml +0 -5
  164. package/.anya-md/index.js +0 -47
  165. package/.anya-md/koyeb.yaml +0 -14
  166. package/.anya-md/lib/.dev.js +0 -47
  167. package/.anya-md/lib/Assets/aliveMedia.mp4 +0 -0
  168. package/.anya-md/lib/Assets/goodbyeBG.jpg +0 -0
  169. package/.anya-md/lib/Assets/image_1.jpg +0 -0
  170. package/.anya-md/lib/Assets/image_2.jpg +0 -0
  171. package/.anya-md/lib/Assets/menuMedia.mp4 +0 -0
  172. package/.anya-md/lib/Assets/ownerMentionMp3.mp3 +0 -0
  173. package/.anya-md/lib/Assets/port.html +0 -36
  174. package/.anya-md/lib/Assets/reaction/angry/angry108202410.jpeg +0 -0
  175. package/.anya-md/lib/Assets/reaction/angry/angry108202412.jpeg +0 -0
  176. package/.anya-md/lib/Assets/reaction/angry/angry108202413.jpeg +0 -0
  177. package/.anya-md/lib/Assets/reaction/angry/angry108202414.jpeg +0 -0
  178. package/.anya-md/lib/Assets/reaction/angry/angry108202415.jpeg +0 -0
  179. package/.anya-md/lib/Assets/reaction/angry/angry108202416.jpeg +0 -0
  180. package/.anya-md/lib/Assets/reaction/angry/angry108202417.jpeg +0 -0
  181. package/.anya-md/lib/Assets/reaction/angry/angry108202418.jpeg +0 -0
  182. package/.anya-md/lib/Assets/reaction/angry/angry108202419.jpeg +0 -0
  183. package/.anya-md/lib/Assets/reaction/angry/angry108202420.jpeg +0 -0
  184. package/.anya-md/lib/Assets/reaction/angry/angry108202421.jpeg +0 -0
  185. package/.anya-md/lib/Assets/reaction/angry/angry108202423.jpeg +0 -0
  186. package/.anya-md/lib/Assets/reaction/angry/angry108202425.jpeg +0 -0
  187. package/.anya-md/lib/Assets/reaction/angry/angry108202426.jpeg +0 -0
  188. package/.anya-md/lib/Assets/reaction/angry/angry108202427.jpeg +0 -0
  189. package/.anya-md/lib/Assets/reaction/angry/angry108202428.jpeg +0 -0
  190. package/.anya-md/lib/Assets/reaction/angry/angry108202429.jpeg +0 -0
  191. package/.anya-md/lib/Assets/reaction/angry/angry108202430.jpeg +0 -0
  192. package/.anya-md/lib/Assets/reaction/angry/angry108202431.jpeg +0 -0
  193. package/.anya-md/lib/Assets/reaction/angry/angry108202469.jpeg +0 -0
  194. package/.anya-md/lib/Assets/reaction/angry/angry10820249.jpeg +0 -0
  195. package/.anya-md/lib/Assets/reaction/angry/angry11.mp4 +0 -0
  196. package/.anya-md/lib/Assets/reaction/angry/angry12.mp4 +0 -0
  197. package/.anya-md/lib/Assets/reaction/angry/angry14.jpg +0 -0
  198. package/.anya-md/lib/Assets/reaction/angry/angry2.mp4 +0 -0
  199. package/.anya-md/lib/Assets/reaction/angry/angry3.mp4 +0 -0
  200. package/.anya-md/lib/Assets/reaction/angry/angry5.jpg +0 -0
  201. package/.anya-md/lib/Assets/reaction/angry/angry6.png +0 -0
  202. package/.anya-md/lib/Assets/reaction/angry/angry8.png +0 -0
  203. package/.anya-md/lib/Assets/reaction/angry/angry9.jpg +0 -0
  204. package/.anya-md/lib/Assets/reaction/confused/confused1.png +0 -0
  205. package/.anya-md/lib/Assets/reaction/confused/confused2.jpg +0 -0
  206. package/.anya-md/lib/Assets/reaction/confused/confused3.jpg +0 -0
  207. package/.anya-md/lib/Assets/reaction/confused/confused4.mp4 +0 -0
  208. package/.anya-md/lib/Assets/reaction/confused/confused5.jpg +0 -0
  209. package/.anya-md/lib/Assets/reaction/confused/confused6.webp +0 -0
  210. package/.anya-md/lib/Assets/reaction/confused/confused7.png +0 -0
  211. package/.anya-md/lib/Assets/reaction/confused/confused8.jpg +0 -0
  212. package/.anya-md/lib/Assets/reaction/cry/cry1.jpeg +0 -0
  213. package/.anya-md/lib/Assets/reaction/cry/cry12.jpeg +0 -0
  214. package/.anya-md/lib/Assets/reaction/cry/cry13.jpeg +0 -0
  215. package/.anya-md/lib/Assets/reaction/cry/cry14.jpeg +0 -0
  216. package/.anya-md/lib/Assets/reaction/cry/cry15.jpeg +0 -0
  217. package/.anya-md/lib/Assets/reaction/cry/cry16.jpeg +0 -0
  218. package/.anya-md/lib/Assets/reaction/cry/cry17.jpeg +0 -0
  219. package/.anya-md/lib/Assets/reaction/cry/cry18.jpeg +0 -0
  220. package/.anya-md/lib/Assets/reaction/cry/cry19.jpeg +0 -0
  221. package/.anya-md/lib/Assets/reaction/cry/cry22.jpeg +0 -0
  222. package/.anya-md/lib/Assets/reaction/cry/cry23.jpeg +0 -0
  223. package/.anya-md/lib/Assets/reaction/cry/cry5.jpeg +0 -0
  224. package/.anya-md/lib/Assets/reaction/cry/cry9.jpeg +0 -0
  225. package/.anya-md/lib/Assets/reaction/happy/happyrect1.jpeg +0 -0
  226. package/.anya-md/lib/Assets/reaction/no/_pika +0 -1
  227. package/.anya-md/lib/Assets/reaction/no/no1.jpg +0 -0
  228. package/.anya-md/lib/Assets/reaction/no/no2.png +0 -0
  229. package/.anya-md/lib/Assets/reaction/no/no3.jpg +0 -0
  230. package/.anya-md/lib/Assets/reaction/no/no4.png +0 -0
  231. package/.anya-md/lib/Assets/reaction/no/no5.png +0 -0
  232. package/.anya-md/lib/Assets/reaction/no/no6.jpg +0 -0
  233. package/.anya-md/lib/Assets/reaction/no/no7.jpg +0 -0
  234. package/.anya-md/lib/Assets/reaction/no/no8.jpg +0 -0
  235. package/.anya-md/lib/Assets/reaction/no/no9.mp4 +0 -0
  236. package/.anya-md/lib/Assets/reaction/smug/059e1bdc-e62a-4943-b85e-ea372709f6a7.jpeg +0 -0
  237. package/.anya-md/lib/Assets/reaction/smug/8fda90b3-bc98-4d24-ac10-4402c4e7be93.jpeg +0 -0
  238. package/.anya-md/lib/Assets/reaction/smug/Aqua.jpeg +0 -0
  239. package/.anya-md/lib/Assets/reaction/smug/Karasuma Chitose.jpeg +0 -0
  240. package/.anya-md/lib/Assets/reaction/smug/Smug Face - Fibel Sistine.jpeg +0 -0
  241. package/.anya-md/lib/Assets/reaction/smug/bf8d78ec-4fcc-4ff7-b3c3-91a0c5f22567.jpeg +0 -0
  242. package/.anya-md/lib/Assets/reaction/smug//330/247/330/255/331/204/330/247/331/213 /330/247/330/250/330/252/330/263/330/247/331/205/331/207 /330/264/330/261/331/212/330/261/331/207/360/237/230/255/360/237/230/255/360/237/230/255.jpeg +0 -0
  243. package/.anya-md/lib/Assets/verifyIMG.jpg +0 -0
  244. package/.anya-md/lib/Assets/welcomeGIF.mp4 +0 -0
  245. package/.anya-md/lib/database/categories.json +0 -77
  246. package/.anya-md/lib/database/cooldown.json +0 -1
  247. package/.anya-md/lib/database/disk/main.js +0 -43
  248. package/.anya-md/lib/database/emoji.js +0 -23
  249. package/.anya-md/lib/database/games/quiz/Questions.js +0 -44
  250. package/.anya-md/lib/database/games/quiz/Quiz.js +0 -169
  251. package/.anya-md/lib/database/games/quiz/database.json +0 -1
  252. package/.anya-md/lib/database/games/quiz/index.js +0 -7
  253. package/.anya-md/lib/database/json/.pika.js +0 -3
  254. package/.anya-md/lib/database/json/animeQuotes.json +0 -51062
  255. package/.anya-md/lib/database/json/bioQuotes.json +0 -5744
  256. package/.anya-md/lib/database/json/cogan.json +0 -102
  257. package/.anya-md/lib/database/json/countries.json +0 -21210
  258. package/.anya-md/lib/database/json/countries2.json +0 -1
  259. package/.anya-md/lib/database/json/couplepp.json +0 -725
  260. package/.anya-md/lib/database/json/flaming.json +0 -7
  261. package/.anya-md/lib/database/json/ganpati.json +0 -102
  262. package/.anya-md/lib/database/json/husbu.json +0 -1967
  263. package/.anya-md/lib/database/json/islamicWall.json +0 -501
  264. package/.anya-md/lib/database/json/pickupLines.json +0 -118
  265. package/.anya-md/lib/database/json/shreeram.json +0 -49
  266. package/.anya-md/lib/database/json/truthDare.json +0 -643
  267. package/.anya-md/lib/database/mongodb/README.md +0 -142
  268. package/.anya-md/lib/database/mongodb/bot.js +0 -12
  269. package/.anya-md/lib/database/mongodb/cmd.js +0 -17
  270. package/.anya-md/lib/database/mongodb/group.js +0 -22
  271. package/.anya-md/lib/database/mongodb/index.js +0 -24
  272. package/.anya-md/lib/database/mongodb/plugins.js +0 -124
  273. package/.anya-md/lib/database/mongodb/system.js +0 -34
  274. package/.anya-md/lib/database/mongodb/ui.js +0 -15
  275. package/.anya-md/lib/database/mongodb/user.js +0 -17
  276. package/.anya-md/lib/database/mongodb/warn.js +0 -136
  277. package/.anya-md/lib/database/sessions/.pika.js +0 -3
  278. package/.anya-md/lib/frameworks/index.js +0 -5
  279. package/.anya-md/lib/frameworks/reactionMedia.js +0 -91
  280. package/.anya-md/lib/lib/README.md +0 -29
  281. package/.anya-md/lib/lib/ai/README.md +0 -35
  282. package/.anya-md/lib/lib/ai/aiArt.js +0 -47
  283. package/.anya-md/lib/lib/ai/index.js +0 -7
  284. package/.anya-md/lib/lib/buttons.js +0 -530
  285. package/.anya-md/lib/lib/connectionMsg.js +0 -72
  286. package/.anya-md/lib/lib/converter.js +0 -355
  287. package/.anya-md/lib/lib/cooldown.js +0 -46
  288. package/.anya-md/lib/lib/events.js +0 -47
  289. package/.anya-md/lib/lib/functions.js +0 -47
  290. package/.anya-md/lib/lib/greeting.js +0 -115
  291. package/.anya-md/lib/lib/index.js +0 -381
  292. package/.anya-md/lib/lib/logger.js +0 -7
  293. package/.anya-md/lib/lib/maker/remini.js +0 -35
  294. package/.anya-md/lib/lib/mongoUrlFix.js +0 -46
  295. package/.anya-md/lib/lib/myfunc.js +0 -47
  296. package/.anya-md/lib/lib/plugins.js +0 -20
  297. package/.anya-md/lib/lib/prefix.js +0 -47
  298. package/.anya-md/lib/lib/scraper/README.md +0 -35
  299. package/.anya-md/lib/lib/scraper/SoundCloud.js +0 -47
  300. package/.anya-md/lib/lib/scraper/WebToons.js +0 -47
  301. package/.anya-md/lib/lib/scraper/android1.js +0 -47
  302. package/.anya-md/lib/lib/scraper/happymodSearch.js +0 -47
  303. package/.anya-md/lib/lib/scraper/index.js +0 -27
  304. package/.anya-md/lib/lib/scraper/konaChanSearch.js +0 -47
  305. package/.anya-md/lib/lib/scraper/pinterest.js +0 -47
  306. package/.anya-md/lib/lib/scraper/playstore.js +0 -47
  307. package/.anya-md/lib/lib/scraper/ringtone.js +0 -47
  308. package/.anya-md/lib/lib/scraper/steam.js +0 -47
  309. package/.anya-md/lib/lib/scraper/trendingTwitter.js +0 -51
  310. package/.anya-md/lib/lib/scraper/wattpad.js +0 -61
  311. package/.anya-md/lib/lib/scraper/wikipediaSearch.js +0 -42
  312. package/.anya-md/lib/lib/scraper.js +0 -47
  313. package/.anya-md/lib/lib/session.js +0 -47
  314. package/.anya-md/lib/lib/session2.js +0 -47
  315. package/.anya-md/lib/lib/similar.js +0 -47
  316. package/.anya-md/lib/lib/stylish-font.js +0 -2302
  317. package/.anya-md/lib/lib/unicode.js +0 -877
  318. package/.anya-md/lib/lib/upload/index.js +0 -3
  319. package/.anya-md/lib/lib/upload/webp2mp4File.js +0 -56
  320. package/.anya-md/lib/lib/ytdl-core.js +0 -47
  321. package/.anya-md/lib/plugins/README.md +0 -83
  322. package/.anya-md/lib/plugins/_menu.js +0 -810
  323. package/.anya-md/lib/plugins/_plugins.js +0 -239
  324. package/.anya-md/lib/plugins/admins.js +0 -689
  325. package/.anya-md/lib/plugins/ai.js +0 -160
  326. package/.anya-md/lib/plugins/autoreply.js +0 -101
  327. package/.anya-md/lib/plugins/broadcast.js +0 -204
  328. package/.anya-md/lib/plugins/convert.js +0 -293
  329. package/.anya-md/lib/plugins/core.js +0 -941
  330. package/.anya-md/lib/plugins/download.js +0 -373
  331. package/.anya-md/lib/plugins/fun.js +0 -75
  332. package/.anya-md/lib/plugins/games.js +0 -33
  333. package/.anya-md/lib/plugins/gcswitches.js +0 -204
  334. package/.anya-md/lib/plugins/general.js +0 -456
  335. package/.anya-md/lib/plugins/maker.js +0 -41
  336. package/.anya-md/lib/plugins/owner.js +0 -1049
  337. package/.anya-md/lib/plugins/religious.js +0 -81
  338. package/.anya-md/lib/plugins/search.js +0 -902
  339. package/.anya-md/lib/plugins/stalker.js +0 -187
  340. package/.anya-md/lib/plugins/sticker.js +0 -125
  341. package/.anya-md/lib/plugins/tools.js +0 -193
  342. package/.anya-md/lib/plugins/youtube.js +0 -204
  343. package/.anya-md/package.json +0 -75
  344. package/.anya-md/railway.json +0 -12
  345. package/.anya-md/render.yaml +0 -48
  346. package/.anya-md/replit.nix +0 -18
  347. package/.bash_history +0 -500
  348. package/.config/gh/config.yml +0 -19
  349. package/.config/gh/hosts.yml +0 -11
  350. package/.config/ngrok/ngrok.yml +0 -3
  351. package/.config/yarn/global/package.json +0 -5
  352. package/.gitconfig +0 -772
  353. package/.node_repl_history +0 -0
  354. package/.npm/_cacache/content-v2/sha512/02/b3/d1abf5af06222f7de440ab1b057deb21f9dfb0ce0a8f5064b2ba00595933bbcbbaa040b4616f951d9f8ba48d67491df1198a4831fbd8ee26eb27dde36511 +0 -0
  355. package/.npm/_cacache/content-v2/sha512/49/7b/0cdbb4861f7c9358a7367ca478498371b269efb8143d75de901ed1169a267f56a68e60f008952f3ebcc727dbb60bb401011af3514a1dd33cdbed8d981fa8 +0 -0
  356. package/.npm/_cacache/content-v2/sha512/54/3a/647bceb49b7632e6e700cb9f1b66f0f528d4ca71f4f73e76a1e7c8c50b563a2d0bb7734c18f93e6c03b7ea93167db35db0e1999ab13b08ed6b250eed2d2a +0 -1
  357. package/.npm/_cacache/content-v2/sha512/56/7c/4d5820233a7278225351642f7355d9889af42e7efbbfe27d6b201727efad972a59fa32063c7e1159d01dbf27ba014095ca1349ec0d0767746c39441178fa +0 -1
  358. package/.npm/_cacache/content-v2/sha512/89/88/d295c7e4f4d0f4621676d4c499bea2a1c72b0c31a84ff78a8bb8f83042da2bcf596e664c021d21025b296cdd4aecb57a036ea366e39466df5a129fa471df +0 -0
  359. package/.npm/_cacache/content-v2/sha512/8b/46/42882ebb46a975b0ce6b9cdea357190c41b51bb59a21df41c575418850b28115921e130709846d8ff9cabeae72544ec37a48ee7ccb074fe94da925250e55 +0 -1
  360. package/.npm/_cacache/content-v2/sha512/dd/0d/f856b793da0619d18260556498dfff13391593abb6d6a582bf052f03ba35a03a1444bf5c2d40b7515d268ec2cb3e67a17a42f09f5e668c3bb9b743e3b8a7 +0 -1
  361. package/.npm/_cacache/content-v2/sha512/dd/15/702501c36ce653a003d2b101034a0cb9c0fd262fa77797f1a286a161a0b2dce51ef13199e9a3fa58008bdbbf4646a33b6f1a24a2807691093cb89beefb00 +0 -1
  362. package/.npm/_cacache/index-v5/35/f9/e8cc076ef93c1bc40804d3fe05171053366095c922f515b1fab2b580116f +0 -4
  363. package/.npm/_cacache/index-v5/6a/a2/780c77f928115d4dad58a9dc4fa241de8d914abfff994e44602cc93a697c +0 -2
  364. package/.npm/_cacache/index-v5/71/ba/d0bb16fddeb617bbbb3713f46750d1bf5b57742abb6feb6dee4d16c68da4 +0 -4
  365. package/.npm/_cacache/index-v5/72/ae/c69532318093b3bd13618450ca5c26adc018a4afc0e020786207068593cf +0 -2
  366. package/.npm/_cacache/index-v5/7e/5e/9683ad4854f4201d7e53bf9beb2aefafa7b1efbb2c6ac7b36b78d0b218c8 +0 -2
  367. package/.npm/_cacache/index-v5/eb/a0/19e529094c594367a9e1aa68096a313d3dc5509d410761bf50122826a6d2 +0 -4
  368. package/.npm/_cacache/index-v5/f1/fa/2d2f12de549683d1275ec0f2ff15610b408fd89d1b7a755ddb7b77c00371 +0 -2
  369. package/.npm/_logs/2024-10-03T05_52_01_853Z-debug-0.log +0 -52
  370. package/.npm/_logs/2024-10-03T05_52_08_135Z-debug-0.log +0 -52
  371. package/.npm/_logs/2024-10-03T05_52_14_087Z-debug-0.log +0 -52
  372. package/.npm/_logs/2024-10-03T05_52_22_730Z-debug-0.log +0 -52
  373. package/.npm/_logs/2024-10-03T05_52_29_410Z-debug-0.log +0 -52
  374. package/.npm/_logs/2024-10-03T05_52_35_375Z-debug-0.log +0 -52
  375. package/.npm/_logs/2024-10-03T15_32_57_465Z-debug-0.log +0 -20
  376. package/.npm/_logs/2024-10-10T05_40_23_847Z-debug-0.log +0 -254
  377. package/.npm/_logs/2024-10-10T05_40_50_397Z-debug-0.log +0 -73
  378. package/.npm/_logs/2024-10-10T05_40_59_931Z-debug-0.log +0 -52
  379. package/.npm/_logs/2024-10-10T05_42_07_969Z-debug-0.log +0 -52
  380. package/.pm2/logs/anya-error.log +0 -0
  381. package/.pm2/logs/anya-out.log +0 -59
  382. package/.pm2/logs/anya-v2-error.log +0 -2184
  383. package/.pm2/logs/anya-v2-out.log +0 -362
  384. package/.pm2/module_conf.json +0 -1
  385. package/.pm2/pm2.log +0 -919
  386. package/.pm2/pm2.pid +0 -1
  387. package/.pm2/touch +0 -1
  388. package/.ssh/authorized_keys +0 -0
  389. package/.termux/termux.properties +0 -180
  390. package/.wget-hsts +0 -5
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNextPreKeysNode = exports.getNextPreKeys = exports.extractDeviceJids = exports.parseAndInjectE2ESessions = exports.xmppPreKey = exports.xmppSignedPreKey = exports.generateOrGetPreKeys = exports.getPreKeys = exports.createSignalIdentity = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const Defaults_1 = require("../Defaults");
6
+ const WABinary_1 = require("../WABinary");
7
+ const crypto_1 = require("./crypto");
8
+ const generics_1 = require("./generics");
9
+ const createSignalIdentity = (wid, accountSignatureKey) => {
10
+ return {
11
+ identifier: { name: wid, deviceId: 0 },
12
+ identifierKey: (0, crypto_1.generateSignalPubKey)(accountSignatureKey)
13
+ };
14
+ };
15
+ exports.createSignalIdentity = createSignalIdentity;
16
+ const getPreKeys = async ({ get }, min, limit) => {
17
+ const idList = [];
18
+ for (let id = min; id < limit; id++) {
19
+ idList.push(id.toString());
20
+ }
21
+ return get('pre-key', idList);
22
+ };
23
+ exports.getPreKeys = getPreKeys;
24
+ const generateOrGetPreKeys = (creds, range) => {
25
+ const avaliable = creds.nextPreKeyId - creds.firstUnuploadedPreKeyId;
26
+ const remaining = range - avaliable;
27
+ const lastPreKeyId = creds.nextPreKeyId + remaining - 1;
28
+ const newPreKeys = {};
29
+ if (remaining > 0) {
30
+ for (let i = creds.nextPreKeyId; i <= lastPreKeyId; i++) {
31
+ newPreKeys[i] = crypto_1.Curve.generateKeyPair();
32
+ }
33
+ }
34
+ return {
35
+ newPreKeys,
36
+ lastPreKeyId,
37
+ preKeysRange: [creds.firstUnuploadedPreKeyId, range],
38
+ };
39
+ };
40
+ exports.generateOrGetPreKeys = generateOrGetPreKeys;
41
+ const xmppSignedPreKey = (key) => ({
42
+ tag: 'skey',
43
+ attrs: {},
44
+ content: [
45
+ { tag: 'id', attrs: {}, content: (0, generics_1.encodeBigEndian)(key.keyId, 3) },
46
+ { tag: 'value', attrs: {}, content: key.keyPair.public },
47
+ { tag: 'signature', attrs: {}, content: key.signature }
48
+ ]
49
+ });
50
+ exports.xmppSignedPreKey = xmppSignedPreKey;
51
+ const xmppPreKey = (pair, id) => ({
52
+ tag: 'key',
53
+ attrs: {},
54
+ content: [
55
+ { tag: 'id', attrs: {}, content: (0, generics_1.encodeBigEndian)(id, 3) },
56
+ { tag: 'value', attrs: {}, content: pair.public }
57
+ ]
58
+ });
59
+ exports.xmppPreKey = xmppPreKey;
60
+ const parseAndInjectE2ESessions = async (node, repository) => {
61
+ const extractKey = (key) => (key ? ({
62
+ keyId: (0, WABinary_1.getBinaryNodeChildUInt)(key, 'id', 3),
63
+ publicKey: (0, crypto_1.generateSignalPubKey)((0, WABinary_1.getBinaryNodeChildBuffer)(key, 'value')),
64
+ signature: (0, WABinary_1.getBinaryNodeChildBuffer)(key, 'signature'),
65
+ }) : undefined);
66
+ const nodes = (0, WABinary_1.getBinaryNodeChildren)((0, WABinary_1.getBinaryNodeChild)(node, 'list'), 'user');
67
+ for (const node of nodes) {
68
+ (0, WABinary_1.assertNodeErrorFree)(node);
69
+ }
70
+ const chunkSize = 100;
71
+ const chunks = (0, lodash_1.chunk)(nodes, chunkSize);
72
+ for (const nodesChunk of chunks) {
73
+ await Promise.all(nodesChunk.map(async (node) => {
74
+ const signedKey = (0, WABinary_1.getBinaryNodeChild)(node, 'skey');
75
+ const key = (0, WABinary_1.getBinaryNodeChild)(node, 'key');
76
+ const identity = (0, WABinary_1.getBinaryNodeChildBuffer)(node, 'identity');
77
+ const jid = node.attrs.jid;
78
+ const registrationId = (0, WABinary_1.getBinaryNodeChildUInt)(node, 'registration', 4);
79
+ await repository.injectE2ESession({
80
+ jid,
81
+ session: {
82
+ registrationId: registrationId,
83
+ identityKey: (0, crypto_1.generateSignalPubKey)(identity),
84
+ signedPreKey: extractKey(signedKey),
85
+ preKey: extractKey(key)
86
+ }
87
+ });
88
+ }));
89
+ }
90
+ };
91
+ exports.parseAndInjectE2ESessions = parseAndInjectE2ESessions;
92
+ const extractDeviceJids = (result, myJid, excludeZeroDevices) => {
93
+ var _a;
94
+ const { user: myUser, device: myDevice } = (0, WABinary_1.jidDecode)(myJid);
95
+ const extracted = [];
96
+ for (const node of result.content) {
97
+ const list = (_a = (0, WABinary_1.getBinaryNodeChild)(node, 'list')) === null || _a === void 0 ? void 0 : _a.content;
98
+ if (list && Array.isArray(list)) {
99
+ for (const item of list) {
100
+ const { user } = (0, WABinary_1.jidDecode)(item.attrs.jid);
101
+ const devicesNode = (0, WABinary_1.getBinaryNodeChild)(item, 'devices');
102
+ const deviceListNode = (0, WABinary_1.getBinaryNodeChild)(devicesNode, 'device-list');
103
+ if (Array.isArray(deviceListNode === null || deviceListNode === void 0 ? void 0 : deviceListNode.content)) {
104
+ //eslint-disable-next-line max-depth
105
+ for (const { tag, attrs } of deviceListNode.content) {
106
+ const device = +attrs.id;
107
+ //eslint-disable-next-line max-depth
108
+ if (tag === 'device' && // ensure the "device" tag
109
+ (!excludeZeroDevices || device !== 0) && // if zero devices are not-excluded, or device is non zero
110
+ (myUser !== user || myDevice !== device) && // either different user or if me user, not this device
111
+ (device === 0 || !!attrs['key-index']) // ensure that "key-index" is specified for "non-zero" devices, produces a bad req otherwise
112
+ ) {
113
+ extracted.push({ user, device });
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ return extracted;
121
+ };
122
+ exports.extractDeviceJids = extractDeviceJids;
123
+ /**
124
+ * get the next N keys for upload or processing
125
+ * @param count number of pre-keys to get or generate
126
+ */
127
+ const getNextPreKeys = async ({ creds, keys }, count) => {
128
+ const { newPreKeys, lastPreKeyId, preKeysRange } = (0, exports.generateOrGetPreKeys)(creds, count);
129
+ const update = {
130
+ nextPreKeyId: Math.max(lastPreKeyId + 1, creds.nextPreKeyId),
131
+ firstUnuploadedPreKeyId: Math.max(creds.firstUnuploadedPreKeyId, lastPreKeyId + 1)
132
+ };
133
+ await keys.set({ 'pre-key': newPreKeys });
134
+ const preKeys = await (0, exports.getPreKeys)(keys, preKeysRange[0], preKeysRange[0] + preKeysRange[1]);
135
+ return { update, preKeys };
136
+ };
137
+ exports.getNextPreKeys = getNextPreKeys;
138
+ const getNextPreKeysNode = async (state, count) => {
139
+ const { creds } = state;
140
+ const { update, preKeys } = await (0, exports.getNextPreKeys)(state, count);
141
+ const node = {
142
+ tag: 'iq',
143
+ attrs: {
144
+ xmlns: 'encrypt',
145
+ type: 'set',
146
+ to: WABinary_1.S_WHATSAPP_NET,
147
+ },
148
+ content: [
149
+ { tag: 'registration', attrs: {}, content: (0, generics_1.encodeBigEndian)(creds.registrationId) },
150
+ { tag: 'type', attrs: {}, content: Defaults_1.KEY_BUNDLE_TYPE },
151
+ { tag: 'identity', attrs: {}, content: creds.signedIdentityKey.public },
152
+ { tag: 'list', attrs: {}, content: Object.keys(preKeys).map(k => (0, exports.xmppPreKey)(preKeys[+k], +k)) },
153
+ (0, exports.xmppSignedPreKey)(creds.signedPreKey)
154
+ ]
155
+ };
156
+ return { update, node };
157
+ };
158
+ exports.getNextPreKeysNode = getNextPreKeysNode;
@@ -0,0 +1,12 @@
1
+ import { AuthenticationState } from '../Types';
2
+ /**
3
+ * stores the full authentication state in a single folder.
4
+ * Far more efficient than singlefileauthstate
5
+ *
6
+ * Again, I wouldn't endorse this for any production level use other than perhaps a bot.
7
+ * Would recommend writing an auth state for use with a proper SQL or No-SQL DB
8
+ * */
9
+ export declare const useMultiFileAuthState: (folder: string) => Promise<{
10
+ state: AuthenticationState;
11
+ saveCreds: () => Promise<void>;
12
+ }>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useMultiFileAuthState = void 0;
7
+ const async_lock_1 = __importDefault(require("async-lock"));
8
+ const promises_1 = require("fs/promises");
9
+ const path_1 = require("path");
10
+ const WAProto_1 = require("../../WAProto");
11
+ const auth_utils_1 = require("./auth-utils");
12
+ const generics_1 = require("./generics");
13
+ // We need to lock files due to the fact that we are using async functions to read and write files
14
+ // https://github.com/WhiskeySockets/Baileys/issues/794
15
+ // https://github.com/nodejs/node/issues/26338
16
+ // Default pending is 1000, set it to infinity
17
+ // https://github.com/rogierschouten/async-lock/issues/63
18
+ const fileLock = new async_lock_1.default({ maxPending: Infinity });
19
+ /**
20
+ * stores the full authentication state in a single folder.
21
+ * Far more efficient than singlefileauthstate
22
+ *
23
+ * Again, I wouldn't endorse this for any production level use other than perhaps a bot.
24
+ * Would recommend writing an auth state for use with a proper SQL or No-SQL DB
25
+ * */
26
+ const useMultiFileAuthState = async (folder) => {
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ const writeData = (data, file) => {
29
+ const filePath = (0, path_1.join)(folder, fixFileName(file));
30
+ return fileLock.acquire(filePath, () => (0, promises_1.writeFile)((0, path_1.join)(filePath), JSON.stringify(data, generics_1.BufferJSON.replacer)));
31
+ };
32
+ const readData = async (file) => {
33
+ try {
34
+ const filePath = (0, path_1.join)(folder, fixFileName(file));
35
+ const data = await fileLock.acquire(filePath, () => (0, promises_1.readFile)(filePath, { encoding: 'utf-8' }));
36
+ return JSON.parse(data, generics_1.BufferJSON.reviver);
37
+ }
38
+ catch (error) {
39
+ return null;
40
+ }
41
+ };
42
+ const removeData = async (file) => {
43
+ try {
44
+ const filePath = (0, path_1.join)(folder, fixFileName(file));
45
+ await fileLock.acquire(filePath, () => (0, promises_1.unlink)(filePath));
46
+ }
47
+ catch (_a) {
48
+ }
49
+ };
50
+ const folderInfo = await (0, promises_1.stat)(folder).catch(() => { });
51
+ if (folderInfo) {
52
+ if (!folderInfo.isDirectory()) {
53
+ throw new Error(`found something that is not a directory at ${folder}, either delete it or specify a different location`);
54
+ }
55
+ }
56
+ else {
57
+ await (0, promises_1.mkdir)(folder, { recursive: true });
58
+ }
59
+ const fixFileName = (file) => { var _a; return (_a = file === null || file === void 0 ? void 0 : file.replace(/\//g, '__')) === null || _a === void 0 ? void 0 : _a.replace(/:/g, '-'); };
60
+ const creds = await readData('creds.json') || (0, auth_utils_1.initAuthCreds)();
61
+ return {
62
+ state: {
63
+ creds,
64
+ keys: {
65
+ get: async (type, ids) => {
66
+ const data = {};
67
+ await Promise.all(ids.map(async (id) => {
68
+ let value = await readData(`${type}-${id}.json`);
69
+ if (type === 'app-state-sync-key' && value) {
70
+ value = WAProto_1.proto.Message.AppStateSyncKeyData.fromObject(value);
71
+ }
72
+ data[id] = value;
73
+ }));
74
+ return data;
75
+ },
76
+ set: async (data) => {
77
+ const tasks = [];
78
+ for (const category in data) {
79
+ for (const id in data[category]) {
80
+ const value = data[category][id];
81
+ const file = `${category}-${id}.json`;
82
+ tasks.push(value ? writeData(value, file) : removeData(file));
83
+ }
84
+ }
85
+ await Promise.all(tasks);
86
+ }
87
+ }
88
+ },
89
+ saveCreds: () => {
90
+ return writeData(creds, 'creds.json');
91
+ }
92
+ };
93
+ };
94
+ exports.useMultiFileAuthState = useMultiFileAuthState;
@@ -0,0 +1,10 @@
1
+ import { proto } from '../../WAProto';
2
+ import type { AuthenticationCreds, SignalCreds, SocketConfig } from '../Types';
3
+ import { BinaryNode } from '../WABinary';
4
+ export declare const generateLoginNode: (userJid: string, config: SocketConfig) => proto.IClientPayload;
5
+ export declare const generateRegistrationNode: ({ registrationId, signedPreKey, signedIdentityKey }: SignalCreds, config: SocketConfig) => proto.ClientPayload;
6
+ export declare const configureSuccessfulPairing: (stanza: BinaryNode, { advSecretKey, signedIdentityKey, signalIdentities }: Pick<AuthenticationCreds, 'advSecretKey' | 'signedIdentityKey' | 'signalIdentities'>) => {
7
+ creds: Partial<AuthenticationCreds>;
8
+ reply: BinaryNode;
9
+ };
10
+ export declare const encodeSignedDeviceIdentity: (account: proto.IADVSignedDeviceIdentity, includeSignatureKey: boolean) => Uint8Array;
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encodeSignedDeviceIdentity = exports.configureSuccessfulPairing = exports.generateRegistrationNode = exports.generateLoginNode = void 0;
4
+ const boom_1 = require("@hapi/boom");
5
+ const crypto_1 = require("crypto");
6
+ const WAProto_1 = require("../../WAProto");
7
+ const Defaults_1 = require("../Defaults");
8
+ const WABinary_1 = require("../WABinary");
9
+ const crypto_2 = require("./crypto");
10
+ const generics_1 = require("./generics");
11
+ const signal_1 = require("./signal");
12
+ const getUserAgent = (config) => {
13
+ return {
14
+ appVersion: {
15
+ primary: config.version[0],
16
+ secondary: config.version[1],
17
+ tertiary: config.version[2],
18
+ },
19
+ platform: WAProto_1.proto.ClientPayload.UserAgent.Platform.WEB,
20
+ releaseChannel: WAProto_1.proto.ClientPayload.UserAgent.ReleaseChannel.RELEASE,
21
+ osVersion: '0.1',
22
+ device: 'Desktop',
23
+ osBuildNumber: '0.1',
24
+ localeLanguageIso6391: 'en',
25
+ localeCountryIso31661Alpha2: 'US'
26
+ };
27
+ };
28
+ const PLATFORM_MAP = {
29
+ 'Mac OS': WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.DARWIN,
30
+ 'Windows': WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.WIN32
31
+ };
32
+ const getWebInfo = (config) => {
33
+ let webSubPlatform = WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.WEB_BROWSER;
34
+ if (config.syncFullHistory && PLATFORM_MAP[config.browser[0]]) {
35
+ webSubPlatform = PLATFORM_MAP[config.browser[0]];
36
+ }
37
+ return { webSubPlatform };
38
+ };
39
+ const getClientPayload = (config) => {
40
+ const payload = {
41
+ connectType: WAProto_1.proto.ClientPayload.ConnectType.WIFI_UNKNOWN,
42
+ connectReason: WAProto_1.proto.ClientPayload.ConnectReason.USER_ACTIVATED,
43
+ userAgent: getUserAgent(config),
44
+ };
45
+ payload.webInfo = getWebInfo(config);
46
+ return payload;
47
+ };
48
+ const generateLoginNode = (userJid, config) => {
49
+ const { user, device } = (0, WABinary_1.jidDecode)(userJid);
50
+ const payload = {
51
+ ...getClientPayload(config),
52
+ passive: true,
53
+ username: +user,
54
+ device: device,
55
+ };
56
+ return WAProto_1.proto.ClientPayload.fromObject(payload);
57
+ };
58
+ exports.generateLoginNode = generateLoginNode;
59
+ const getPlatformType = (platform) => {
60
+ const platformType = platform.toUpperCase();
61
+ return WAProto_1.proto.DeviceProps.PlatformType[platformType] || WAProto_1.proto.DeviceProps.PlatformType.DESKTOP;
62
+ };
63
+ const generateRegistrationNode = ({ registrationId, signedPreKey, signedIdentityKey }, config) => {
64
+ // the app version needs to be md5 hashed
65
+ // and passed in
66
+ const appVersionBuf = (0, crypto_1.createHash)('md5')
67
+ .update(config.version.join('.')) // join as string
68
+ .digest();
69
+ const companion = {
70
+ os: config.browser[0],
71
+ platformType: getPlatformType(config.browser[1]),
72
+ requireFullSync: config.syncFullHistory,
73
+ };
74
+ const companionProto = WAProto_1.proto.DeviceProps.encode(companion).finish();
75
+ const registerPayload = {
76
+ ...getClientPayload(config),
77
+ passive: false,
78
+ devicePairingData: {
79
+ buildHash: appVersionBuf,
80
+ deviceProps: companionProto,
81
+ eRegid: (0, generics_1.encodeBigEndian)(registrationId),
82
+ eKeytype: Defaults_1.KEY_BUNDLE_TYPE,
83
+ eIdent: signedIdentityKey.public,
84
+ eSkeyId: (0, generics_1.encodeBigEndian)(signedPreKey.keyId, 3),
85
+ eSkeyVal: signedPreKey.keyPair.public,
86
+ eSkeySig: signedPreKey.signature,
87
+ },
88
+ };
89
+ return WAProto_1.proto.ClientPayload.fromObject(registerPayload);
90
+ };
91
+ exports.generateRegistrationNode = generateRegistrationNode;
92
+ const configureSuccessfulPairing = (stanza, { advSecretKey, signedIdentityKey, signalIdentities }) => {
93
+ const msgId = stanza.attrs.id;
94
+ const pairSuccessNode = (0, WABinary_1.getBinaryNodeChild)(stanza, 'pair-success');
95
+ const deviceIdentityNode = (0, WABinary_1.getBinaryNodeChild)(pairSuccessNode, 'device-identity');
96
+ const platformNode = (0, WABinary_1.getBinaryNodeChild)(pairSuccessNode, 'platform');
97
+ const deviceNode = (0, WABinary_1.getBinaryNodeChild)(pairSuccessNode, 'device');
98
+ const businessNode = (0, WABinary_1.getBinaryNodeChild)(pairSuccessNode, 'biz');
99
+ if (!deviceIdentityNode || !deviceNode) {
100
+ throw new boom_1.Boom('Missing device-identity or device in pair success node', { data: stanza });
101
+ }
102
+ const bizName = businessNode === null || businessNode === void 0 ? void 0 : businessNode.attrs.name;
103
+ const jid = deviceNode.attrs.jid;
104
+ const { details, hmac } = WAProto_1.proto.ADVSignedDeviceIdentityHMAC.decode(deviceIdentityNode.content);
105
+ // check HMAC matches
106
+ const advSign = (0, crypto_2.hmacSign)(details, Buffer.from(advSecretKey, 'base64'));
107
+ if (Buffer.compare(hmac, advSign) !== 0) {
108
+ throw new boom_1.Boom('Invalid account signature');
109
+ }
110
+ const account = WAProto_1.proto.ADVSignedDeviceIdentity.decode(details);
111
+ const { accountSignatureKey, accountSignature, details: deviceDetails } = account;
112
+ // verify the device signature matches
113
+ const accountMsg = Buffer.concat([Buffer.from([6, 0]), deviceDetails, signedIdentityKey.public]);
114
+ if (!crypto_2.Curve.verify(accountSignatureKey, accountMsg, accountSignature)) {
115
+ throw new boom_1.Boom('Failed to verify account signature');
116
+ }
117
+ // sign the details with our identity key
118
+ const deviceMsg = Buffer.concat([Buffer.from([6, 1]), deviceDetails, signedIdentityKey.public, accountSignatureKey]);
119
+ account.deviceSignature = crypto_2.Curve.sign(signedIdentityKey.private, deviceMsg);
120
+ const identity = (0, signal_1.createSignalIdentity)(jid, accountSignatureKey);
121
+ const accountEnc = (0, exports.encodeSignedDeviceIdentity)(account, false);
122
+ const deviceIdentity = WAProto_1.proto.ADVDeviceIdentity.decode(account.details);
123
+ const reply = {
124
+ tag: 'iq',
125
+ attrs: {
126
+ to: WABinary_1.S_WHATSAPP_NET,
127
+ type: 'result',
128
+ id: msgId,
129
+ },
130
+ content: [
131
+ {
132
+ tag: 'pair-device-sign',
133
+ attrs: {},
134
+ content: [
135
+ {
136
+ tag: 'device-identity',
137
+ attrs: { 'key-index': deviceIdentity.keyIndex.toString() },
138
+ content: accountEnc
139
+ }
140
+ ]
141
+ }
142
+ ]
143
+ };
144
+ const authUpdate = {
145
+ account,
146
+ me: { id: jid, name: bizName },
147
+ signalIdentities: [
148
+ ...(signalIdentities || []),
149
+ identity
150
+ ],
151
+ platform: platformNode === null || platformNode === void 0 ? void 0 : platformNode.attrs.name
152
+ };
153
+ return {
154
+ creds: authUpdate,
155
+ reply
156
+ };
157
+ };
158
+ exports.configureSuccessfulPairing = configureSuccessfulPairing;
159
+ const encodeSignedDeviceIdentity = (account, includeSignatureKey) => {
160
+ var _a;
161
+ account = { ...account };
162
+ // set to null if we are not to include the signature key
163
+ // or if we are including the signature key but it is empty
164
+ if (!includeSignatureKey || !((_a = account.accountSignatureKey) === null || _a === void 0 ? void 0 : _a.length)) {
165
+ account.accountSignatureKey = null;
166
+ }
167
+ return WAProto_1.proto.ADVSignedDeviceIdentity
168
+ .encode(account)
169
+ .finish();
170
+ };
171
+ exports.encodeSignedDeviceIdentity = encodeSignedDeviceIdentity;
@@ -0,0 +1,27 @@
1
+ export declare const TAGS: {
2
+ LIST_EMPTY: number;
3
+ DICTIONARY_0: number;
4
+ DICTIONARY_1: number;
5
+ DICTIONARY_2: number;
6
+ DICTIONARY_3: number;
7
+ AD_JID: number;
8
+ LIST_8: number;
9
+ LIST_16: number;
10
+ JID_PAIR: number;
11
+ HEX_8: number;
12
+ BINARY_8: number;
13
+ BINARY_20: number;
14
+ BINARY_32: number;
15
+ NIBBLE_8: number;
16
+ PACKED_MAX: number;
17
+ SINGLE_BYTE_MAX: number;
18
+ STREAM_END: number;
19
+ };
20
+ export declare const DOUBLE_BYTE_TOKENS: string[][];
21
+ export declare const SINGLE_BYTE_TOKENS: (string | null)[];
22
+ export declare const TOKEN_MAP: {
23
+ [token: string]: {
24
+ dict?: number;
25
+ index: number;
26
+ };
27
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOKEN_MAP = exports.SINGLE_BYTE_TOKENS = exports.DOUBLE_BYTE_TOKENS = exports.TAGS = void 0;
4
+ exports.TAGS = {
5
+ LIST_EMPTY: 0,
6
+ DICTIONARY_0: 236,
7
+ DICTIONARY_1: 237,
8
+ DICTIONARY_2: 238,
9
+ DICTIONARY_3: 239,
10
+ AD_JID: 247,
11
+ LIST_8: 248,
12
+ LIST_16: 249,
13
+ JID_PAIR: 250,
14
+ HEX_8: 251,
15
+ BINARY_8: 252,
16
+ BINARY_20: 253,
17
+ BINARY_32: 254,
18
+ NIBBLE_8: 255,
19
+ PACKED_MAX: 127,
20
+ SINGLE_BYTE_MAX: 256,
21
+ STREAM_END: 2
22
+ };
23
+ exports.DOUBLE_BYTE_TOKENS = [
24
+ ['media-for1-1.cdn.whatsapp.net', 'relay', 'media-gru2-2.cdn.whatsapp.net', 'uncompressed', 'medium', 'voip_settings', 'device', 'reason', 'media-lim1-1.cdn.whatsapp.net', 'media-qro1-2.cdn.whatsapp.net', 'media-gru1-2.cdn.whatsapp.net', 'action', 'features', 'media-gru2-1.cdn.whatsapp.net', 'media-gru1-1.cdn.whatsapp.net', 'media-otp1-1.cdn.whatsapp.net', 'kyc-id', 'priority', 'phash', 'mute', 'token', '100', 'media-qro1-1.cdn.whatsapp.net', 'none', 'media-mrs2-2.cdn.whatsapp.net', 'sign_credential', '03', 'media-mrs2-1.cdn.whatsapp.net', 'protocol', 'timezone', 'transport', 'eph_setting', '1080', 'original_dimensions', 'media-frx5-1.cdn.whatsapp.net', 'background', 'disable', 'original_image_url', '5', 'transaction-id', 'direct_path', '103', 'appointment_only', 'request_image_url', 'peer_pid', 'address', '105', '104', '102', 'media-cdt1-1.cdn.whatsapp.net', '101', '109', '110', '106', 'background_location', 'v_id', 'sync', 'status-old', '111', '107', 'ppic', 'media-scl2-1.cdn.whatsapp.net', 'business_profile', '108', 'invite', '04', 'audio_duration', 'media-mct1-1.cdn.whatsapp.net', 'media-cdg2-1.cdn.whatsapp.net', 'media-los2-1.cdn.whatsapp.net', 'invis', 'net', 'voip_payload_type', 'status-revoke-delay', '404', 'state', 'use_correct_order_for_hmac_sha1', 'ver', 'media-mad1-1.cdn.whatsapp.net', 'order', '540', 'skey', 'blinded_credential', 'android', 'contact_remove', 'enable_downlink_relay_latency_only', 'duration', 'enable_vid_one_way_codec_nego', '6', 'media-sof1-1.cdn.whatsapp.net', 'accept', 'all', 'signed_credential', 'media-atl3-1.cdn.whatsapp.net', 'media-lhr8-1.cdn.whatsapp.net', 'website', '05', 'latitude', 'media-dfw5-1.cdn.whatsapp.net', 'forbidden', 'enable_audio_piggyback_network_mtu_fix', 'media-dfw5-2.cdn.whatsapp.net', 'note.m4r', 'media-atl3-2.cdn.whatsapp.net', 'jb_nack_discard_count_fix', 'longitude', 'Opening.m4r', 'media-arn2-1.cdn.whatsapp.net', 'email', 'timestamp', 'admin', 'media-pmo1-1.cdn.whatsapp.net', 'America/Sao_Paulo', 'contact_add', 'media-sin6-1.cdn.whatsapp.net', 'interactive', '8000', 'acs_public_key', 'sigquit_anr_detector_release_rollover_percent', 'media.fmed1-2.fna.whatsapp.net', 'groupadd', 'enabled_for_video_upgrade', 'latency_update_threshold', 'media-frt3-2.cdn.whatsapp.net', 'calls_row_constraint_layout', 'media.fgbb2-1.fna.whatsapp.net', 'mms4_media_retry_notification_encryption_enabled', 'timeout', 'media-sin6-3.cdn.whatsapp.net', 'audio_nack_jitter_multiplier', 'jb_discard_count_adjust_pct_rc', 'audio_reserve_bps', 'delta', 'account_sync', 'default', 'media.fjed4-6.fna.whatsapp.net', '06', 'lock_video_orientation', 'media-frt3-1.cdn.whatsapp.net', 'w:g2', 'media-sin6-2.cdn.whatsapp.net', 'audio_nack_algo_mask', 'media.fgbb2-2.fna.whatsapp.net', 'media.fmed1-1.fna.whatsapp.net', 'cond_range_target_bitrate', 'mms4_server_error_receipt_encryption_enabled', 'vid_rc_dyn', 'fri', 'cart_v1_1_order_message_changes_enabled', 'reg_push', 'jb_hist_deposit_value', 'privatestats', 'media.fist7-2.fna.whatsapp.net', 'thu', 'jb_discard_count_adjust_pct', 'mon', 'group_call_video_maximization_enabled', 'mms_cat_v1_forward_hot_override_enabled', 'audio_nack_new_rtt', 'media.fsub2-3.fna.whatsapp.net', 'media_upload_aggressive_retry_exponential_backoff_enabled', 'tue', 'wed', 'media.fruh4-2.fna.whatsapp.net', 'audio_nack_max_seq_req', 'max_rtp_audio_packet_resends', 'jb_hist_max_cdf_value', '07', 'audio_nack_max_jb_delay', 'mms_forward_partially_downloaded_video', 'media-lcy1-1.cdn.whatsapp.net', 'resume', 'jb_inband_fec_aware', 'new_commerce_entry_point_enabled', '480', 'payments_upi_generate_qr_amount_limit', 'sigquit_anr_detector_rollover_percent', 'media.fsdu2-1.fna.whatsapp.net', 'fbns', 'aud_pkt_reorder_pct', 'dec', 'stop_probing_before_accept_send', 'media_upload_max_aggressive_retries', 'edit_business_profile_new_mode_enabled', 'media.fhex4-1.fna.whatsapp.net', 'media.fjed4-3.fna.whatsapp.net', 'sigquit_anr_detector_64bit_rollover_percent', 'cond_range_ema_jb_last_delay', 'watls_enable_early_data_http_get', 'media.fsdu2-2.fna.whatsapp.net', 'message_qr_disambiguation_enabled', 'media-mxp1-1.cdn.whatsapp.net', 'sat', 'vertical', 'media.fruh4-5.fna.whatsapp.net', '200', 'media-sof1-2.cdn.whatsapp.net', '-1', 'height', 'product_catalog_hide_show_items_enabled', 'deep_copy_frm_last', 'tsoffline', 'vp8/h.264', 'media.fgye5-3.fna.whatsapp.net', 'media.ftuc1-2.fna.whatsapp.net', 'smb_upsell_chat_banner_enabled', 'canonical', '08', '9', '.', 'media.fgyd4-4.fna.whatsapp.net', 'media.fsti4-1.fna.whatsapp.net', 'mms_vcache_aggregation_enabled', 'mms_hot_content_timespan_in_seconds', 'nse_ver', 'rte', 'third_party_sticker_web_sync', 'cond_range_target_total_bitrate', 'media_upload_aggressive_retry_enabled', 'instrument_spam_report_enabled', 'disable_reconnect_tone', 'move_media_folder_from_sister_app', 'one_tap_calling_in_group_chat_size', '10', 'storage_mgmt_banner_threshold_mb', 'enable_backup_passive_mode', 'sharechat_inline_player_enabled', 'media.fcnq2-1.fna.whatsapp.net', 'media.fhex4-2.fna.whatsapp.net', 'media.fist6-3.fna.whatsapp.net', 'ephemeral_drop_column_stage', 'reconnecting_after_network_change_threshold_ms', 'media-lhr8-2.cdn.whatsapp.net', 'cond_jb_last_delay_ema_alpha', 'entry_point_block_logging_enabled', 'critical_event_upload_log_config', 'respect_initial_bitrate_estimate', 'smaller_image_thumbs_status_enabled', 'media.fbtz1-4.fna.whatsapp.net', 'media.fjed4-1.fna.whatsapp.net', 'width', '720', 'enable_frame_dropper', 'enable_one_side_mode', 'urn:xmpp:whatsapp:dirty', 'new_sticker_animation_behavior_v2', 'media.flim3-2.fna.whatsapp.net', 'media.fuio6-2.fna.whatsapp.net', 'skip_forced_signaling', 'dleq_proof', 'status_video_max_bitrate', 'lazy_send_probing_req', 'enhanced_storage_management', 'android_privatestats_endpoint_dit_enabled', 'media.fscl13-2.fna.whatsapp.net', 'video_duration'],
25
+ ['group_call_discoverability_enabled', 'media.faep9-2.fna.whatsapp.net', 'msgr', 'bloks_loggedin_access_app_id', 'db_status_migration_step', 'watls_prefer_ip6', 'jabber:iq:privacy', '68', 'media.fsaw1-11.fna.whatsapp.net', 'mms4_media_conn_persist_enabled', 'animated_stickers_thread_clean_up', 'media.fcgk3-2.fna.whatsapp.net', 'media.fcgk4-6.fna.whatsapp.net', 'media.fgye5-2.fna.whatsapp.net', 'media.flpb1-1.fna.whatsapp.net', 'media.fsub2-1.fna.whatsapp.net', 'media.fuio6-3.fna.whatsapp.net', 'not-allowed', 'partial_pjpeg_bw_threshold', 'cap_estimated_bitrate', 'mms_chatd_resume_check_over_thrift', 'smb_upsell_business_profile_enabled', 'product_catalog_webclient', 'groups', 'sigquit_anr_detector_release_updated_rollout', 'syncd_key_rotation_enabled', 'media.fdmm2-1.fna.whatsapp.net', 'media-hou1-1.cdn.whatsapp.net', 'remove_old_chat_notifications', 'smb_biztools_deeplink_enabled', 'use_downloadable_filters_int', 'group_qr_codes_enabled', 'max_receipt_processing_time', 'optimistic_image_processing_enabled', 'smaller_video_thumbs_status_enabled', 'watls_early_data', 'reconnecting_before_relay_failover_threshold_ms', 'cond_range_packet_loss_pct', 'groups_privacy_blacklist', 'status-revoke-drop', 'stickers_animated_thumbnail_download', 'dedupe_transcode_shared_images', 'dedupe_transcode_shared_videos', 'media.fcnq2-2.fna.whatsapp.net', 'media.fgyd4-1.fna.whatsapp.net', 'media.fist7-1.fna.whatsapp.net', 'media.flim3-3.fna.whatsapp.net', 'add_contact_by_qr_enabled', 'https://faq.whatsapp.com/payments', 'multicast_limit_global', 'sticker_notification_preview', 'smb_better_catalog_list_adapters_enabled', 'bloks_use_minscript_android', 'pen_smoothing_enabled', 'media.fcgk4-5.fna.whatsapp.net', 'media.fevn1-3.fna.whatsapp.net', 'media.fpoj7-1.fna.whatsapp.net', 'media-arn2-2.cdn.whatsapp.net', 'reconnecting_before_network_change_threshold_ms', 'android_media_use_fresco_for_gifs', 'cond_in_congestion', 'status_image_max_edge', 'sticker_search_enabled', 'starred_stickers_web_sync', 'db_blank_me_jid_migration_step', 'media.fist6-2.fna.whatsapp.net', 'media.ftuc1-1.fna.whatsapp.net', '09', 'anr_fast_logs_upload_rollout', 'camera_core_integration_enabled', '11', 'third_party_sticker_caching', 'thread_dump_contact_support', 'wam_privatestats_enabled', 'vcard_as_document_size_kb', 'maxfpp', 'fbip', 'ephemeral_allow_group_members', 'media-bom1-2.cdn.whatsapp.net', 'media-xsp1-1.cdn.whatsapp.net', 'disable_prewarm', 'frequently_forwarded_max', 'media.fbtz1-5.fna.whatsapp.net', 'media.fevn7-1.fna.whatsapp.net', 'media.fgyd4-2.fna.whatsapp.net', 'sticker_tray_animation_fully_visible_items', 'green_alert_banner_duration', 'reconnecting_after_p2p_failover_threshold_ms', 'connected', 'share_biz_vcard_enabled', 'stickers_animation', '0a', '1200', 'WhatsApp', 'group_description_length', 'p_v_id', 'payments_upi_intent_transaction_limit', 'frequently_forwarded_messages', 'media-xsp1-2.cdn.whatsapp.net', 'media.faep8-1.fna.whatsapp.net', 'media.faep8-2.fna.whatsapp.net', 'media.faep9-1.fna.whatsapp.net', 'media.fdmm2-2.fna.whatsapp.net', 'media.fgzt3-1.fna.whatsapp.net', 'media.flim4-2.fna.whatsapp.net', 'media.frao1-1.fna.whatsapp.net', 'media.fscl9-2.fna.whatsapp.net', 'media.fsub2-2.fna.whatsapp.net', 'superadmin', 'media.fbog10-1.fna.whatsapp.net', 'media.fcgh28-1.fna.whatsapp.net', 'media.fjdo10-1.fna.whatsapp.net', 'third_party_animated_sticker_import', 'delay_fec', 'attachment_picker_refresh', 'android_linked_devices_re_auth_enabled', 'rc_dyn', 'green_alert_block_jitter', 'add_contact_logging_enabled', 'biz_message_logging_enabled', 'conversation_media_preview_v2', 'media-jnb1-1.cdn.whatsapp.net', 'ab_key', 'media.fcgk4-2.fna.whatsapp.net', 'media.fevn1-1.fna.whatsapp.net', 'media.fist6-1.fna.whatsapp.net', 'media.fruh4-4.fna.whatsapp.net', 'media.fsti4-2.fna.whatsapp.net', 'mms_vcard_autodownload_size_kb', 'watls_enabled', 'notif_ch_override_off', 'media.fsaw1-14.fna.whatsapp.net', 'media.fscl13-1.fna.whatsapp.net', 'db_group_participant_migration_step', '1020', 'cond_range_sterm_rtt', 'invites_logging_enabled', 'triggered_block_enabled', 'group_call_max_participants', 'media-iad3-1.cdn.whatsapp.net', 'product_catalog_open_deeplink', 'shops_required_tos_version', 'image_max_kbytes', 'cond_low_quality_vid_mode', 'db_receipt_migration_step', 'jb_early_prob_hist_shrink', 'media.fdmm2-3.fna.whatsapp.net', 'media.fdmm2-4.fna.whatsapp.net', 'media.fruh4-1.fna.whatsapp.net', 'media.fsaw2-2.fna.whatsapp.net', 'remove_geolocation_videos', 'new_animation_behavior', 'fieldstats_beacon_chance', '403', 'authkey_reset_on_ban', 'continuous_ptt_playback', 'reconnecting_after_relay_failover_threshold_ms', 'false', 'group', 'sun', 'conversation_swipe_to_reply', 'ephemeral_messages_setting', 'smaller_video_thumbs_enabled', 'md_device_sync_enabled', 'bloks_shops_pdp_url_regex', 'lasso_integration_enabled', 'media-bom1-1.cdn.whatsapp.net', 'new_backup_format_enabled', '256', 'media.faep6-1.fna.whatsapp.net', 'media.fasr1-1.fna.whatsapp.net', 'media.fbtz1-7.fna.whatsapp.net', 'media.fesb4-1.fna.whatsapp.net', 'media.fjdo1-2.fna.whatsapp.net', 'media.frba2-1.fna.whatsapp.net', 'watls_no_dns', '600', 'db_broadcast_me_jid_migration_step', 'new_wam_runtime_enabled', 'group_update', 'enhanced_block_enabled', 'sync_wifi_threshold_kb', 'mms_download_nc_cat', 'bloks_minification_enabled', 'ephemeral_messages_enabled', 'reject', 'voip_outgoing_xml_signaling', 'creator', 'dl_bw', 'payments_request_messages', 'target_bitrate', 'bloks_rendercore_enabled', 'media-hbe1-1.cdn.whatsapp.net', 'media-hel3-1.cdn.whatsapp.net', 'media-kut2-2.cdn.whatsapp.net', 'media-lax3-1.cdn.whatsapp.net', 'media-lax3-2.cdn.whatsapp.net', 'sticker_pack_deeplink_enabled', 'hq_image_bw_threshold', 'status_info', 'voip', 'dedupe_transcode_videos', 'grp_uii_cleanup', 'linked_device_max_count', 'media.flim1-1.fna.whatsapp.net', 'media.fsaw2-1.fna.whatsapp.net', 'reconnecting_after_call_active_threshold_ms', '1140', 'catalog_pdp_new_design', 'media.fbtz1-10.fna.whatsapp.net', 'media.fsaw1-15.fna.whatsapp.net', '0b', 'consumer_rc_provider', 'mms_async_fast_forward_ttl', 'jb_eff_size_fix', 'voip_incoming_xml_signaling', 'media_provider_share_by_uuid', 'suspicious_links', 'dedupe_transcode_images', 'green_alert_modal_start', 'media-cgk1-1.cdn.whatsapp.net', 'media-lga3-1.cdn.whatsapp.net', 'template_doc_mime_types', 'important_messages', 'user_add', 'vcard_max_size_kb', 'media.fada2-1.fna.whatsapp.net', 'media.fbog2-5.fna.whatsapp.net', 'media.fbtz1-3.fna.whatsapp.net', 'media.fcgk3-1.fna.whatsapp.net', 'media.fcgk7-1.fna.whatsapp.net', 'media.flim1-3.fna.whatsapp.net', 'media.fscl9-1.fna.whatsapp.net', 'ctwa_context_enterprise_enabled', 'media.fsaw1-13.fna.whatsapp.net', 'media.fuio11-2.fna.whatsapp.net', 'status_collapse_muted', 'db_migration_level_force', 'recent_stickers_web_sync', 'bloks_session_state', 'bloks_shops_enabled', 'green_alert_setting_deep_links_enabled', 'restrict_groups', 'battery', 'green_alert_block_start', 'refresh', 'ctwa_context_enabled', 'md_messaging_enabled', 'status_image_quality', 'md_blocklist_v2_server', 'media-del1-1.cdn.whatsapp.net', '13', 'userrate', 'a_v_id', 'cond_rtt_ema_alpha', 'invalid'],
26
+ ['media.fada1-1.fna.whatsapp.net', 'media.fadb3-2.fna.whatsapp.net', 'media.fbhz2-1.fna.whatsapp.net', 'media.fcor2-1.fna.whatsapp.net', 'media.fjed4-2.fna.whatsapp.net', 'media.flhe4-1.fna.whatsapp.net', 'media.frak1-2.fna.whatsapp.net', 'media.fsub6-3.fna.whatsapp.net', 'media.fsub6-7.fna.whatsapp.net', 'media.fvvi1-1.fna.whatsapp.net', 'search_v5_eligible', 'wam_real_time_enabled', 'report_disk_event', 'max_tx_rott_based_bitrate', 'product', 'media.fjdo10-2.fna.whatsapp.net', 'video_frame_crc_sample_interval', 'media_max_autodownload', '15', 'h.264', 'wam_privatestats_buffer_count', 'md_phash_v2_enabled', 'account_transfer_enabled', 'business_product_catalog', 'enable_non_dyn_codec_param_fix', 'is_user_under_epd_jurisdiction', 'media.fbog2-4.fna.whatsapp.net', 'media.fbtz1-2.fna.whatsapp.net', 'media.fcfc1-1.fna.whatsapp.net', 'media.fjed4-5.fna.whatsapp.net', 'media.flhe4-2.fna.whatsapp.net', 'media.flim1-2.fna.whatsapp.net', 'media.flos5-1.fna.whatsapp.net', 'android_key_store_auth_ver', '010', 'anr_process_monitor', 'delete_old_auth_key', 'media.fcor10-3.fna.whatsapp.net', 'storage_usage_enabled', 'android_camera2_support_level', 'dirty', 'consumer_content_provider', 'status_video_max_duration', '0c', 'bloks_cache_enabled', 'media.fadb2-2.fna.whatsapp.net', 'media.fbko1-1.fna.whatsapp.net', 'media.fbtz1-9.fna.whatsapp.net', 'media.fcgk4-4.fna.whatsapp.net', 'media.fesb4-2.fna.whatsapp.net', 'media.fevn1-2.fna.whatsapp.net', 'media.fist2-4.fna.whatsapp.net', 'media.fjdo1-1.fna.whatsapp.net', 'media.fruh4-6.fna.whatsapp.net', 'media.fsrg5-1.fna.whatsapp.net', 'media.fsub6-6.fna.whatsapp.net', 'minfpp', '5000', 'locales', 'video_max_bitrate', 'use_new_auth_key', 'bloks_http_enabled', 'heartbeat_interval', 'media.fbog11-1.fna.whatsapp.net', 'ephemeral_group_query_ts', 'fec_nack', 'search_in_storage_usage', 'c', 'media-amt2-1.cdn.whatsapp.net', 'linked_devices_ui_enabled', '14', 'async_data_load_on_startup', 'voip_incoming_xml_ack', '16', 'db_migration_step', 'init_bwe', 'max_participants', 'wam_buffer_count', 'media.fada2-2.fna.whatsapp.net', 'media.fadb3-1.fna.whatsapp.net', 'media.fcor2-2.fna.whatsapp.net', 'media.fdiy1-2.fna.whatsapp.net', 'media.frba3-2.fna.whatsapp.net', 'media.fsaw2-3.fna.whatsapp.net', '1280', 'status_grid_enabled', 'w:biz', 'product_catalog_deeplink', 'media.fgye10-2.fna.whatsapp.net', 'media.fuio11-1.fna.whatsapp.net', 'optimistic_upload', 'work_manager_init', 'lc', 'catalog_message', 'cond_net_medium', 'enable_periodical_aud_rr_processing', 'cond_range_ema_rtt', 'media-tir2-1.cdn.whatsapp.net', 'frame_ms', 'group_invite_sending', 'payments_web_enabled', 'wallpapers_v2', '0d', 'browser', 'hq_image_max_edge', 'image_edit_zoom', 'linked_devices_re_auth_enabled', 'media.faly3-2.fna.whatsapp.net', 'media.fdoh5-3.fna.whatsapp.net', 'media.fesb3-1.fna.whatsapp.net', 'media.fknu1-1.fna.whatsapp.net', 'media.fmex3-1.fna.whatsapp.net', 'media.fruh4-3.fna.whatsapp.net', '255', 'web_upgrade_to_md_modal', 'audio_piggyback_timeout_msec', 'enable_audio_oob_fec_feature', 'from_ip', 'image_max_edge', 'message_qr_enabled', 'powersave', 'receipt_pre_acking', 'video_max_edge', 'full', '011', '012', 'enable_audio_oob_fec_for_sender', 'md_voip_enabled', 'enable_privatestats', 'max_fec_ratio', 'payments_cs_faq_url', 'media-xsp1-3.cdn.whatsapp.net', 'hq_image_quality', 'media.fasr1-2.fna.whatsapp.net', 'media.fbog3-1.fna.whatsapp.net', 'media.ffjr1-6.fna.whatsapp.net', 'media.fist2-3.fna.whatsapp.net', 'media.flim4-3.fna.whatsapp.net', 'media.fpbc2-4.fna.whatsapp.net', 'media.fpku1-1.fna.whatsapp.net', 'media.frba1-1.fna.whatsapp.net', 'media.fudi1-1.fna.whatsapp.net', 'media.fvvi1-2.fna.whatsapp.net', 'gcm_fg_service', 'enable_dec_ltr_size_check', 'clear', 'lg', 'media.fgru11-1.fna.whatsapp.net', '18', 'media-lga3-2.cdn.whatsapp.net', 'pkey', '0e', 'max_subject', 'cond_range_lterm_rtt', 'announcement_groups', 'biz_profile_options', 's_t', 'media.fabv2-1.fna.whatsapp.net', 'media.fcai3-1.fna.whatsapp.net', 'media.fcgh1-1.fna.whatsapp.net', 'media.fctg1-4.fna.whatsapp.net', 'media.fdiy1-1.fna.whatsapp.net', 'media.fisb4-1.fna.whatsapp.net', 'media.fpku1-2.fna.whatsapp.net', 'media.fros9-1.fna.whatsapp.net', 'status_v3_text', 'usync_sidelist', '17', 'announcement', '...', 'md_group_notification', '0f', 'animated_pack_in_store', '013', 'America/Mexico_City', '1260', 'media-ams4-1.cdn.whatsapp.net', 'media-cgk1-2.cdn.whatsapp.net', 'media-cpt1-1.cdn.whatsapp.net', 'media-maa2-1.cdn.whatsapp.net', 'media.fgye10-1.fna.whatsapp.net', 'e', 'catalog_cart', 'hfm_string_changes', 'init_bitrate', 'packless_hsm', 'group_info', 'America/Belem', '50', '960', 'cond_range_bwe', 'decode', 'encode', 'media.fada1-8.fna.whatsapp.net', 'media.fadb1-2.fna.whatsapp.net', 'media.fasu6-1.fna.whatsapp.net', 'media.fbog4-1.fna.whatsapp.net', 'media.fcgk9-2.fna.whatsapp.net', 'media.fdoh5-2.fna.whatsapp.net', 'media.ffjr1-2.fna.whatsapp.net', 'media.fgua1-1.fna.whatsapp.net', 'media.fgye1-1.fna.whatsapp.net', 'media.fist1-4.fna.whatsapp.net', 'media.fpbc2-2.fna.whatsapp.net', 'media.fres2-1.fna.whatsapp.net', 'media.fsdq1-2.fna.whatsapp.net', 'media.fsub6-5.fna.whatsapp.net', 'profilo_enabled', 'template_hsm', 'use_disorder_prefetching_timer', 'video_codec_priority', 'vpx_max_qp', 'ptt_reduce_recording_delay', '25', 'iphone', 'Windows', 's_o', 'Africa/Lagos', 'abt', 'media-kut2-1.cdn.whatsapp.net', 'media-mba1-1.cdn.whatsapp.net', 'media-mxp1-2.cdn.whatsapp.net', 'md_blocklist_v2', 'url_text', 'enable_short_offset', 'group_join_permissions', 'enable_audio_piggyback_feature', 'image_quality', 'media.fcgk7-2.fna.whatsapp.net', 'media.fcgk8-2.fna.whatsapp.net', 'media.fclo7-1.fna.whatsapp.net', 'media.fcmn1-1.fna.whatsapp.net', 'media.feoh1-1.fna.whatsapp.net', 'media.fgyd4-3.fna.whatsapp.net', 'media.fjed4-4.fna.whatsapp.net', 'media.flim1-4.fna.whatsapp.net', 'media.flim2-4.fna.whatsapp.net', 'media.fplu6-1.fna.whatsapp.net', 'media.frak1-1.fna.whatsapp.net', 'media.fsdq1-1.fna.whatsapp.net', 'to_ip', '015', 'vp8', '19', '21', '1320', 'auth_key_ver', 'message_processing_dedup', 'server-error', 'wap4_enabled', '420', '014', 'cond_range_rtt', 'ptt_fast_lock_enabled', 'media-ort2-1.cdn.whatsapp.net', 'fwd_ui_start_ts'],
27
+ ['contact_blacklist', 'Asia/Jakarta', 'media.fepa10-1.fna.whatsapp.net', 'media.fmex10-3.fna.whatsapp.net', 'disorder_prefetching_start_when_empty', 'America/Bogota', 'use_local_probing_rx_bitrate', 'America/Argentina/Buenos_Aires', 'cross_post', 'media.fabb1-1.fna.whatsapp.net', 'media.fbog4-2.fna.whatsapp.net', 'media.fcgk9-1.fna.whatsapp.net', 'media.fcmn2-1.fna.whatsapp.net', 'media.fdel3-1.fna.whatsapp.net', 'media.ffjr1-1.fna.whatsapp.net', 'media.fgdl5-1.fna.whatsapp.net', 'media.flpb1-2.fna.whatsapp.net', 'media.fmex2-1.fna.whatsapp.net', 'media.frba2-2.fna.whatsapp.net', 'media.fros2-2.fna.whatsapp.net', 'media.fruh2-1.fna.whatsapp.net', 'media.fybz2-2.fna.whatsapp.net', 'options', '20', 'a', '017', '018', 'mute_always', 'user_notice', 'Asia/Kolkata', 'gif_provider', 'locked', 'media-gua1-1.cdn.whatsapp.net', 'piggyback_exclude_force_flush', '24', 'media.frec39-1.fna.whatsapp.net', 'user_remove', 'file_max_size', 'cond_packet_loss_pct_ema_alpha', 'media.facc1-1.fna.whatsapp.net', 'media.fadb2-1.fna.whatsapp.net', 'media.faly3-1.fna.whatsapp.net', 'media.fbdo6-2.fna.whatsapp.net', 'media.fcmn2-2.fna.whatsapp.net', 'media.fctg1-3.fna.whatsapp.net', 'media.ffez1-2.fna.whatsapp.net', 'media.fist1-3.fna.whatsapp.net', 'media.fist2-2.fna.whatsapp.net', 'media.flim2-2.fna.whatsapp.net', 'media.fmct2-3.fna.whatsapp.net', 'media.fpei3-1.fna.whatsapp.net', 'media.frba3-1.fna.whatsapp.net', 'media.fsdu8-2.fna.whatsapp.net', 'media.fstu2-1.fna.whatsapp.net', 'media_type', 'receipt_agg', '016', 'enable_pli_for_crc_mismatch', 'live', 'enc_rekey', 'frskmsg', 'd', 'media.fdel11-2.fna.whatsapp.net', 'proto', '2250', 'audio_piggyback_enable_cache', 'skip_nack_if_ltrp_sent', 'mark_dtx_jb_frames', 'web_service_delay', '7282', 'catalog_send_all', 'outgoing', '360', '30', 'LIMITED', '019', 'audio_picker', 'bpv2_phase', 'media.fada1-7.fna.whatsapp.net', 'media.faep7-1.fna.whatsapp.net', 'media.fbko1-2.fna.whatsapp.net', 'media.fbni1-2.fna.whatsapp.net', 'media.fbtz1-1.fna.whatsapp.net', 'media.fbtz1-8.fna.whatsapp.net', 'media.fcjs3-1.fna.whatsapp.net', 'media.fesb3-2.fna.whatsapp.net', 'media.fgdl5-4.fna.whatsapp.net', 'media.fist2-1.fna.whatsapp.net', 'media.flhe2-2.fna.whatsapp.net', 'media.flim2-1.fna.whatsapp.net', 'media.fmex1-1.fna.whatsapp.net', 'media.fpat3-2.fna.whatsapp.net', 'media.fpat3-3.fna.whatsapp.net', 'media.fros2-1.fna.whatsapp.net', 'media.fsdu8-1.fna.whatsapp.net', 'media.fsub3-2.fna.whatsapp.net', 'payments_chat_plugin', 'cond_congestion_no_rtcp_thr', 'green_alert', 'not-a-biz', '..', 'shops_pdp_urls_config', 'source', 'media-dus1-1.cdn.whatsapp.net', 'mute_video', '01b', 'currency', 'max_keys', 'resume_check', 'contact_array', 'qr_scanning', '23', 'b', 'media.fbfh15-1.fna.whatsapp.net', 'media.flim22-1.fna.whatsapp.net', 'media.fsdu11-1.fna.whatsapp.net', 'media.fsdu15-1.fna.whatsapp.net', 'Chrome', 'fts_version', '60', 'media.fada1-6.fna.whatsapp.net', 'media.faep4-2.fna.whatsapp.net', 'media.fbaq5-1.fna.whatsapp.net', 'media.fbni1-1.fna.whatsapp.net', 'media.fcai3-2.fna.whatsapp.net', 'media.fdel3-2.fna.whatsapp.net', 'media.fdmm3-2.fna.whatsapp.net', 'media.fhex3-1.fna.whatsapp.net', 'media.fisb4-2.fna.whatsapp.net', 'media.fkhi5-2.fna.whatsapp.net', 'media.flos2-1.fna.whatsapp.net', 'media.fmct2-1.fna.whatsapp.net', 'media.fntr7-1.fna.whatsapp.net', 'media.frak3-1.fna.whatsapp.net', 'media.fruh5-2.fna.whatsapp.net', 'media.fsub6-1.fna.whatsapp.net', 'media.fuab1-2.fna.whatsapp.net', 'media.fuio1-1.fna.whatsapp.net', 'media.fver1-1.fna.whatsapp.net', 'media.fymy1-1.fna.whatsapp.net', 'product_catalog', '1380', 'audio_oob_fec_max_pkts', '22', '254', 'media-ort2-2.cdn.whatsapp.net', 'media-sjc3-1.cdn.whatsapp.net', '1600', '01a', '01c', '405', 'key_frame_interval', 'body', 'media.fcgh20-1.fna.whatsapp.net', 'media.fesb10-2.fna.whatsapp.net', '125', '2000', 'media.fbsb1-1.fna.whatsapp.net', 'media.fcmn3-2.fna.whatsapp.net', 'media.fcpq1-1.fna.whatsapp.net', 'media.fdel1-2.fna.whatsapp.net', 'media.ffor2-1.fna.whatsapp.net', 'media.fgdl1-4.fna.whatsapp.net', 'media.fhex2-1.fna.whatsapp.net', 'media.fist1-2.fna.whatsapp.net', 'media.fjed5-2.fna.whatsapp.net', 'media.flim6-4.fna.whatsapp.net', 'media.flos2-2.fna.whatsapp.net', 'media.fntr6-2.fna.whatsapp.net', 'media.fpku3-2.fna.whatsapp.net', 'media.fros8-1.fna.whatsapp.net', 'media.fymy1-2.fna.whatsapp.net', 'ul_bw', 'ltrp_qp_offset', 'request', 'nack', 'dtx_delay_state_reset', 'timeoffline', '28', '01f', '32', 'enable_ltr_pool', 'wa_msys_crypto', '01d', '58', 'dtx_freeze_hg_update', 'nack_if_rpsi_throttled', '253', '840', 'media.famd15-1.fna.whatsapp.net', 'media.fbog17-2.fna.whatsapp.net', 'media.fcai19-2.fna.whatsapp.net', 'media.fcai21-4.fna.whatsapp.net', 'media.fesb10-4.fna.whatsapp.net', 'media.fesb10-5.fna.whatsapp.net', 'media.fmaa12-1.fna.whatsapp.net', 'media.fmex11-3.fna.whatsapp.net', 'media.fpoa33-1.fna.whatsapp.net', '1050', '021', 'clean', 'cond_range_ema_packet_loss_pct', 'media.fadb6-5.fna.whatsapp.net', 'media.faqp4-1.fna.whatsapp.net', 'media.fbaq3-1.fna.whatsapp.net', 'media.fbel2-1.fna.whatsapp.net', 'media.fblr4-2.fna.whatsapp.net', 'media.fclo8-1.fna.whatsapp.net', 'media.fcoo1-2.fna.whatsapp.net', 'media.ffjr1-4.fna.whatsapp.net', 'media.ffor9-1.fna.whatsapp.net', 'media.fisb3-1.fna.whatsapp.net', 'media.fkhi2-2.fna.whatsapp.net', 'media.fkhi4-1.fna.whatsapp.net', 'media.fpbc1-2.fna.whatsapp.net', 'media.fruh2-2.fna.whatsapp.net', 'media.fruh5-1.fna.whatsapp.net', 'media.fsub3-1.fna.whatsapp.net', 'payments_transaction_limit', '252', '27', '29', 'tintagel', '01e', '237', '780', 'callee_updated_payload', '020', '257', 'price', '025', '239', 'payments_cs_phone_number', 'mediaretry', 'w:auth:backup:token', 'Glass.caf', 'max_bitrate', '240', '251', '660', 'media.fbog16-1.fna.whatsapp.net', 'media.fcgh21-1.fna.whatsapp.net', 'media.fkul19-2.fna.whatsapp.net', 'media.flim21-2.fna.whatsapp.net', 'media.fmex10-4.fna.whatsapp.net', '64', '33', '34', '35', 'interruption', 'media.fabv3-1.fna.whatsapp.net', 'media.fadb6-1.fna.whatsapp.net', 'media.fagr1-1.fna.whatsapp.net', 'media.famd1-1.fna.whatsapp.net', 'media.famm6-1.fna.whatsapp.net', 'media.faqp2-3.fna.whatsapp.net'],
28
+ ];
29
+ exports.SINGLE_BYTE_TOKENS = [
30
+ '', 'xmlstreamstart', 'xmlstreamend', 's.whatsapp.net', 'type', 'participant', 'from', 'receipt', 'id', 'broadcast', 'status', 'message', 'notification', 'notify', 'to', 'jid', 'user', 'class', 'offline', 'g.us', 'result', 'mediatype', 'enc', 'skmsg', 'off_cnt', 'xmlns', 'presence', 'participants', 'ack', 't', 'iq', 'device_hash', 'read', 'value', 'media', 'picture', 'chatstate', 'unavailable', 'text', 'urn:xmpp:whatsapp:push', 'devices', 'verified_name', 'contact', 'composing', 'edge_routing', 'routing_info', 'item', 'image', 'verified_level', 'get', 'fallback_hostname', '2', 'media_conn', '1', 'v', 'handshake', 'fallback_class', 'count', 'config', 'offline_preview', 'download_buckets', 'w:profile:picture', 'set', 'creation', 'location', 'fallback_ip4', 'msg', 'urn:xmpp:ping', 'fallback_ip6', 'call-creator', 'relaylatency', 'success', 'subscribe', 'video', 'business_hours_config', 'platform', 'hostname', 'version', 'unknown', '0', 'ping', 'hash', 'edit', 'subject', 'max_buckets', 'download', 'delivery', 'props', 'sticker', 'name', 'last', 'contacts', 'business', 'primary', 'preview', 'w:p', 'pkmsg', 'call-id', 'retry', 'prop', 'call', 'auth_ttl', 'available', 'relay_id', 'last_id', 'day_of_week', 'w', 'host', 'seen', 'bits', 'list', 'atn', 'upload', 'is_new', 'w:stats', 'key', 'paused', 'specific_hours', 'multicast', 'stream:error', 'mmg.whatsapp.net', 'code', 'deny', 'played', 'profile', 'fna', 'device-list', 'close_time', 'latency', 'gcm', 'pop', 'audio', '26', 'w:web', 'open_time', 'error', 'auth', 'ip4', 'update', 'profile_options', 'config_value', 'category', 'catalog_not_created', '00', 'config_code', 'mode', 'catalog_status', 'ip6', 'blocklist', 'registration', '7', 'web', 'fail', 'w:m', 'cart_enabled', 'ttl', 'gif', '300', 'device_orientation', 'identity', 'query', '401', 'media-gig2-1.cdn.whatsapp.net', 'in', '3', 'te2', 'add', 'fallback', 'categories', 'ptt', 'encrypt', 'notice', 'thumbnail-document', 'item-not-found', '12', 'thumbnail-image', 'stage', 'thumbnail-link', 'usync', 'out', 'thumbnail-video', '8', '01', 'context', 'sidelist', 'thumbnail-gif', 'terminate', 'not-authorized', 'orientation', 'dhash', 'capability', 'side_list', 'md-app-state', 'description', 'serial', 'readreceipts', 'te', 'business_hours', 'md-msg-hist', 'tag', 'attribute_padding', 'document', 'open_24h', 'delete', 'expiration', 'active', 'prev_v_id', 'true', 'passive', 'index', '4', 'conflict', 'remove', 'w:gp2', 'config_expo_key', 'screen_height', 'replaced', '02', 'screen_width', 'uploadfieldstat', '2:47DEQpj8', 'media-bog1-1.cdn.whatsapp.net', 'encopt', 'url', 'catalog_exists', 'keygen', 'rate', 'offer', 'opus', 'media-mia3-1.cdn.whatsapp.net', 'privacy', 'media-mia3-2.cdn.whatsapp.net', 'signature', 'preaccept', 'token_id', 'media-eze1-1.cdn.whatsapp.net'
31
+ ];
32
+ exports.TOKEN_MAP = {};
33
+ for (const [i, SINGLE_BYTE_TOKEN] of exports.SINGLE_BYTE_TOKENS.entries()) {
34
+ exports.TOKEN_MAP[SINGLE_BYTE_TOKEN] = { index: i };
35
+ }
36
+ for (const [i, DOUBLE_BYTE_TOKEN] of exports.DOUBLE_BYTE_TOKENS.entries()) {
37
+ for (const [j, element] of DOUBLE_BYTE_TOKEN.entries()) {
38
+ exports.TOKEN_MAP[element] = { dict: i, index: j };
39
+ }
40
+ }
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import type { BinaryNode, BinaryNodeCodingOptions } from './types';
4
+ export declare const decompressingIfRequired: (buffer: Buffer) => Promise<Buffer>;
5
+ export declare const decodeDecompressedBinaryNode: (buffer: Buffer, opts: Pick<BinaryNodeCodingOptions, 'DOUBLE_BYTE_TOKENS' | 'SINGLE_BYTE_TOKENS' | 'TAGS'>, indexRef?: {
6
+ index: number;
7
+ }) => BinaryNode;
8
+ export declare const decodeBinaryNode: (buff: Buffer) => Promise<BinaryNode>;