elynn-baileys 1.0.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 (886) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +2372 -0
  3. package/WAProto/index.d.ts +15871 -0
  4. package/WAProto/index.js +115447 -0
  5. package/elynn/config.js +12 -0
  6. package/elynn/plugins/README.md +24 -0
  7. package/elynn/plugins/ai/deepseekr1.js +27 -0
  8. package/elynn/plugins/ai/gita.js +16 -0
  9. package/elynn/plugins/ai/glm47flash.js +27 -0
  10. package/elynn/plugins/ai/gptoss120b.js +27 -0
  11. package/elynn/plugins/ai/qwq32b.js +27 -0
  12. package/elynn/plugins/berita/antara.js +18 -0
  13. package/elynn/plugins/berita/cnbcindonesia.js +18 -0
  14. package/elynn/plugins/berita/cnn.js +18 -0
  15. package/elynn/plugins/berita/kompas.js +18 -0
  16. package/elynn/plugins/berita/liputan6.js +18 -0
  17. package/elynn/plugins/berita/merdeka.js +18 -0
  18. package/elynn/plugins/berita/sindonews.js +18 -0
  19. package/elynn/plugins/berita/tribunnews.js +18 -0
  20. package/elynn/plugins/downloader/douyin.js +19 -0
  21. package/elynn/plugins/downloader/facebook.js +19 -0
  22. package/elynn/plugins/downloader/github.js +25 -0
  23. package/elynn/plugins/downloader/lahelu.js +19 -0
  24. package/elynn/plugins/downloader/snackvideo.js +19 -0
  25. package/elynn/plugins/downloader/soundcloud.js +19 -0
  26. package/elynn/plugins/downloader/tiktok.js +19 -0
  27. package/elynn/plugins/downloader/tiktokhd.js +19 -0
  28. package/elynn/plugins/downloader/twitter.js +19 -0
  29. package/elynn/plugins/downloader/ummy.js +26 -0
  30. package/elynn/plugins/index.cjs +26 -0
  31. package/elynn/plugins/index.js +232 -0
  32. package/elynn/plugins/info/bmkg.js +25 -0
  33. package/elynn/plugins/info/cuaca.js +23 -0
  34. package/elynn/plugins/info/jadwaltv.js +21 -0
  35. package/elynn/plugins/maker/brat.js +45 -0
  36. package/elynn/plugins/maker/bratvid.js +52 -0
  37. package/elynn/plugins/search/8font.js +18 -0
  38. package/elynn/plugins/search/applemusic.js +18 -0
  39. package/elynn/plugins/search/bimg.js +19 -0
  40. package/elynn/plugins/search/brave.js +24 -0
  41. package/elynn/plugins/search/duckduckgo.js +18 -0
  42. package/elynn/plugins/search/lahelu.js +18 -0
  43. package/elynn/plugins/search/mangatoon.js +18 -0
  44. package/elynn/plugins/search/mcpedl.js +18 -0
  45. package/elynn/plugins/search/myinstants.js +18 -0
  46. package/elynn/plugins/search/otakotaku.js +18 -0
  47. package/elynn/plugins/search/pinterest.js +19 -0
  48. package/elynn/plugins/search/resep.js +18 -0
  49. package/elynn/plugins/search/seegore.js +19 -0
  50. package/elynn/plugins/search/soundcloud.js +18 -0
  51. package/elynn/plugins/search/youtube.js +18 -0
  52. package/elynn/plugins/stalk/github.js +28 -0
  53. package/elynn/plugins/stalk/pinterest.js +27 -0
  54. package/elynn/plugins/stalk/threads.js +24 -0
  55. package/elynn/plugins/stalk/tiktok.js +27 -0
  56. package/elynn/plugins/stalk/twitter.js +27 -0
  57. package/elynn/plugins/stalk/youtube.js +27 -0
  58. package/engine-requirements.js +45 -0
  59. package/lib/Defaults/index.d.ts +145 -0
  60. package/lib/Defaults/index.d.ts.map +1 -0
  61. package/lib/Defaults/index.js +152 -0
  62. package/lib/Defaults/index.js.map +1 -0
  63. package/lib/Discord/Client.cjs +274 -0
  64. package/lib/Discord/Client.d.ts +98 -0
  65. package/lib/Discord/Client.js +274 -0
  66. package/lib/Discord/Constants.cjs +1842 -0
  67. package/lib/Discord/Constants.d.ts +1514 -0
  68. package/lib/Discord/Constants.js +1842 -0
  69. package/lib/Discord/connect-dc.js +5 -0
  70. package/lib/Discord/esm-bridge.mjs +128 -0
  71. package/lib/Discord/gateway/Dispatcher.cjs +86 -0
  72. package/lib/Discord/gateway/Dispatcher.d.ts +17 -0
  73. package/lib/Discord/gateway/Dispatcher.js +86 -0
  74. package/lib/Discord/gateway/Shard.cjs +723 -0
  75. package/lib/Discord/gateway/Shard.d.ts +87 -0
  76. package/lib/Discord/gateway/Shard.js +723 -0
  77. package/lib/Discord/gateway/ShardManager.cjs +350 -0
  78. package/lib/Discord/gateway/ShardManager.d.ts +31 -0
  79. package/lib/Discord/gateway/ShardManager.js +350 -0
  80. package/lib/Discord/gateway/compression/base.cjs +14 -0
  81. package/lib/Discord/gateway/compression/base.d.ts +6 -0
  82. package/lib/Discord/gateway/compression/base.js +14 -0
  83. package/lib/Discord/gateway/compression/config.cjs +47 -0
  84. package/lib/Discord/gateway/compression/config.d.ts +17 -0
  85. package/lib/Discord/gateway/compression/config.js +47 -0
  86. package/lib/Discord/gateway/compression/pako.cjs +45 -0
  87. package/lib/Discord/gateway/compression/pako.d.ts +16 -0
  88. package/lib/Discord/gateway/compression/pako.js +45 -0
  89. package/lib/Discord/gateway/compression/zlib-native.cjs +50 -0
  90. package/lib/Discord/gateway/compression/zlib-native.d.ts +10 -0
  91. package/lib/Discord/gateway/compression/zlib-native.js +50 -0
  92. package/lib/Discord/gateway/compression/zlib-sync.cjs +32 -0
  93. package/lib/Discord/gateway/compression/zlib-sync.d.ts +8 -0
  94. package/lib/Discord/gateway/compression/zlib-sync.js +32 -0
  95. package/lib/Discord/gateway/compression/zstd-napi.cjs +74 -0
  96. package/lib/Discord/gateway/compression/zstd-napi.d.ts +9 -0
  97. package/lib/Discord/gateway/compression/zstd-napi.js +74 -0
  98. package/lib/Discord/gateway/compression/zstd-native.cjs +48 -0
  99. package/lib/Discord/gateway/compression/zstd-native.d.ts +9 -0
  100. package/lib/Discord/gateway/compression/zstd-native.js +48 -0
  101. package/lib/Discord/gateway/events.cjs +956 -0
  102. package/lib/Discord/gateway/events.d.ts +75 -0
  103. package/lib/Discord/gateway/events.js +956 -0
  104. package/lib/Discord/index.cjs +228 -0
  105. package/lib/Discord/index.d.ts +98 -0
  106. package/lib/Discord/index.js +228 -0
  107. package/lib/Discord/rest/Bucket.cjs +77 -0
  108. package/lib/Discord/rest/Bucket.d.ts +32 -0
  109. package/lib/Discord/rest/Bucket.js +77 -0
  110. package/lib/Discord/rest/DiscordHTTPError.cjs +66 -0
  111. package/lib/Discord/rest/DiscordHTTPError.d.ts +15 -0
  112. package/lib/Discord/rest/DiscordHTTPError.js +66 -0
  113. package/lib/Discord/rest/DiscordRESTError.cjs +88 -0
  114. package/lib/Discord/rest/DiscordRESTError.d.ts +18 -0
  115. package/lib/Discord/rest/DiscordRESTError.js +88 -0
  116. package/lib/Discord/rest/OAuthHelper.cjs +220 -0
  117. package/lib/Discord/rest/OAuthHelper.d.ts +61 -0
  118. package/lib/Discord/rest/OAuthHelper.js +220 -0
  119. package/lib/Discord/rest/RESTManager.cjs +119 -0
  120. package/lib/Discord/rest/RESTManager.d.ts +42 -0
  121. package/lib/Discord/rest/RESTManager.js +119 -0
  122. package/lib/Discord/rest/RequestHandler.cjs +323 -0
  123. package/lib/Discord/rest/RequestHandler.d.ts +27 -0
  124. package/lib/Discord/rest/RequestHandler.js +323 -0
  125. package/lib/Discord/rest/SequentialBucket.cjs +74 -0
  126. package/lib/Discord/rest/SequentialBucket.d.ts +24 -0
  127. package/lib/Discord/rest/SequentialBucket.js +74 -0
  128. package/lib/Discord/routes/Applications.cjs +618 -0
  129. package/lib/Discord/routes/Applications.d.ts +230 -0
  130. package/lib/Discord/routes/Applications.js +618 -0
  131. package/lib/Discord/routes/Channels.cjs +1191 -0
  132. package/lib/Discord/routes/Channels.d.ts +428 -0
  133. package/lib/Discord/routes/Channels.js +1192 -0
  134. package/lib/Discord/routes/Guilds.cjs +1785 -0
  135. package/lib/Discord/routes/Guilds.d.ts +644 -0
  136. package/lib/Discord/routes/Guilds.js +1785 -0
  137. package/lib/Discord/routes/Interactions.cjs +205 -0
  138. package/lib/Discord/routes/Interactions.d.ts +74 -0
  139. package/lib/Discord/routes/Interactions.js +205 -0
  140. package/lib/Discord/routes/Lobbies.cjs +190 -0
  141. package/lib/Discord/routes/Lobbies.d.ts +70 -0
  142. package/lib/Discord/routes/Lobbies.js +190 -0
  143. package/lib/Discord/routes/Miscellaneous.cjs +113 -0
  144. package/lib/Discord/routes/Miscellaneous.d.ts +36 -0
  145. package/lib/Discord/routes/Miscellaneous.js +113 -0
  146. package/lib/Discord/routes/OAuth.cjs +343 -0
  147. package/lib/Discord/routes/OAuth.d.ts +107 -0
  148. package/lib/Discord/routes/OAuth.js +343 -0
  149. package/lib/Discord/routes/Users.cjs +100 -0
  150. package/lib/Discord/routes/Users.d.ts +32 -0
  151. package/lib/Discord/routes/Users.js +100 -0
  152. package/lib/Discord/routes/Webhooks.cjs +301 -0
  153. package/lib/Discord/routes/Webhooks.d.ts +126 -0
  154. package/lib/Discord/routes/Webhooks.js +301 -0
  155. package/lib/Discord/structures/AnnouncementChannel.cjs +46 -0
  156. package/lib/Discord/structures/AnnouncementChannel.d.ts +34 -0
  157. package/lib/Discord/structures/AnnouncementChannel.js +46 -0
  158. package/lib/Discord/structures/AnnouncementThreadChannel.cjs +28 -0
  159. package/lib/Discord/structures/AnnouncementThreadChannel.d.ts +17 -0
  160. package/lib/Discord/structures/AnnouncementThreadChannel.js +28 -0
  161. package/lib/Discord/structures/Application.cjs +477 -0
  162. package/lib/Discord/structures/Application.d.ts +166 -0
  163. package/lib/Discord/structures/Application.js +477 -0
  164. package/lib/Discord/structures/ApplicationCommand.cjs +146 -0
  165. package/lib/Discord/structures/ApplicationCommand.d.ts +75 -0
  166. package/lib/Discord/structures/ApplicationCommand.js +146 -0
  167. package/lib/Discord/structures/Attachment.cjs +78 -0
  168. package/lib/Discord/structures/Attachment.d.ts +43 -0
  169. package/lib/Discord/structures/Attachment.js +78 -0
  170. package/lib/Discord/structures/AuditLogEntry.cjs +54 -0
  171. package/lib/Discord/structures/AuditLogEntry.d.ts +25 -0
  172. package/lib/Discord/structures/AuditLogEntry.js +54 -0
  173. package/lib/Discord/structures/AutoModerationRule.cjs +140 -0
  174. package/lib/Discord/structures/AutoModerationRule.d.ts +48 -0
  175. package/lib/Discord/structures/AutoModerationRule.js +140 -0
  176. package/lib/Discord/structures/AutocompleteInteraction.cjs +120 -0
  177. package/lib/Discord/structures/AutocompleteInteraction.d.ts +61 -0
  178. package/lib/Discord/structures/AutocompleteInteraction.js +120 -0
  179. package/lib/Discord/structures/Base.cjs +58 -0
  180. package/lib/Discord/structures/Base.d.ts +19 -0
  181. package/lib/Discord/structures/Base.js +58 -0
  182. package/lib/Discord/structures/BaseEntitlement.cjs +49 -0
  183. package/lib/Discord/structures/BaseEntitlement.d.ts +20 -0
  184. package/lib/Discord/structures/BaseEntitlement.js +49 -0
  185. package/lib/Discord/structures/CategoryChannel.cjs +106 -0
  186. package/lib/Discord/structures/CategoryChannel.d.ts +40 -0
  187. package/lib/Discord/structures/CategoryChannel.js +106 -0
  188. package/lib/Discord/structures/Channel.cjs +92 -0
  189. package/lib/Discord/structures/Channel.d.ts +19 -0
  190. package/lib/Discord/structures/Channel.js +92 -0
  191. package/lib/Discord/structures/ClientApplication.cjs +273 -0
  192. package/lib/Discord/structures/ClientApplication.d.ts +189 -0
  193. package/lib/Discord/structures/ClientApplication.js +273 -0
  194. package/lib/Discord/structures/CommandInteraction.cjs +324 -0
  195. package/lib/Discord/structures/CommandInteraction.d.ts +166 -0
  196. package/lib/Discord/structures/CommandInteraction.js +324 -0
  197. package/lib/Discord/structures/ComponentInteraction.cjs +338 -0
  198. package/lib/Discord/structures/ComponentInteraction.d.ts +180 -0
  199. package/lib/Discord/structures/ComponentInteraction.js +338 -0
  200. package/lib/Discord/structures/Entitlement.cjs +27 -0
  201. package/lib/Discord/structures/Entitlement.d.ts +11 -0
  202. package/lib/Discord/structures/Entitlement.js +27 -0
  203. package/lib/Discord/structures/ExtendedUser.cjs +58 -0
  204. package/lib/Discord/structures/ExtendedUser.d.ts +25 -0
  205. package/lib/Discord/structures/ExtendedUser.js +58 -0
  206. package/lib/Discord/structures/ForumChannel.cjs +20 -0
  207. package/lib/Discord/structures/ForumChannel.d.ts +11 -0
  208. package/lib/Discord/structures/ForumChannel.js +20 -0
  209. package/lib/Discord/structures/GroupChannel.cjs +172 -0
  210. package/lib/Discord/structures/GroupChannel.d.ts +60 -0
  211. package/lib/Discord/structures/GroupChannel.js +172 -0
  212. package/lib/Discord/structures/Guild.cjs +1415 -0
  213. package/lib/Discord/structures/Guild.d.ts +687 -0
  214. package/lib/Discord/structures/Guild.js +1415 -0
  215. package/lib/Discord/structures/GuildChannel.cjs +90 -0
  216. package/lib/Discord/structures/GuildChannel.d.ts +36 -0
  217. package/lib/Discord/structures/GuildChannel.js +90 -0
  218. package/lib/Discord/structures/GuildPreview.cjs +153 -0
  219. package/lib/Discord/structures/GuildPreview.d.ts +49 -0
  220. package/lib/Discord/structures/GuildPreview.js +153 -0
  221. package/lib/Discord/structures/GuildScheduledEvent.cjs +188 -0
  222. package/lib/Discord/structures/GuildScheduledEvent.d.ts +59 -0
  223. package/lib/Discord/structures/GuildScheduledEvent.js +188 -0
  224. package/lib/Discord/structures/GuildTemplate.cjs +118 -0
  225. package/lib/Discord/structures/GuildTemplate.d.ts +48 -0
  226. package/lib/Discord/structures/GuildTemplate.js +118 -0
  227. package/lib/Discord/structures/Integration.cjs +157 -0
  228. package/lib/Discord/structures/Integration.d.ts +53 -0
  229. package/lib/Discord/structures/Integration.js +157 -0
  230. package/lib/Discord/structures/Interaction.cjs +91 -0
  231. package/lib/Discord/structures/Interaction.d.ts +39 -0
  232. package/lib/Discord/structures/Interaction.js +91 -0
  233. package/lib/Discord/structures/InteractionResolvedChannel.cjs +46 -0
  234. package/lib/Discord/structures/InteractionResolvedChannel.d.ts +27 -0
  235. package/lib/Discord/structures/InteractionResolvedChannel.js +46 -0
  236. package/lib/Discord/structures/Invite.cjs +240 -0
  237. package/lib/Discord/structures/Invite.d.ts +132 -0
  238. package/lib/Discord/structures/Invite.js +240 -0
  239. package/lib/Discord/structures/InviteGuild.cjs +130 -0
  240. package/lib/Discord/structures/InviteGuild.d.ts +54 -0
  241. package/lib/Discord/structures/InviteGuild.js +130 -0
  242. package/lib/Discord/structures/InviteRole.cjs +110 -0
  243. package/lib/Discord/structures/InviteRole.d.ts +53 -0
  244. package/lib/Discord/structures/InviteRole.js +110 -0
  245. package/lib/Discord/structures/Lobby.cjs +88 -0
  246. package/lib/Discord/structures/Lobby.d.ts +54 -0
  247. package/lib/Discord/structures/Lobby.js +88 -0
  248. package/lib/Discord/structures/LobbyMember.cjs +33 -0
  249. package/lib/Discord/structures/LobbyMember.d.ts +15 -0
  250. package/lib/Discord/structures/LobbyMember.js +33 -0
  251. package/lib/Discord/structures/MediaChannel.cjs +20 -0
  252. package/lib/Discord/structures/MediaChannel.d.ts +11 -0
  253. package/lib/Discord/structures/MediaChannel.js +20 -0
  254. package/lib/Discord/structures/Member.cjs +325 -0
  255. package/lib/Discord/structures/Member.d.ts +140 -0
  256. package/lib/Discord/structures/Member.js +325 -0
  257. package/lib/Discord/structures/Message.cjs +627 -0
  258. package/lib/Discord/structures/Message.d.ts +223 -0
  259. package/lib/Discord/structures/Message.js +627 -0
  260. package/lib/Discord/structures/ModalSubmitInteraction.cjs +295 -0
  261. package/lib/Discord/structures/ModalSubmitInteraction.d.ts +138 -0
  262. package/lib/Discord/structures/ModalSubmitInteraction.js +295 -0
  263. package/lib/Discord/structures/OAuthApplication.cjs +244 -0
  264. package/lib/Discord/structures/OAuthApplication.d.ts +77 -0
  265. package/lib/Discord/structures/OAuthApplication.js +244 -0
  266. package/lib/Discord/structures/OAuthGuild.cjs +107 -0
  267. package/lib/Discord/structures/OAuthGuild.d.ts +43 -0
  268. package/lib/Discord/structures/OAuthGuild.js +107 -0
  269. package/lib/Discord/structures/PartialApplication.cjs +101 -0
  270. package/lib/Discord/structures/PartialApplication.d.ts +29 -0
  271. package/lib/Discord/structures/PartialApplication.js +101 -0
  272. package/lib/Discord/structures/Permission.cjs +66 -0
  273. package/lib/Discord/structures/Permission.d.ts +21 -0
  274. package/lib/Discord/structures/Permission.js +66 -0
  275. package/lib/Discord/structures/PermissionOverwrite.cjs +50 -0
  276. package/lib/Discord/structures/PermissionOverwrite.d.ts +25 -0
  277. package/lib/Discord/structures/PermissionOverwrite.js +50 -0
  278. package/lib/Discord/structures/PingInteraction.cjs +27 -0
  279. package/lib/Discord/structures/PingInteraction.d.ts +15 -0
  280. package/lib/Discord/structures/PingInteraction.js +27 -0
  281. package/lib/Discord/structures/Poll.cjs +77 -0
  282. package/lib/Discord/structures/Poll.d.ts +27 -0
  283. package/lib/Discord/structures/Poll.js +77 -0
  284. package/lib/Discord/structures/PrimaryGuild.cjs +92 -0
  285. package/lib/Discord/structures/PrimaryGuild.d.ts +23 -0
  286. package/lib/Discord/structures/PrimaryGuild.js +92 -0
  287. package/lib/Discord/structures/PrivateChannel.cjs +139 -0
  288. package/lib/Discord/structures/PrivateChannel.d.ts +102 -0
  289. package/lib/Discord/structures/PrivateChannel.js +139 -0
  290. package/lib/Discord/structures/PrivateThreadChannel.cjs +28 -0
  291. package/lib/Discord/structures/PrivateThreadChannel.d.ts +17 -0
  292. package/lib/Discord/structures/PrivateThreadChannel.js +28 -0
  293. package/lib/Discord/structures/PublicThreadChannel.cjs +38 -0
  294. package/lib/Discord/structures/PublicThreadChannel.d.ts +20 -0
  295. package/lib/Discord/structures/PublicThreadChannel.js +38 -0
  296. package/lib/Discord/structures/Role.cjs +156 -0
  297. package/lib/Discord/structures/Role.d.ts +56 -0
  298. package/lib/Discord/structures/Role.js +156 -0
  299. package/lib/Discord/structures/SKU.cjs +70 -0
  300. package/lib/Discord/structures/SKU.d.ts +33 -0
  301. package/lib/Discord/structures/SKU.js +70 -0
  302. package/lib/Discord/structures/Soundboard.cjs +74 -0
  303. package/lib/Discord/structures/Soundboard.d.ts +42 -0
  304. package/lib/Discord/structures/Soundboard.js +74 -0
  305. package/lib/Discord/structures/StageChannel.cjs +45 -0
  306. package/lib/Discord/structures/StageChannel.d.ts +31 -0
  307. package/lib/Discord/structures/StageChannel.js +45 -0
  308. package/lib/Discord/structures/StageInstance.cjs +95 -0
  309. package/lib/Discord/structures/StageInstance.d.ts +35 -0
  310. package/lib/Discord/structures/StageInstance.js +95 -0
  311. package/lib/Discord/structures/Subscription.cjs +39 -0
  312. package/lib/Discord/structures/Subscription.d.ts +25 -0
  313. package/lib/Discord/structures/Subscription.js +39 -0
  314. package/lib/Discord/structures/Team.cjs +86 -0
  315. package/lib/Discord/structures/Team.d.ts +28 -0
  316. package/lib/Discord/structures/Team.js +86 -0
  317. package/lib/Discord/structures/TestEntitlement.cjs +22 -0
  318. package/lib/Discord/structures/TestEntitlement.d.ts +10 -0
  319. package/lib/Discord/structures/TestEntitlement.js +22 -0
  320. package/lib/Discord/structures/TextChannel.cjs +48 -0
  321. package/lib/Discord/structures/TextChannel.d.ts +34 -0
  322. package/lib/Discord/structures/TextChannel.js +48 -0
  323. package/lib/Discord/structures/TextableChannel.cjs +281 -0
  324. package/lib/Discord/structures/TextableChannel.d.ts +167 -0
  325. package/lib/Discord/structures/TextableChannel.js +281 -0
  326. package/lib/Discord/structures/TextableVoiceChannel.cjs +79 -0
  327. package/lib/Discord/structures/TextableVoiceChannel.d.ts +34 -0
  328. package/lib/Discord/structures/TextableVoiceChannel.js +79 -0
  329. package/lib/Discord/structures/ThreadChannel.cjs +300 -0
  330. package/lib/Discord/structures/ThreadChannel.d.ts +170 -0
  331. package/lib/Discord/structures/ThreadChannel.js +300 -0
  332. package/lib/Discord/structures/ThreadOnlyChannel.cjs +231 -0
  333. package/lib/Discord/structures/ThreadOnlyChannel.d.ts +95 -0
  334. package/lib/Discord/structures/ThreadOnlyChannel.js +231 -0
  335. package/lib/Discord/structures/ThreadableChannel.cjs +59 -0
  336. package/lib/Discord/structures/ThreadableChannel.d.ts +35 -0
  337. package/lib/Discord/structures/ThreadableChannel.js +59 -0
  338. package/lib/Discord/structures/UnavailableGuild.cjs +22 -0
  339. package/lib/Discord/structures/UnavailableGuild.d.ts +10 -0
  340. package/lib/Discord/structures/UnavailableGuild.js +22 -0
  341. package/lib/Discord/structures/User.cjs +240 -0
  342. package/lib/Discord/structures/User.d.ts +90 -0
  343. package/lib/Discord/structures/User.js +240 -0
  344. package/lib/Discord/structures/VoiceChannel.cjs +36 -0
  345. package/lib/Discord/structures/VoiceChannel.d.ts +19 -0
  346. package/lib/Discord/structures/VoiceChannel.js +36 -0
  347. package/lib/Discord/structures/VoiceState.cjs +141 -0
  348. package/lib/Discord/structures/VoiceState.d.ts +49 -0
  349. package/lib/Discord/structures/VoiceState.js +141 -0
  350. package/lib/Discord/structures/Webhook.cjs +240 -0
  351. package/lib/Discord/structures/Webhook.d.ts +126 -0
  352. package/lib/Discord/structures/Webhook.js +240 -0
  353. package/lib/Discord/types/applications.d.ts +695 -0
  354. package/lib/Discord/types/audit-log.d.ts +116 -0
  355. package/lib/Discord/types/auto-moderation.d.ts +99 -0
  356. package/lib/Discord/types/channels.d.ts +1570 -0
  357. package/lib/Discord/types/client.d.ts +250 -0
  358. package/lib/Discord/types/events.d.ts +224 -0
  359. package/lib/Discord/types/gateway-raw.d.ts +585 -0
  360. package/lib/Discord/types/gateway.d.ts +401 -0
  361. package/lib/Discord/types/guild-template.d.ts +25 -0
  362. package/lib/Discord/types/guilds.d.ts +987 -0
  363. package/lib/Discord/types/index.d.ts +24 -0
  364. package/lib/Discord/types/interactions.d.ts +524 -0
  365. package/lib/Discord/types/invites.d.ts +117 -0
  366. package/lib/Discord/types/json.d.ts +833 -0
  367. package/lib/Discord/types/lobbies.d.ts +31 -0
  368. package/lib/Discord/types/misc.d.ts +25 -0
  369. package/lib/Discord/types/namespaced.d.ts +22 -0
  370. package/lib/Discord/types/oauth.d.ts +206 -0
  371. package/lib/Discord/types/request-handler.d.ts +54 -0
  372. package/lib/Discord/types/scheduled-events.d.ts +87 -0
  373. package/lib/Discord/types/shared.d.ts +24 -0
  374. package/lib/Discord/types/users.d.ts +104 -0
  375. package/lib/Discord/types/voice.d.ts +45 -0
  376. package/lib/Discord/types/webhooks.d.ts +75 -0
  377. package/lib/Discord/util/Collection.cjs +77 -0
  378. package/lib/Discord/util/Collection.d.ts +47 -0
  379. package/lib/Discord/util/Collection.js +77 -0
  380. package/lib/Discord/util/Errors.cjs +84 -0
  381. package/lib/Discord/util/Errors.d.ts +43 -0
  382. package/lib/Discord/util/Errors.js +84 -0
  383. package/lib/Discord/util/QueryBuilder.cjs +20 -0
  384. package/lib/Discord/util/QueryBuilder.d.ts +4 -0
  385. package/lib/Discord/util/QueryBuilder.js +20 -0
  386. package/lib/Discord/util/Routes.cjs +293 -0
  387. package/lib/Discord/util/Routes.d.ts +145 -0
  388. package/lib/Discord/util/Routes.js +293 -0
  389. package/lib/Discord/util/SimpleCollection.cjs +82 -0
  390. package/lib/Discord/util/SimpleCollection.d.ts +12 -0
  391. package/lib/Discord/util/SimpleCollection.js +82 -0
  392. package/lib/Discord/util/Time.cjs +93 -0
  393. package/lib/Discord/util/Time.d.ts +39 -0
  394. package/lib/Discord/util/Time.js +93 -0
  395. package/lib/Discord/util/TypedCollection.cjs +81 -0
  396. package/lib/Discord/util/TypedCollection.d.ts +24 -0
  397. package/lib/Discord/util/TypedCollection.js +81 -0
  398. package/lib/Discord/util/TypedEmitter.cjs +20 -0
  399. package/lib/Discord/util/TypedEmitter.d.ts +18 -0
  400. package/lib/Discord/util/TypedEmitter.js +20 -0
  401. package/lib/Discord/util/Util.cjs +906 -0
  402. package/lib/Discord/util/Util.d.ts +66 -0
  403. package/lib/Discord/util/Util.js +906 -0
  404. package/lib/Discord/util/interactions/InteractionOptionsWrapper.cjs +211 -0
  405. package/lib/Discord/util/interactions/InteractionOptionsWrapper.d.ts +170 -0
  406. package/lib/Discord/util/interactions/InteractionOptionsWrapper.js +211 -0
  407. package/lib/Discord/util/interactions/MessageInteractionResponse.cjs +29 -0
  408. package/lib/Discord/util/interactions/MessageInteractionResponse.d.ts +27 -0
  409. package/lib/Discord/util/interactions/MessageInteractionResponse.js +29 -0
  410. package/lib/Discord/util/interactions/ModalSubmitInteractionComponentsWrapper.cjs +101 -0
  411. package/lib/Discord/util/interactions/ModalSubmitInteractionComponentsWrapper.d.ts +157 -0
  412. package/lib/Discord/util/interactions/ModalSubmitInteractionComponentsWrapper.js +101 -0
  413. package/lib/Discord/util/interactions/SelectMenuValuesWrapper.cjs +81 -0
  414. package/lib/Discord/util/interactions/SelectMenuValuesWrapper.d.ts +59 -0
  415. package/lib/Discord/util/interactions/SelectMenuValuesWrapper.js +81 -0
  416. package/lib/Discord/util/interactions/shared.cjs +20 -0
  417. package/lib/Discord/util/interactions/shared.d.ts +7 -0
  418. package/lib/Discord/util/interactions/shared.js +20 -0
  419. package/lib/Discord/util/warning.cjs +34 -0
  420. package/lib/Discord/util/warning.d.ts +6 -0
  421. package/lib/Discord/util/warning.js +34 -0
  422. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  423. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  424. package/lib/Signal/Group/ciphertext-message.js +12 -0
  425. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  426. package/lib/Signal/Group/group-session-builder.d.ts +8 -0
  427. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  428. package/lib/Signal/Group/group-session-builder.js +30 -0
  429. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  430. package/lib/Signal/Group/group_cipher.d.ts +11 -0
  431. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  432. package/lib/Signal/Group/group_cipher.js +82 -0
  433. package/lib/Signal/Group/group_cipher.js.map +1 -0
  434. package/lib/Signal/Group/index.d.ts +12 -0
  435. package/lib/Signal/Group/index.d.ts.map +1 -0
  436. package/lib/Signal/Group/index.js +12 -0
  437. package/lib/Signal/Group/index.js.map +1 -0
  438. package/lib/Signal/Group/keyhelper.d.ts +7 -0
  439. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  440. package/lib/Signal/Group/keyhelper.js +18 -0
  441. package/lib/Signal/Group/keyhelper.js.map +1 -0
  442. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  443. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  444. package/lib/Signal/Group/sender-chain-key.js +26 -0
  445. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  446. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  447. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  448. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  449. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  450. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  451. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  452. package/lib/Signal/Group/sender-key-message.js +66 -0
  453. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  454. package/lib/Signal/Group/sender-key-name.d.ts +12 -0
  455. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  456. package/lib/Signal/Group/sender-key-name.js +48 -0
  457. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  458. package/lib/Signal/Group/sender-key-record.d.ts +13 -0
  459. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  460. package/lib/Signal/Group/sender-key-record.js +41 -0
  461. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  462. package/lib/Signal/Group/sender-key-state.d.ts +17 -0
  463. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  464. package/lib/Signal/Group/sender-key-state.js +84 -0
  465. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  466. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  467. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  468. package/lib/Signal/Group/sender-message-key.js +26 -0
  469. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  470. package/lib/Signal/libsignal.d.ts +55 -0
  471. package/lib/Signal/libsignal.d.ts.map +1 -0
  472. package/lib/Signal/libsignal.js +431 -0
  473. package/lib/Signal/libsignal.js.map +1 -0
  474. package/lib/Signal/lid-mapping.d.ts +21 -0
  475. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  476. package/lib/Signal/lid-mapping.js +277 -0
  477. package/lib/Signal/lid-mapping.js.map +1 -0
  478. package/lib/Socket/Client/index.d.ts +3 -0
  479. package/lib/Socket/Client/index.d.ts.map +1 -0
  480. package/lib/Socket/Client/index.js +3 -0
  481. package/lib/Socket/Client/index.js.map +1 -0
  482. package/lib/Socket/Client/types.d.ts +6 -0
  483. package/lib/Socket/Client/types.d.ts.map +1 -0
  484. package/lib/Socket/Client/types.js +11 -0
  485. package/lib/Socket/Client/types.js.map +1 -0
  486. package/lib/Socket/Client/websocket.d.ts +13 -0
  487. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  488. package/lib/Socket/Client/websocket.js +54 -0
  489. package/lib/Socket/Client/websocket.js.map +1 -0
  490. package/lib/Socket/business.d.ts +395 -0
  491. package/lib/Socket/business.d.ts.map +1 -0
  492. package/lib/Socket/business.js +380 -0
  493. package/lib/Socket/business.js.map +1 -0
  494. package/lib/Socket/chats.d.ts +137 -0
  495. package/lib/Socket/chats.d.ts.map +1 -0
  496. package/lib/Socket/chats.js +1214 -0
  497. package/lib/Socket/chats.js.map +1 -0
  498. package/lib/Socket/communities.d.ts +562 -0
  499. package/lib/Socket/communities.d.ts.map +1 -0
  500. package/lib/Socket/communities.js +432 -0
  501. package/lib/Socket/communities.js.map +1 -0
  502. package/lib/Socket/groups.d.ts +286 -0
  503. package/lib/Socket/groups.d.ts.map +1 -0
  504. package/lib/Socket/groups.js +348 -0
  505. package/lib/Socket/groups.js.map +1 -0
  506. package/lib/Socket/index.d.ts +530 -0
  507. package/lib/Socket/index.d.ts.map +1 -0
  508. package/lib/Socket/index.js +12 -0
  509. package/lib/Socket/index.js.map +1 -0
  510. package/lib/Socket/messages-recv.d.ts +334 -0
  511. package/lib/Socket/messages-recv.d.ts.map +1 -0
  512. package/lib/Socket/messages-recv.js +1765 -0
  513. package/lib/Socket/messages-recv.js.map +1 -0
  514. package/lib/Socket/messages-send.d.ts +330 -0
  515. package/lib/Socket/messages-send.d.ts.map +1 -0
  516. package/lib/Socket/messages-send.js +1368 -0
  517. package/lib/Socket/messages-send.js.map +1 -0
  518. package/lib/Socket/mex.d.ts +2 -0
  519. package/lib/Socket/mex.d.ts.map +1 -0
  520. package/lib/Socket/mex.js +42 -0
  521. package/lib/Socket/mex.js.map +1 -0
  522. package/lib/Socket/newsletter.d.ts +283 -0
  523. package/lib/Socket/newsletter.d.ts.map +1 -0
  524. package/lib/Socket/newsletter.js +226 -0
  525. package/lib/Socket/newsletter.js.map +1 -0
  526. package/lib/Socket/socket.d.ts +61 -0
  527. package/lib/Socket/socket.d.ts.map +1 -0
  528. package/lib/Socket/socket.js +972 -0
  529. package/lib/Socket/socket.js.map +1 -0
  530. package/lib/Store/index.d.ts +4 -0
  531. package/lib/Store/index.d.ts.map +1 -0
  532. package/lib/Store/index.js +4 -0
  533. package/lib/Store/index.js.map +1 -0
  534. package/lib/Store/make-in-memory-store.d.ts +63 -0
  535. package/lib/Store/make-in-memory-store.d.ts.map +1 -0
  536. package/lib/Store/make-in-memory-store.js +471 -0
  537. package/lib/Store/make-in-memory-store.js.map +1 -0
  538. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  539. package/lib/Store/make-ordered-dictionary.d.ts.map +1 -0
  540. package/lib/Store/make-ordered-dictionary.js +79 -0
  541. package/lib/Store/make-ordered-dictionary.js.map +1 -0
  542. package/lib/Store/object-repository.d.ts +11 -0
  543. package/lib/Store/object-repository.d.ts.map +1 -0
  544. package/lib/Store/object-repository.js +24 -0
  545. package/lib/Store/object-repository.js.map +1 -0
  546. package/lib/Telegram/button.js +147 -0
  547. package/lib/Telegram/cli.mjs +105 -0
  548. package/lib/Telegram/composer.js +582 -0
  549. package/lib/Telegram/context.js +855 -0
  550. package/lib/Telegram/core/helpers/args.js +57 -0
  551. package/lib/Telegram/core/helpers/check.js +55 -0
  552. package/lib/Telegram/core/helpers/compact.js +16 -0
  553. package/lib/Telegram/core/helpers/deunionize.js +12 -0
  554. package/lib/Telegram/core/helpers/formatting.js +91 -0
  555. package/lib/Telegram/core/helpers/util.js +50 -0
  556. package/lib/Telegram/core/network/client.js +330 -0
  557. package/lib/Telegram/core/network/error.js +21 -0
  558. package/lib/Telegram/core/network/multipart-stream.js +71 -0
  559. package/lib/Telegram/core/network/polling.js +87 -0
  560. package/lib/Telegram/core/network/webhook.js +54 -0
  561. package/lib/Telegram/core/types/typegram.js +27 -0
  562. package/lib/Telegram/elynn-telegraf.js +256 -0
  563. package/lib/Telegram/esm-bridge.mjs +21 -0
  564. package/lib/Telegram/filters.js +69 -0
  565. package/lib/Telegram/format.js +58 -0
  566. package/lib/Telegram/future.js +140 -0
  567. package/lib/Telegram/index.js +59 -0
  568. package/lib/Telegram/input.js +61 -0
  569. package/lib/Telegram/markup.js +121 -0
  570. package/lib/Telegram/middleware.js +2 -0
  571. package/lib/Telegram/package.json +3 -0
  572. package/lib/Telegram/reactions.js +84 -0
  573. package/lib/Telegram/router.js +46 -0
  574. package/lib/Telegram/scenes/base.js +39 -0
  575. package/lib/Telegram/scenes/context.js +104 -0
  576. package/lib/Telegram/scenes/index.js +21 -0
  577. package/lib/Telegram/scenes/stage.js +49 -0
  578. package/lib/Telegram/scenes/wizard/context.js +31 -0
  579. package/lib/Telegram/scenes/wizard/index.js +45 -0
  580. package/lib/Telegram/scenes.js +17 -0
  581. package/lib/Telegram/session.js +166 -0
  582. package/lib/Telegram/telegram-types.js +6 -0
  583. package/lib/Telegram/telegram.js +945 -0
  584. package/lib/Telegram/types.js +2 -0
  585. package/lib/Telegram/utils.js +5 -0
  586. package/lib/Types/Auth.d.ts +2 -0
  587. package/lib/Types/Auth.d.ts.map +1 -0
  588. package/lib/Types/Auth.js +2 -0
  589. package/lib/Types/Auth.js.map +1 -0
  590. package/lib/Types/Bussines.d.ts +2 -0
  591. package/lib/Types/Bussines.d.ts.map +1 -0
  592. package/lib/Types/Bussines.js +2 -0
  593. package/lib/Types/Bussines.js.map +1 -0
  594. package/lib/Types/Call.d.ts +2 -0
  595. package/lib/Types/Call.d.ts.map +1 -0
  596. package/lib/Types/Call.js +2 -0
  597. package/lib/Types/Call.js.map +1 -0
  598. package/lib/Types/Chat.d.ts +2 -0
  599. package/lib/Types/Chat.d.ts.map +1 -0
  600. package/lib/Types/Chat.js +8 -0
  601. package/lib/Types/Chat.js.map +1 -0
  602. package/lib/Types/Contact.d.ts +2 -0
  603. package/lib/Types/Contact.d.ts.map +1 -0
  604. package/lib/Types/Contact.js +2 -0
  605. package/lib/Types/Contact.js.map +1 -0
  606. package/lib/Types/Events.d.ts +2 -0
  607. package/lib/Types/Events.d.ts.map +1 -0
  608. package/lib/Types/Events.js +2 -0
  609. package/lib/Types/Events.js.map +1 -0
  610. package/lib/Types/GroupMetadata.d.ts +2 -0
  611. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  612. package/lib/Types/GroupMetadata.js +2 -0
  613. package/lib/Types/GroupMetadata.js.map +1 -0
  614. package/lib/Types/Label.d.ts +3 -0
  615. package/lib/Types/Label.d.ts.map +1 -0
  616. package/lib/Types/Label.js +25 -0
  617. package/lib/Types/Label.js.map +1 -0
  618. package/lib/Types/LabelAssociation.d.ts +3 -0
  619. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  620. package/lib/Types/LabelAssociation.js +7 -0
  621. package/lib/Types/LabelAssociation.js.map +1 -0
  622. package/lib/Types/Message.d.ts +12 -0
  623. package/lib/Types/Message.d.ts.map +1 -0
  624. package/lib/Types/Message.js +18 -0
  625. package/lib/Types/Message.js.map +1 -0
  626. package/lib/Types/Mex.d.ts +3 -0
  627. package/lib/Types/Mex.d.ts.map +1 -0
  628. package/lib/Types/Mex.js +39 -0
  629. package/lib/Types/Mex.js.map +1 -0
  630. package/lib/Types/Product.d.ts +2 -0
  631. package/lib/Types/Product.d.ts.map +1 -0
  632. package/lib/Types/Product.js +2 -0
  633. package/lib/Types/Product.js.map +1 -0
  634. package/lib/Types/RichType.d.ts +3 -0
  635. package/lib/Types/RichType.d.ts.map +1 -0
  636. package/lib/Types/RichType.js +23 -0
  637. package/lib/Types/RichType.js.map +1 -0
  638. package/lib/Types/Signal.d.ts +2 -0
  639. package/lib/Types/Signal.d.ts.map +1 -0
  640. package/lib/Types/Signal.js +2 -0
  641. package/lib/Types/Signal.js.map +1 -0
  642. package/lib/Types/Socket.d.ts +2 -0
  643. package/lib/Types/Socket.d.ts.map +1 -0
  644. package/lib/Types/Socket.js +2 -0
  645. package/lib/Types/Socket.js.map +1 -0
  646. package/lib/Types/State.d.ts +6 -0
  647. package/lib/Types/State.d.ts.map +1 -0
  648. package/lib/Types/State.js +56 -0
  649. package/lib/Types/State.js.map +1 -0
  650. package/lib/Types/USync.d.ts +2 -0
  651. package/lib/Types/USync.d.ts.map +1 -0
  652. package/lib/Types/USync.js +2 -0
  653. package/lib/Types/USync.js.map +1 -0
  654. package/lib/Types/index.d.ts +14 -0
  655. package/lib/Types/index.d.ts.map +1 -0
  656. package/lib/Types/index.js +26 -0
  657. package/lib/Types/index.js.map +1 -0
  658. package/lib/Utils/auth-utils.d.ts +58 -0
  659. package/lib/Utils/auth-utils.d.ts.map +1 -0
  660. package/lib/Utils/auth-utils.js +302 -0
  661. package/lib/Utils/auth-utils.js.map +1 -0
  662. package/lib/Utils/browser-utils.d.ts +9 -0
  663. package/lib/Utils/browser-utils.d.ts.map +1 -0
  664. package/lib/Utils/browser-utils.js +36 -0
  665. package/lib/Utils/browser-utils.js.map +1 -0
  666. package/lib/Utils/business.d.ts +50 -0
  667. package/lib/Utils/business.d.ts.map +1 -0
  668. package/lib/Utils/business.js +231 -0
  669. package/lib/Utils/business.js.map +1 -0
  670. package/lib/Utils/chat-utils.d.ts +409 -0
  671. package/lib/Utils/chat-utils.d.ts.map +1 -0
  672. package/lib/Utils/chat-utils.js +872 -0
  673. package/lib/Utils/chat-utils.js.map +1 -0
  674. package/lib/Utils/companion-reg-client-utils.d.ts +5 -0
  675. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  676. package/lib/Utils/companion-reg-client-utils.js +46 -0
  677. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  678. package/lib/Utils/crypto.d.ts +40 -0
  679. package/lib/Utils/crypto.d.ts.map +1 -0
  680. package/lib/Utils/crypto.js +119 -0
  681. package/lib/Utils/crypto.js.map +1 -0
  682. package/lib/Utils/decode-wa-message.d.ts +84 -0
  683. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  684. package/lib/Utils/decode-wa-message.js +325 -0
  685. package/lib/Utils/decode-wa-message.js.map +1 -0
  686. package/lib/Utils/event-buffer.d.ts +13 -0
  687. package/lib/Utils/event-buffer.d.ts.map +1 -0
  688. package/lib/Utils/event-buffer.js +622 -0
  689. package/lib/Utils/event-buffer.js.map +1 -0
  690. package/lib/Utils/generics.d.ts +64 -0
  691. package/lib/Utils/generics.d.ts.map +1 -0
  692. package/lib/Utils/generics.js +395 -0
  693. package/lib/Utils/generics.js.map +1 -0
  694. package/lib/Utils/history.d.ts +76 -0
  695. package/lib/Utils/history.d.ts.map +1 -0
  696. package/lib/Utils/history.js +134 -0
  697. package/lib/Utils/history.js.map +1 -0
  698. package/lib/Utils/identity-change-handler.d.ts +14 -0
  699. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  700. package/lib/Utils/identity-change-handler.js +50 -0
  701. package/lib/Utils/identity-change-handler.js.map +1 -0
  702. package/lib/Utils/index.d.ts +25 -0
  703. package/lib/Utils/index.d.ts.map +1 -0
  704. package/lib/Utils/index.js +27 -0
  705. package/lib/Utils/index.js.map +1 -0
  706. package/lib/Utils/link-preview.d.ts +13 -0
  707. package/lib/Utils/link-preview.d.ts.map +1 -0
  708. package/lib/Utils/link-preview.js +85 -0
  709. package/lib/Utils/link-preview.js.map +1 -0
  710. package/lib/Utils/logger.d.ts +3 -0
  711. package/lib/Utils/logger.d.ts.map +1 -0
  712. package/lib/Utils/logger.js +3 -0
  713. package/lib/Utils/logger.js.map +1 -0
  714. package/lib/Utils/lt-hash.d.ts +7 -0
  715. package/lib/Utils/lt-hash.d.ts.map +1 -0
  716. package/lib/Utils/lt-hash.js +8 -0
  717. package/lib/Utils/lt-hash.js.map +1 -0
  718. package/lib/Utils/make-mutex.d.ts +7 -0
  719. package/lib/Utils/make-mutex.d.ts.map +1 -0
  720. package/lib/Utils/make-mutex.js +33 -0
  721. package/lib/Utils/make-mutex.js.map +1 -0
  722. package/lib/Utils/message-retry-manager.d.ts +80 -0
  723. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  724. package/lib/Utils/message-retry-manager.js +265 -0
  725. package/lib/Utils/message-retry-manager.js.map +1 -0
  726. package/lib/Utils/messages-media.d.ts +137 -0
  727. package/lib/Utils/messages-media.d.ts.map +1 -0
  728. package/lib/Utils/messages-media.js +843 -0
  729. package/lib/Utils/messages-media.js.map +1 -0
  730. package/lib/Utils/messages.d.ts +46 -0
  731. package/lib/Utils/messages.d.ts.map +1 -0
  732. package/lib/Utils/messages.js +1878 -0
  733. package/lib/Utils/messages.js.map +1 -0
  734. package/lib/Utils/noise-handler.d.ts +21 -0
  735. package/lib/Utils/noise-handler.d.ts.map +1 -0
  736. package/lib/Utils/noise-handler.js +201 -0
  737. package/lib/Utils/noise-handler.js.map +1 -0
  738. package/lib/Utils/offline-node-processor.d.ts +10 -0
  739. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  740. package/lib/Utils/offline-node-processor.js +40 -0
  741. package/lib/Utils/offline-node-processor.js.map +1 -0
  742. package/lib/Utils/pre-key-manager.d.ts +26 -0
  743. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  744. package/lib/Utils/pre-key-manager.js +106 -0
  745. package/lib/Utils/pre-key-manager.js.map +1 -0
  746. package/lib/Utils/process-message.d.ts +84 -0
  747. package/lib/Utils/process-message.d.ts.map +1 -0
  748. package/lib/Utils/process-message.js +745 -0
  749. package/lib/Utils/process-message.js.map +1 -0
  750. package/lib/Utils/reporting-utils.d.ts +13 -0
  751. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  752. package/lib/Utils/reporting-utils.js +258 -0
  753. package/lib/Utils/reporting-utils.js.map +1 -0
  754. package/lib/Utils/rich-message-utils.d.ts +49 -0
  755. package/lib/Utils/rich-message-utils.d.ts.map +1 -0
  756. package/lib/Utils/rich-message-utils.js +400 -0
  757. package/lib/Utils/rich-message-utils.js.map +1 -0
  758. package/lib/Utils/session-guard.js +148 -0
  759. package/lib/Utils/signal.d.ts +83 -0
  760. package/lib/Utils/signal.d.ts.map +1 -0
  761. package/lib/Utils/signal.js +201 -0
  762. package/lib/Utils/signal.js.map +1 -0
  763. package/lib/Utils/stanza-ack.d.ts +17 -0
  764. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  765. package/lib/Utils/stanza-ack.js +38 -0
  766. package/lib/Utils/stanza-ack.js.map +1 -0
  767. package/lib/Utils/sync-action-utils.d.ts +3 -0
  768. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  769. package/lib/Utils/sync-action-utils.js +49 -0
  770. package/lib/Utils/sync-action-utils.js.map +1 -0
  771. package/lib/Utils/tc-token-utils.d.ts +30 -0
  772. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  773. package/lib/Utils/tc-token-utils.js +163 -0
  774. package/lib/Utils/tc-token-utils.js.map +1 -0
  775. package/lib/Utils/text-sticker.js +149 -0
  776. package/lib/Utils/use-multi-file-auth-state.d.ts +11 -0
  777. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  778. package/lib/Utils/use-multi-file-auth-state.js +121 -0
  779. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  780. package/lib/Utils/use-single-file-auth-state.d.ts +11 -0
  781. package/lib/Utils/use-single-file-auth-state.d.ts.map +1 -0
  782. package/lib/Utils/use-single-file-auth-state.js +109 -0
  783. package/lib/Utils/use-single-file-auth-state.js.map +1 -0
  784. package/lib/Utils/use-sqlite-auth-state.d.ts +11 -0
  785. package/lib/Utils/use-sqlite-auth-state.d.ts.map +1 -0
  786. package/lib/Utils/use-sqlite-auth-state.js +109 -0
  787. package/lib/Utils/use-sqlite-auth-state.js.map +1 -0
  788. package/lib/Utils/validate-connection.d.ts +44 -0
  789. package/lib/Utils/validate-connection.d.ts.map +1 -0
  790. package/lib/Utils/validate-connection.js +203 -0
  791. package/lib/Utils/validate-connection.js.map +1 -0
  792. package/lib/WABinary/constants.d.ts +62 -0
  793. package/lib/WABinary/constants.d.ts.map +1 -0
  794. package/lib/WABinary/constants.js +1467 -0
  795. package/lib/WABinary/constants.js.map +1 -0
  796. package/lib/WABinary/decode.d.ts +10 -0
  797. package/lib/WABinary/decode.d.ts.map +1 -0
  798. package/lib/WABinary/decode.js +262 -0
  799. package/lib/WABinary/decode.js.map +1 -0
  800. package/lib/WABinary/encode.d.ts +3 -0
  801. package/lib/WABinary/encode.d.ts.map +1 -0
  802. package/lib/WABinary/encode.js +220 -0
  803. package/lib/WABinary/encode.js.map +1 -0
  804. package/lib/WABinary/generic-utils.d.ts +77 -0
  805. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  806. package/lib/WABinary/generic-utils.js +226 -0
  807. package/lib/WABinary/generic-utils.js.map +1 -0
  808. package/lib/WABinary/index.d.ts +6 -0
  809. package/lib/WABinary/index.d.ts.map +1 -0
  810. package/lib/WABinary/index.js +6 -0
  811. package/lib/WABinary/index.js.map +1 -0
  812. package/lib/WABinary/jid-utils.d.ts +29 -0
  813. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  814. package/lib/WABinary/jid-utils.js +96 -0
  815. package/lib/WABinary/jid-utils.js.map +1 -0
  816. package/lib/WABinary/types.d.ts +2 -0
  817. package/lib/WABinary/types.d.ts.map +1 -0
  818. package/lib/WABinary/types.js +2 -0
  819. package/lib/WABinary/types.js.map +1 -0
  820. package/lib/WAM/BinaryInfo.d.ts +8 -0
  821. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  822. package/lib/WAM/BinaryInfo.js +10 -0
  823. package/lib/WAM/BinaryInfo.js.map +1 -0
  824. package/lib/WAM/constants.d.ts +34927 -0
  825. package/lib/WAM/constants.d.ts.map +1 -0
  826. package/lib/WAM/constants.js +22853 -0
  827. package/lib/WAM/constants.js.map +1 -0
  828. package/lib/WAM/encode.d.ts +2 -0
  829. package/lib/WAM/encode.d.ts.map +1 -0
  830. package/lib/WAM/encode.js +150 -0
  831. package/lib/WAM/encode.js.map +1 -0
  832. package/lib/WAM/index.d.ts +4 -0
  833. package/lib/WAM/index.d.ts.map +1 -0
  834. package/lib/WAM/index.js +4 -0
  835. package/lib/WAM/index.js.map +1 -0
  836. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +37 -0
  837. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  838. package/lib/WAUSync/Protocols/USyncContactProtocol.js +52 -0
  839. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  840. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  841. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  842. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +54 -0
  843. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  844. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  845. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  846. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
  847. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  848. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  849. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  850. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -0
  851. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  852. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  853. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  854. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  855. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  856. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +39 -0
  857. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  858. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  859. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  860. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +15 -0
  861. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  862. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  863. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  864. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  865. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  866. package/lib/WAUSync/Protocols/index.js +6 -0
  867. package/lib/WAUSync/Protocols/index.js.map +1 -0
  868. package/lib/WAUSync/USyncQuery.d.ts +21 -0
  869. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  870. package/lib/WAUSync/USyncQuery.js +98 -0
  871. package/lib/WAUSync/USyncQuery.js.map +1 -0
  872. package/lib/WAUSync/USyncUser.d.ts +17 -0
  873. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  874. package/lib/WAUSync/USyncUser.js +31 -0
  875. package/lib/WAUSync/USyncUser.js.map +1 -0
  876. package/lib/WAUSync/index.d.ts +4 -0
  877. package/lib/WAUSync/index.d.ts.map +1 -0
  878. package/lib/WAUSync/index.js +4 -0
  879. package/lib/WAUSync/index.js.map +1 -0
  880. package/lib/index.d.ts +201 -0
  881. package/lib/index.d.ts.map +1 -0
  882. package/lib/index.js +314 -0
  883. package/lib/index.js.map +1 -0
  884. package/lib/plugins/loader.cjs +26 -0
  885. package/lib/plugins/loader.js +94 -0
  886. package/package.json +148 -0
@@ -0,0 +1,622 @@
1
+ import EventEmitter from 'events';
2
+ import { WAMessageStatus } from '../Types/index.js';
3
+ import { trimUndefined } from './generics.js';
4
+ import { updateMessageWithReaction, updateMessageWithReceipt } from './messages.js';
5
+ import { isRealMessage, shouldIncrementChatUnread } from './process-message.js';
6
+ const BUFFERABLE_EVENT = [
7
+ 'messaging-history.set',
8
+ 'chats.upsert',
9
+ 'chats.update',
10
+ 'chats.delete',
11
+ 'contacts.upsert',
12
+ 'contacts.update',
13
+ 'messages.upsert',
14
+ 'messages.update',
15
+ 'messages.delete',
16
+ 'messages.reaction',
17
+ 'message-receipt.update',
18
+ 'groups.update'
19
+ ];
20
+ const BUFFERABLE_EVENT_SET = new Set(BUFFERABLE_EVENT);
21
+ /**
22
+ * The event buffer logically consolidates different events into a single event
23
+ * making the data processing more efficient.
24
+ */
25
+ export const makeEventBuffer = (logger) => {
26
+ const ev = new EventEmitter();
27
+ const historyCache = new Set();
28
+ let data = makeBufferData();
29
+ let isBuffering = false;
30
+ let bufferTimeout = null;
31
+ let flushPendingTimeout = null; // Add a specific timer for the debounced flush to prevent leak
32
+ let bufferCount = 0;
33
+ const MAX_HISTORY_CACHE_SIZE = 10000; // Limit the history cache size to prevent memory bloat
34
+ const BUFFER_TIMEOUT_MS = 30000; // 30 seconds
35
+ // take the generic event and fire it as a baileys event
36
+ ev.on('event', (map) => {
37
+ for (const event in map) {
38
+ ev.emit(event, map[event]);
39
+ }
40
+ });
41
+ function buffer() {
42
+ if (!isBuffering) {
43
+ logger.debug('Event buffer activated');
44
+ isBuffering = true;
45
+ bufferCount = 0;
46
+ if (bufferTimeout) {
47
+ clearTimeout(bufferTimeout);
48
+ }
49
+ bufferTimeout = setTimeout(() => {
50
+ if (isBuffering) {
51
+ logger.warn('Buffer timeout reached, auto-flushing');
52
+ flush();
53
+ }
54
+ }, BUFFER_TIMEOUT_MS);
55
+ }
56
+ // Always increment count when requested
57
+ bufferCount++;
58
+ }
59
+ function flush() {
60
+ if (!isBuffering) {
61
+ return false;
62
+ }
63
+ logger.debug({ bufferCount }, 'Flushing event buffer');
64
+ isBuffering = false;
65
+ bufferCount = 0;
66
+ // Clear timeout
67
+ if (bufferTimeout) {
68
+ clearTimeout(bufferTimeout);
69
+ bufferTimeout = null;
70
+ }
71
+ if (flushPendingTimeout) {
72
+ clearTimeout(flushPendingTimeout);
73
+ flushPendingTimeout = null;
74
+ }
75
+ // Clear history cache if it exceeds the max size
76
+ if (historyCache.size > MAX_HISTORY_CACHE_SIZE) {
77
+ logger.debug({ cacheSize: historyCache.size }, 'Clearing history cache');
78
+ historyCache.clear();
79
+ }
80
+ const newData = makeBufferData();
81
+ const chatUpdates = Object.values(data.chatUpdates);
82
+ let conditionalChatUpdatesLeft = 0;
83
+ for (const update of chatUpdates) {
84
+ if (update.conditional) {
85
+ conditionalChatUpdatesLeft += 1;
86
+ newData.chatUpdates[update.id] = update;
87
+ delete data.chatUpdates[update.id];
88
+ }
89
+ }
90
+ const consolidatedData = consolidateEvents(data);
91
+ if (Object.keys(consolidatedData).length) {
92
+ ev.emit('event', consolidatedData);
93
+ }
94
+ data = newData;
95
+ logger.trace({ conditionalChatUpdatesLeft }, 'released buffered events');
96
+ return true;
97
+ }
98
+ return {
99
+ process(handler) {
100
+ const listener = async (map) => {
101
+ await handler(map);
102
+ };
103
+ ev.on('event', listener);
104
+ return () => {
105
+ ev.off('event', listener);
106
+ };
107
+ },
108
+ emit(event, evData) {
109
+ // Check if this is a messages.upsert with a different type than what's buffered
110
+ // If so, flush the buffered messages first to avoid type overshadowing
111
+ if (event === 'messages.upsert') {
112
+ const { type } = evData;
113
+ const existingUpserts = Object.values(data.messageUpserts);
114
+ if (existingUpserts.length > 0) {
115
+ const bufferedType = existingUpserts[0].type;
116
+ if (bufferedType !== type) {
117
+ logger.debug({ bufferedType, newType: type }, 'messages.upsert type mismatch, emitting buffered messages');
118
+ // Emit the buffered messages with their correct type
119
+ ev.emit('event', {
120
+ 'messages.upsert': {
121
+ messages: existingUpserts.map(m => m.message),
122
+ type: bufferedType
123
+ }
124
+ });
125
+ // Clear the message upserts from the buffer
126
+ data.messageUpserts = {};
127
+ }
128
+ }
129
+ }
130
+ if (isBuffering && BUFFERABLE_EVENT_SET.has(event)) {
131
+ append(data, historyCache, event, evData, logger);
132
+ return true;
133
+ }
134
+ return ev.emit('event', { [event]: evData });
135
+ },
136
+ isBuffering() {
137
+ return isBuffering;
138
+ },
139
+ buffer,
140
+ flush,
141
+ createBufferedFunction(work) {
142
+ return async (...args) => {
143
+ buffer();
144
+ try {
145
+ const result = await work(...args);
146
+ // If this is the only buffer, flush after a small delay
147
+ if (bufferCount === 1) {
148
+ setTimeout(() => {
149
+ if (isBuffering && bufferCount === 1) {
150
+ flush();
151
+ }
152
+ }, 100); // Small delay to allow nested buffers
153
+ }
154
+ return result;
155
+ }
156
+ catch (error) {
157
+ throw error;
158
+ }
159
+ finally {
160
+ bufferCount = Math.max(0, bufferCount - 1);
161
+ if (bufferCount === 0) {
162
+ // Only schedule ONE timeout, not 10,000
163
+ if (!flushPendingTimeout) {
164
+ flushPendingTimeout = setTimeout(flush, 100);
165
+ }
166
+ }
167
+ }
168
+ };
169
+ },
170
+ on: (...args) => ev.on(...args),
171
+ off: (...args) => ev.off(...args),
172
+ removeAllListeners: (...args) => ev.removeAllListeners(...args),
173
+ destroy() {
174
+ // Clear buffer timeout
175
+ if (bufferTimeout) {
176
+ clearTimeout(bufferTimeout);
177
+ bufferTimeout = null;
178
+ }
179
+ if (flushPendingTimeout) {
180
+ clearTimeout(flushPendingTimeout);
181
+ flushPendingTimeout = null;
182
+ }
183
+ // Clear history cache
184
+ historyCache.clear();
185
+ // Reset buffer data
186
+ data = makeBufferData();
187
+ isBuffering = false;
188
+ bufferCount = 0;
189
+ // Remove all listeners
190
+ ev.removeAllListeners();
191
+ logger.debug('Event buffer destroyed');
192
+ }
193
+ };
194
+ };
195
+ const makeBufferData = () => {
196
+ return {
197
+ historySets: {
198
+ chats: {},
199
+ messages: {},
200
+ contacts: {},
201
+ isLatest: false,
202
+ empty: true
203
+ },
204
+ chatUpserts: {},
205
+ chatUpdates: {},
206
+ chatDeletes: new Set(),
207
+ contactUpserts: {},
208
+ contactUpdates: {},
209
+ messageUpserts: {},
210
+ messageUpdates: {},
211
+ messageReactions: {},
212
+ messageDeletes: {},
213
+ messageReceipts: {},
214
+ groupUpdates: {}
215
+ };
216
+ };
217
+ function append(data, historyCache, event,
218
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
219
+ eventData, logger) {
220
+ switch (event) {
221
+ case 'messaging-history.set':
222
+ for (const chat of eventData.chats) {
223
+ const id = chat.id || '';
224
+ const existingChat = data.historySets.chats[id];
225
+ if (existingChat) {
226
+ existingChat.endOfHistoryTransferType = chat.endOfHistoryTransferType;
227
+ }
228
+ if (!existingChat && !historyCache.has(id)) {
229
+ data.historySets.chats[id] = chat;
230
+ historyCache.add(id);
231
+ absorbingChatUpdate(chat);
232
+ }
233
+ }
234
+ for (const contact of eventData.contacts) {
235
+ const existingContact = data.historySets.contacts[contact.id];
236
+ if (existingContact) {
237
+ Object.assign(existingContact, trimUndefined(contact));
238
+ }
239
+ else {
240
+ const historyContactId = `c:${contact.id}`;
241
+ const hasAnyName = contact.notify || contact.name || contact.verifiedName;
242
+ if (!historyCache.has(historyContactId) || hasAnyName) {
243
+ data.historySets.contacts[contact.id] = contact;
244
+ historyCache.add(historyContactId);
245
+ }
246
+ }
247
+ }
248
+ for (const message of eventData.messages) {
249
+ const key = stringifyMessageKey(message.key);
250
+ const existingMsg = data.historySets.messages[key];
251
+ if (!existingMsg && !historyCache.has(key)) {
252
+ data.historySets.messages[key] = message;
253
+ historyCache.add(key);
254
+ }
255
+ }
256
+ data.historySets.empty = false;
257
+ data.historySets.syncType = eventData.syncType;
258
+ if (eventData.pastParticipants?.length) {
259
+ const merged = new Map();
260
+ const sigOf = (p) => `${p.userJid || ''}:${p.leaveTs || ''}:${p.leaveReason || ''}`;
261
+ const ingest = (entry) => {
262
+ const key = entry.groupJid ?? JSON.stringify(entry);
263
+ const existing = merged.get(key);
264
+ if (!existing) {
265
+ merged.set(key, { ...entry, pastParticipants: [...(entry.pastParticipants || [])] });
266
+ return;
267
+ }
268
+ const seen = new Set((existing.pastParticipants || []).map(sigOf));
269
+ for (const p of entry.pastParticipants || []) {
270
+ const sig = sigOf(p);
271
+ if (!seen.has(sig)) {
272
+ existing.pastParticipants.push(p);
273
+ seen.add(sig);
274
+ }
275
+ }
276
+ };
277
+ for (const entry of data.historySets.pastParticipants || [])
278
+ ingest(entry);
279
+ for (const entry of eventData.pastParticipants)
280
+ ingest(entry);
281
+ data.historySets.pastParticipants = [...merged.values()];
282
+ }
283
+ data.historySets.progress = eventData.progress;
284
+ data.historySets.chunkOrder = eventData.chunkOrder;
285
+ data.historySets.peerDataRequestSessionId = eventData.peerDataRequestSessionId;
286
+ data.historySets.isLatest = eventData.isLatest || data.historySets.isLatest;
287
+ break;
288
+ case 'chats.upsert':
289
+ for (const chat of eventData) {
290
+ const id = chat.id || '';
291
+ let upsert = data.chatUpserts[id];
292
+ if (id && !upsert) {
293
+ upsert = data.historySets.chats[id];
294
+ if (upsert) {
295
+ logger.debug({ chatId: id }, 'absorbed chat upsert in chat set');
296
+ }
297
+ }
298
+ if (upsert) {
299
+ upsert = concatChats(upsert, chat);
300
+ }
301
+ else {
302
+ upsert = chat;
303
+ data.chatUpserts[id] = upsert;
304
+ }
305
+ absorbingChatUpdate(upsert);
306
+ if (data.chatDeletes.has(id)) {
307
+ data.chatDeletes.delete(id);
308
+ }
309
+ }
310
+ break;
311
+ case 'chats.update':
312
+ for (const update of eventData) {
313
+ const chatId = update.id;
314
+ const conditionMatches = update.conditional ? update.conditional(data) : true;
315
+ if (conditionMatches) {
316
+ delete update.conditional;
317
+ // if there is an existing upsert, merge the update into it
318
+ const upsert = data.historySets.chats[chatId] || data.chatUpserts[chatId];
319
+ if (upsert) {
320
+ concatChats(upsert, update);
321
+ }
322
+ else {
323
+ // merge the update into the existing update
324
+ const chatUpdate = data.chatUpdates[chatId] || {};
325
+ data.chatUpdates[chatId] = concatChats(chatUpdate, update);
326
+ }
327
+ }
328
+ else if (conditionMatches === undefined) {
329
+ // condition yet to be fulfilled
330
+ data.chatUpdates[chatId] = update;
331
+ }
332
+ // otherwise -- condition not met, update is invalid
333
+ // if the chat has been updated
334
+ // ignore any existing chat delete
335
+ if (data.chatDeletes.has(chatId)) {
336
+ data.chatDeletes.delete(chatId);
337
+ }
338
+ }
339
+ break;
340
+ case 'chats.delete':
341
+ for (const chatId of eventData) {
342
+ if (!data.chatDeletes.has(chatId)) {
343
+ data.chatDeletes.add(chatId);
344
+ }
345
+ // remove any prior updates & upserts
346
+ if (data.chatUpdates[chatId]) {
347
+ delete data.chatUpdates[chatId];
348
+ }
349
+ if (data.chatUpserts[chatId]) {
350
+ delete data.chatUpserts[chatId];
351
+ }
352
+ if (data.historySets.chats[chatId]) {
353
+ delete data.historySets.chats[chatId];
354
+ }
355
+ }
356
+ break;
357
+ case 'contacts.upsert':
358
+ for (const contact of eventData) {
359
+ let upsert = data.contactUpserts[contact.id];
360
+ if (!upsert) {
361
+ upsert = data.historySets.contacts[contact.id];
362
+ if (upsert) {
363
+ logger.debug({ contactId: contact.id }, 'absorbed contact upsert in contact set');
364
+ }
365
+ }
366
+ if (upsert) {
367
+ upsert = Object.assign(upsert, trimUndefined(contact));
368
+ }
369
+ else {
370
+ upsert = contact;
371
+ data.contactUpserts[contact.id] = upsert;
372
+ }
373
+ if (data.contactUpdates[contact.id]) {
374
+ upsert = Object.assign(data.contactUpdates[contact.id], trimUndefined(contact));
375
+ delete data.contactUpdates[contact.id];
376
+ }
377
+ }
378
+ break;
379
+ case 'contacts.update':
380
+ const contactUpdates = eventData;
381
+ for (const update of contactUpdates) {
382
+ const id = update.id;
383
+ // merge into prior upsert
384
+ const upsert = data.historySets.contacts[id] || data.contactUpserts[id];
385
+ if (upsert) {
386
+ Object.assign(upsert, update);
387
+ }
388
+ else {
389
+ // merge into prior update
390
+ const contactUpdate = data.contactUpdates[id] || {};
391
+ data.contactUpdates[id] = Object.assign(contactUpdate, update);
392
+ }
393
+ }
394
+ break;
395
+ case 'messages.upsert':
396
+ const { messages, type } = eventData;
397
+ for (const message of messages) {
398
+ const key = stringifyMessageKey(message.key);
399
+ let existing = data.messageUpserts[key]?.message;
400
+ if (!existing) {
401
+ existing = data.historySets.messages[key];
402
+ if (existing) {
403
+ logger.debug({ messageId: key }, 'absorbed message upsert in message set');
404
+ }
405
+ }
406
+ if (existing) {
407
+ message.messageTimestamp = existing.messageTimestamp;
408
+ }
409
+ if (data.messageUpdates[key]) {
410
+ logger.debug('absorbed prior message update in message upsert');
411
+ Object.assign(message, data.messageUpdates[key].update);
412
+ delete data.messageUpdates[key];
413
+ }
414
+ if (data.historySets.messages[key]) {
415
+ data.historySets.messages[key] = message;
416
+ }
417
+ else {
418
+ data.messageUpserts[key] = {
419
+ message,
420
+ type: type === 'notify' || data.messageUpserts[key]?.type === 'notify' ? 'notify' : type
421
+ };
422
+ }
423
+ }
424
+ break;
425
+ case 'messages.update':
426
+ const msgUpdates = eventData;
427
+ for (const { key, update } of msgUpdates) {
428
+ const keyStr = stringifyMessageKey(key);
429
+ const existing = data.historySets.messages[keyStr] || data.messageUpserts[keyStr]?.message;
430
+ if (existing) {
431
+ Object.assign(existing, update);
432
+ // if the message was received & read by us
433
+ // the chat counter must have been incremented
434
+ // so we need to decrement it
435
+ if (update.status === WAMessageStatus.READ && !key.fromMe) {
436
+ decrementChatReadCounterIfMsgDidUnread(existing);
437
+ }
438
+ }
439
+ else {
440
+ const msgUpdate = data.messageUpdates[keyStr] || { key, update: {} };
441
+ Object.assign(msgUpdate.update, update);
442
+ data.messageUpdates[keyStr] = msgUpdate;
443
+ }
444
+ }
445
+ break;
446
+ case 'messages.delete':
447
+ const deleteData = eventData;
448
+ if ('keys' in deleteData) {
449
+ const { keys } = deleteData;
450
+ for (const key of keys) {
451
+ const keyStr = stringifyMessageKey(key);
452
+ if (!data.messageDeletes[keyStr]) {
453
+ data.messageDeletes[keyStr] = key;
454
+ }
455
+ if (data.messageUpserts[keyStr]) {
456
+ delete data.messageUpserts[keyStr];
457
+ }
458
+ if (data.messageUpdates[keyStr]) {
459
+ delete data.messageUpdates[keyStr];
460
+ }
461
+ }
462
+ }
463
+ else {
464
+ // TODO: add support
465
+ }
466
+ break;
467
+ case 'messages.reaction':
468
+ const reactions = eventData;
469
+ for (const { key, reaction } of reactions) {
470
+ const keyStr = stringifyMessageKey(key);
471
+ const existing = data.messageUpserts[keyStr];
472
+ if (existing) {
473
+ updateMessageWithReaction(existing.message, reaction);
474
+ }
475
+ else {
476
+ data.messageReactions[keyStr] = data.messageReactions[keyStr] || { key, reactions: [] };
477
+ updateMessageWithReaction(data.messageReactions[keyStr], reaction);
478
+ }
479
+ }
480
+ break;
481
+ case 'message-receipt.update':
482
+ const receipts = eventData;
483
+ for (const { key, receipt } of receipts) {
484
+ const keyStr = stringifyMessageKey(key);
485
+ const existing = data.messageUpserts[keyStr];
486
+ if (existing) {
487
+ updateMessageWithReceipt(existing.message, receipt);
488
+ }
489
+ else {
490
+ data.messageReceipts[keyStr] = data.messageReceipts[keyStr] || { key, userReceipt: [] };
491
+ updateMessageWithReceipt(data.messageReceipts[keyStr], receipt);
492
+ }
493
+ }
494
+ break;
495
+ case 'groups.update':
496
+ const groupUpdates = eventData;
497
+ for (const update of groupUpdates) {
498
+ const id = update.id;
499
+ const groupUpdate = data.groupUpdates[id] || {};
500
+ if (!data.groupUpdates[id]) {
501
+ data.groupUpdates[id] = Object.assign(groupUpdate, update);
502
+ }
503
+ }
504
+ break;
505
+ default:
506
+ throw new Error(`"${event}" cannot be buffered`);
507
+ }
508
+ function absorbingChatUpdate(existing) {
509
+ const chatId = existing.id || '';
510
+ const update = data.chatUpdates[chatId];
511
+ if (update) {
512
+ const conditionMatches = update.conditional ? update.conditional(data) : true;
513
+ if (conditionMatches) {
514
+ delete update.conditional;
515
+ logger.debug({ chatId }, 'absorbed chat update in existing chat');
516
+ Object.assign(existing, concatChats(update, existing));
517
+ delete data.chatUpdates[chatId];
518
+ }
519
+ else if (conditionMatches === false) {
520
+ logger.debug({ chatId }, 'chat update condition fail, removing');
521
+ delete data.chatUpdates[chatId];
522
+ }
523
+ }
524
+ }
525
+ function decrementChatReadCounterIfMsgDidUnread(message) {
526
+ // decrement chat unread counter
527
+ // if the message has already been marked read by us
528
+ const chatId = message.key.remoteJid;
529
+ const chat = data.chatUpdates[chatId] || data.chatUpserts[chatId];
530
+ if (isRealMessage(message) &&
531
+ shouldIncrementChatUnread(message) &&
532
+ typeof chat?.unreadCount === 'number' &&
533
+ chat.unreadCount > 0) {
534
+ logger.debug({ chatId: chat.id }, 'decrementing chat counter');
535
+ chat.unreadCount -= 1;
536
+ if (chat.unreadCount === 0) {
537
+ delete chat.unreadCount;
538
+ }
539
+ }
540
+ }
541
+ }
542
+ function consolidateEvents(data) {
543
+ const map = {};
544
+ if (!data.historySets.empty) {
545
+ map['messaging-history.set'] = {
546
+ chats: Object.values(data.historySets.chats),
547
+ messages: Object.values(data.historySets.messages),
548
+ contacts: Object.values(data.historySets.contacts),
549
+ pastParticipants: data.historySets.pastParticipants,
550
+ syncType: data.historySets.syncType,
551
+ progress: data.historySets.progress,
552
+ isLatest: data.historySets.isLatest,
553
+ chunkOrder: data.historySets.chunkOrder,
554
+ peerDataRequestSessionId: data.historySets.peerDataRequestSessionId
555
+ };
556
+ }
557
+ const chatUpsertList = Object.values(data.chatUpserts);
558
+ if (chatUpsertList.length) {
559
+ map['chats.upsert'] = chatUpsertList;
560
+ }
561
+ const chatUpdateList = Object.values(data.chatUpdates);
562
+ if (chatUpdateList.length) {
563
+ map['chats.update'] = chatUpdateList;
564
+ }
565
+ const chatDeleteList = Array.from(data.chatDeletes);
566
+ if (chatDeleteList.length) {
567
+ map['chats.delete'] = chatDeleteList;
568
+ }
569
+ const messageUpsertList = Object.values(data.messageUpserts);
570
+ if (messageUpsertList.length) {
571
+ const type = messageUpsertList[0].type;
572
+ map['messages.upsert'] = {
573
+ messages: messageUpsertList.map(m => m.message),
574
+ type
575
+ };
576
+ }
577
+ const messageUpdateList = Object.values(data.messageUpdates);
578
+ if (messageUpdateList.length) {
579
+ map['messages.update'] = messageUpdateList;
580
+ }
581
+ const messageDeleteList = Object.values(data.messageDeletes);
582
+ if (messageDeleteList.length) {
583
+ map['messages.delete'] = { keys: messageDeleteList };
584
+ }
585
+ const messageReactionList = Object.values(data.messageReactions).flatMap(({ key, reactions }) => reactions.flatMap(reaction => ({ key, reaction })));
586
+ if (messageReactionList.length) {
587
+ map['messages.reaction'] = messageReactionList;
588
+ }
589
+ const messageReceiptList = Object.values(data.messageReceipts).flatMap(({ key, userReceipt }) => userReceipt.flatMap(receipt => ({ key, receipt })));
590
+ if (messageReceiptList.length) {
591
+ map['message-receipt.update'] = messageReceiptList;
592
+ }
593
+ const contactUpsertList = Object.values(data.contactUpserts);
594
+ if (contactUpsertList.length) {
595
+ map['contacts.upsert'] = contactUpsertList;
596
+ }
597
+ const contactUpdateList = Object.values(data.contactUpdates);
598
+ if (contactUpdateList.length) {
599
+ map['contacts.update'] = contactUpdateList;
600
+ }
601
+ const groupUpdateList = Object.values(data.groupUpdates);
602
+ if (groupUpdateList.length) {
603
+ map['groups.update'] = groupUpdateList;
604
+ }
605
+ return map;
606
+ }
607
+ function concatChats(a, b) {
608
+ if (b.unreadCount === null && // neutralize unread counter
609
+ a.unreadCount < 0) {
610
+ a.unreadCount = undefined;
611
+ b.unreadCount = undefined;
612
+ }
613
+ if (typeof a.unreadCount === 'number' && typeof b.unreadCount === 'number') {
614
+ b = { ...b };
615
+ if (b.unreadCount >= 0) {
616
+ b.unreadCount = Math.max(b.unreadCount, 0) + Math.max(a.unreadCount, 0);
617
+ }
618
+ }
619
+ return Object.assign(a, b);
620
+ }
621
+ const stringifyMessageKey = (key) => `${key.remoteJid},${key.id},${key.fromMe ? '1' : '0'}`;
622
+ //# sourceMappingURL=event-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-buffer.js","sourceRoot":"","sources":["../../src/Utils/event-buffer.js"],"names":[],"mappings":"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"}