seyfert 1.5.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/LICENSE +21 -190
  2. package/README.md +18 -10
  3. package/lib/api/Router.js +2 -2
  4. package/lib/api/Routes/applications.d.ts +23 -1
  5. package/lib/api/Routes/channels.d.ts +1 -1
  6. package/lib/api/Routes/gateway.d.ts +1 -1
  7. package/lib/api/Routes/guilds.d.ts +5 -2
  8. package/lib/api/Routes/interactions.d.ts +8 -2
  9. package/lib/api/Routes/invites.d.ts +1 -1
  10. package/lib/api/Routes/skus.d.ts +11 -0
  11. package/lib/api/Routes/skus.js +2 -0
  12. package/lib/api/Routes/stage-instances.d.ts +1 -1
  13. package/lib/api/Routes/stickers.d.ts +2 -2
  14. package/lib/api/Routes/users.d.ts +1 -1
  15. package/lib/api/Routes/voice.d.ts +1 -1
  16. package/lib/api/Routes/webhooks.d.ts +2 -2
  17. package/lib/api/api.d.ts +3 -3
  18. package/lib/api/api.js +15 -25
  19. package/lib/api/bucket.d.ts +0 -1
  20. package/lib/api/shared.d.ts +1 -2
  21. package/lib/api/utils/constants.d.ts +2 -5
  22. package/lib/api/utils/constants.js +3 -7
  23. package/lib/api/utils/utils.d.ts +1 -2
  24. package/lib/api/utils/utils.js +2 -3
  25. package/lib/builders/ActionRow.d.ts +1 -1
  26. package/lib/builders/ActionRow.js +3 -3
  27. package/lib/builders/Attachment.d.ts +3 -4
  28. package/lib/builders/Attachment.js +24 -25
  29. package/lib/builders/Base.d.ts +2 -2
  30. package/lib/builders/Base.js +1 -1
  31. package/lib/builders/Button.d.ts +7 -7
  32. package/lib/builders/Button.js +11 -9
  33. package/lib/builders/Embed.d.ts +1 -1
  34. package/lib/builders/Modal.d.ts +1 -1
  35. package/lib/builders/Modal.js +2 -2
  36. package/lib/builders/Poll.d.ts +2 -2
  37. package/lib/builders/Poll.js +5 -6
  38. package/lib/builders/SelectMenu.d.ts +1 -1
  39. package/lib/builders/SelectMenu.js +17 -18
  40. package/lib/builders/index.d.ts +1 -1
  41. package/lib/builders/index.js +10 -11
  42. package/lib/cache/adapters/default.d.ts +16 -9
  43. package/lib/cache/adapters/default.js +42 -31
  44. package/lib/cache/adapters/index.d.ts +0 -1
  45. package/lib/cache/adapters/index.js +0 -1
  46. package/lib/cache/adapters/limited.d.ts +17 -12
  47. package/lib/cache/adapters/limited.js +80 -36
  48. package/lib/cache/adapters/types.d.ts +6 -7
  49. package/lib/cache/adapters/workeradapter.d.ts +6 -6
  50. package/lib/cache/adapters/workeradapter.js +13 -0
  51. package/lib/cache/index.d.ts +20 -8
  52. package/lib/cache/index.js +328 -22
  53. package/lib/cache/resources/bans.d.ts +9 -6
  54. package/lib/cache/resources/bans.js +13 -4
  55. package/lib/cache/resources/channels.d.ts +6 -4
  56. package/lib/cache/resources/channels.js +13 -7
  57. package/lib/cache/resources/default/base.d.ts +7 -7
  58. package/lib/cache/resources/default/base.js +2 -2
  59. package/lib/cache/resources/default/guild-based.d.ts +6 -6
  60. package/lib/cache/resources/default/guild-based.js +6 -6
  61. package/lib/cache/resources/default/guild-related.d.ts +7 -7
  62. package/lib/cache/resources/default/guild-related.js +10 -8
  63. package/lib/cache/resources/emojis.d.ts +15 -6
  64. package/lib/cache/resources/emojis.js +13 -4
  65. package/lib/cache/resources/guilds.d.ts +9 -6
  66. package/lib/cache/resources/guilds.js +27 -6
  67. package/lib/cache/resources/members.d.ts +9 -6
  68. package/lib/cache/resources/members.js +22 -6
  69. package/lib/cache/resources/messages.d.ts +11 -7
  70. package/lib/cache/resources/messages.js +19 -7
  71. package/lib/cache/resources/overwrites.d.ts +11 -2
  72. package/lib/cache/resources/overwrites.js +9 -0
  73. package/lib/cache/resources/presence.d.ts +3 -2
  74. package/lib/cache/resources/roles.d.ts +9 -6
  75. package/lib/cache/resources/roles.js +13 -4
  76. package/lib/cache/resources/stage-instances.d.ts +2 -2
  77. package/lib/cache/resources/stickers.d.ts +9 -6
  78. package/lib/cache/resources/stickers.js +13 -4
  79. package/lib/cache/resources/threads.d.ts +9 -6
  80. package/lib/cache/resources/threads.js +13 -4
  81. package/lib/cache/resources/users.d.ts +9 -6
  82. package/lib/cache/resources/users.js +13 -4
  83. package/lib/cache/resources/voice-states.d.ts +11 -8
  84. package/lib/cache/resources/voice-states.js +15 -4
  85. package/lib/client/base.d.ts +29 -21
  86. package/lib/client/base.js +64 -57
  87. package/lib/client/client.d.ts +11 -16
  88. package/lib/client/client.js +51 -37
  89. package/lib/client/collectors.d.ts +10 -10
  90. package/lib/client/collectors.js +26 -1
  91. package/lib/client/httpclient.d.ts +8 -13
  92. package/lib/client/httpclient.js +27 -218
  93. package/lib/client/index.d.ts +1 -0
  94. package/lib/client/index.js +1 -0
  95. package/lib/client/transformers.d.ts +68 -0
  96. package/lib/client/transformers.js +99 -0
  97. package/lib/client/types.d.ts +5 -0
  98. package/lib/client/types.js +2 -0
  99. package/lib/client/workerclient.d.ts +16 -15
  100. package/lib/client/workerclient.js +130 -72
  101. package/lib/commands/applications/chat.d.ts +35 -34
  102. package/lib/commands/applications/chat.js +5 -9
  103. package/lib/commands/applications/chatcontext.d.ts +17 -17
  104. package/lib/commands/applications/chatcontext.js +5 -5
  105. package/lib/commands/applications/entryPoint.d.ts +46 -0
  106. package/lib/commands/applications/entryPoint.js +56 -0
  107. package/lib/commands/applications/entrycontext.d.ts +40 -0
  108. package/lib/commands/applications/entrycontext.js +85 -0
  109. package/lib/commands/applications/menu.d.ts +2 -3
  110. package/lib/commands/applications/menu.js +2 -5
  111. package/lib/commands/applications/menucontext.d.ts +14 -13
  112. package/lib/commands/applications/menucontext.js +9 -9
  113. package/lib/commands/applications/options.d.ts +4 -3
  114. package/lib/commands/applications/options.js +20 -21
  115. package/lib/commands/applications/shared.d.ts +3 -1
  116. package/lib/commands/decorators.d.ts +47 -35
  117. package/lib/commands/decorators.js +20 -18
  118. package/lib/commands/handle.d.ts +65 -0
  119. package/lib/commands/handle.js +727 -0
  120. package/lib/commands/handler.d.ts +29 -18
  121. package/lib/commands/handler.js +295 -164
  122. package/lib/commands/index.d.ts +2 -0
  123. package/lib/commands/index.js +2 -0
  124. package/lib/commands/optionresolver.d.ts +13 -13
  125. package/lib/commands/optionresolver.js +24 -29
  126. package/lib/common/bot/watcher.d.ts +4 -33
  127. package/lib/common/bot/watcher.js +0 -109
  128. package/lib/common/index.d.ts +1 -0
  129. package/lib/common/index.js +1 -0
  130. package/lib/common/it/colors.js +48 -49
  131. package/lib/common/it/formatter.d.ts +32 -0
  132. package/lib/common/it/formatter.js +42 -0
  133. package/lib/common/it/logger.d.ts +0 -1
  134. package/lib/common/it/logger.js +3 -3
  135. package/lib/common/it/utils.d.ts +24 -4
  136. package/lib/common/it/utils.js +88 -17
  137. package/lib/common/shorters/application.d.ts +56 -0
  138. package/lib/common/shorters/application.js +81 -0
  139. package/lib/common/shorters/bans.d.ts +4 -5
  140. package/lib/common/shorters/bans.js +3 -3
  141. package/lib/common/shorters/channels.d.ts +7 -6
  142. package/lib/common/shorters/channels.js +19 -15
  143. package/lib/common/shorters/emojis.d.ts +5 -6
  144. package/lib/common/shorters/emojis.js +5 -5
  145. package/lib/common/shorters/guilds.d.ts +18 -16
  146. package/lib/common/shorters/guilds.js +31 -26
  147. package/lib/common/shorters/interaction.d.ts +7 -7
  148. package/lib/common/shorters/interaction.js +3 -2
  149. package/lib/common/shorters/members.d.ts +29 -12
  150. package/lib/common/shorters/members.js +55 -16
  151. package/lib/common/shorters/messages.d.ts +7 -8
  152. package/lib/common/shorters/messages.js +8 -7
  153. package/lib/common/shorters/reactions.d.ts +3 -3
  154. package/lib/common/shorters/reactions.js +11 -11
  155. package/lib/common/shorters/roles.d.ts +9 -7
  156. package/lib/common/shorters/roles.js +26 -7
  157. package/lib/common/shorters/templates.d.ts +7 -8
  158. package/lib/common/shorters/templates.js +7 -7
  159. package/lib/common/shorters/threads.d.ts +6 -7
  160. package/lib/common/shorters/threads.js +6 -9
  161. package/lib/common/shorters/users.d.ts +4 -4
  162. package/lib/common/shorters/users.js +8 -4
  163. package/lib/common/shorters/webhook.d.ts +10 -10
  164. package/lib/common/shorters/webhook.js +10 -9
  165. package/lib/common/types/resolvables.d.ts +2 -2
  166. package/lib/common/types/util.d.ts +4 -2
  167. package/lib/common/types/write.d.ts +3 -3
  168. package/lib/components/ActionRow.d.ts +1 -1
  169. package/lib/components/BaseComponent.d.ts +1 -1
  170. package/lib/components/BaseComponent.js +1 -1
  171. package/lib/components/BaseSelectMenuComponent.d.ts +1 -1
  172. package/lib/components/ButtonComponent.d.ts +17 -7
  173. package/lib/components/ButtonComponent.js +19 -2
  174. package/lib/components/ChannelSelectMenuComponent.d.ts +3 -3
  175. package/lib/components/MentionableSelectMenuComponent.d.ts +2 -2
  176. package/lib/components/RoleSelectMenuComponent.d.ts +2 -2
  177. package/lib/components/StringSelectMenuComponent.d.ts +2 -2
  178. package/lib/components/TextInputComponent.d.ts +2 -2
  179. package/lib/components/UserSelectMenuComponent.d.ts +2 -2
  180. package/lib/components/componentcommand.js +2 -2
  181. package/lib/components/componentcontext.d.ts +10 -9
  182. package/lib/components/componentcontext.js +8 -8
  183. package/lib/components/handler.d.ts +15 -14
  184. package/lib/components/handler.js +89 -93
  185. package/lib/components/index.d.ts +3 -3
  186. package/lib/components/index.js +12 -10
  187. package/lib/components/modalcontext.d.ts +12 -11
  188. package/lib/components/modalcontext.js +2 -2
  189. package/lib/deps/mixer.d.ts +8 -0
  190. package/lib/deps/mixer.js +71 -0
  191. package/lib/events/handler.d.ts +35 -13
  192. package/lib/events/handler.js +57 -24
  193. package/lib/events/hooks/application_command.d.ts +2 -2
  194. package/lib/events/hooks/auto_moderation.d.ts +6 -7
  195. package/lib/events/hooks/auto_moderation.js +4 -4
  196. package/lib/events/hooks/channel.d.ts +2 -2
  197. package/lib/events/hooks/channel.js +4 -7
  198. package/lib/events/hooks/custom.d.ts +4 -3
  199. package/lib/events/hooks/custom.js +5 -1
  200. package/lib/events/hooks/dispatch.d.ts +3 -4
  201. package/lib/events/hooks/dispatch.js +2 -2
  202. package/lib/events/hooks/entitlement.d.ts +5 -37
  203. package/lib/events/hooks/entitlement.js +7 -7
  204. package/lib/events/hooks/guild.d.ts +125 -125
  205. package/lib/events/hooks/guild.js +13 -15
  206. package/lib/events/hooks/integration.d.ts +27 -28
  207. package/lib/events/hooks/integration.js +3 -3
  208. package/lib/events/hooks/interactions.d.ts +2 -2
  209. package/lib/events/hooks/invite.d.ts +18 -17
  210. package/lib/events/hooks/message.d.ts +69 -54
  211. package/lib/events/hooks/message.js +4 -8
  212. package/lib/events/hooks/presence.d.ts +17 -16
  213. package/lib/events/hooks/stage.d.ts +4 -4
  214. package/lib/events/hooks/subscriptions.d.ts +35 -0
  215. package/lib/events/hooks/subscriptions.js +16 -0
  216. package/lib/events/hooks/thread.d.ts +132 -63
  217. package/lib/events/hooks/thread.js +4 -4
  218. package/lib/events/hooks/typing.d.ts +28 -6
  219. package/lib/events/hooks/typing.js +2 -2
  220. package/lib/events/hooks/user.d.ts +3 -3
  221. package/lib/events/hooks/user.js +2 -2
  222. package/lib/events/hooks/voice.d.ts +28 -3
  223. package/lib/events/hooks/voice.js +8 -4
  224. package/lib/events/hooks/webhook.d.ts +1 -1
  225. package/lib/index.d.ts +5 -14
  226. package/lib/index.js +7 -12
  227. package/lib/langs/handler.d.ts +14 -10
  228. package/lib/langs/handler.js +40 -9
  229. package/lib/structures/AutoModerationRule.d.ts +4 -4
  230. package/lib/structures/AutoModerationRule.js +1 -2
  231. package/lib/structures/ClientUser.d.ts +1 -1
  232. package/lib/structures/Entitlement.d.ts +10 -0
  233. package/lib/structures/Entitlement.js +16 -0
  234. package/lib/structures/Guild.d.ts +33 -34
  235. package/lib/structures/Guild.js +5 -2
  236. package/lib/structures/GuildBan.d.ts +6 -6
  237. package/lib/structures/GuildBan.js +2 -1
  238. package/lib/structures/GuildEmoji.d.ts +4 -4
  239. package/lib/structures/GuildEmoji.js +3 -2
  240. package/lib/structures/GuildMember.d.ts +20 -17
  241. package/lib/structures/GuildMember.js +18 -8
  242. package/lib/structures/GuildPreview.d.ts +1 -1
  243. package/lib/structures/GuildRole.d.ts +5 -3
  244. package/lib/structures/GuildRole.js +8 -1
  245. package/lib/structures/GuildTemplate.d.ts +2 -2
  246. package/lib/structures/GuildTemplate.js +1 -1
  247. package/lib/structures/Interaction.d.ts +76 -39
  248. package/lib/structures/Interaction.js +179 -94
  249. package/lib/structures/Message.d.ts +29 -33
  250. package/lib/structures/Message.js +8 -12
  251. package/lib/structures/Poll.d.ts +4 -3
  252. package/lib/structures/Poll.js +6 -2
  253. package/lib/structures/Sticker.d.ts +7 -7
  254. package/lib/structures/Sticker.js +7 -7
  255. package/lib/structures/User.d.ts +5 -4
  256. package/lib/structures/User.js +2 -1
  257. package/lib/structures/VoiceState.d.ts +15 -11
  258. package/lib/structures/VoiceState.js +35 -17
  259. package/lib/structures/Webhook.d.ts +6 -7
  260. package/lib/structures/Webhook.js +6 -7
  261. package/lib/structures/channels.d.ts +11 -10
  262. package/lib/structures/channels.js +70 -65
  263. package/lib/structures/extra/BaseGuild.d.ts +12 -2
  264. package/lib/structures/extra/BaseGuild.js +30 -3
  265. package/lib/structures/extra/BitField.d.ts +1 -1
  266. package/lib/structures/extra/BitField.js +3 -2
  267. package/lib/structures/extra/DiscordBase.js +2 -2
  268. package/lib/structures/extra/Permissions.d.ts +3 -1
  269. package/lib/structures/extra/Permissions.js +8 -3
  270. package/lib/types/gateway.d.ts +1554 -0
  271. package/lib/types/gateway.js +4 -0
  272. package/lib/types/index.d.ts +9 -1
  273. package/lib/types/index.js +28 -1
  274. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/attachment.d.ts +5 -0
  275. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/attachment.js +2 -0
  276. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/base.d.ts +22 -0
  277. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/base.js +2 -0
  278. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/boolean.d.ts +4 -0
  279. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/boolean.js +2 -0
  280. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/channel.d.ts +7 -0
  281. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/channel.js +2 -0
  282. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/integer.d.ts +17 -0
  283. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/integer.js +2 -0
  284. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/mentionable.d.ts +5 -0
  285. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/mentionable.js +2 -0
  286. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/number.d.ts +17 -0
  287. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/number.js +2 -0
  288. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/role.d.ts +5 -0
  289. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/role.js +2 -0
  290. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.d.ts +25 -0
  291. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.js +20 -0
  292. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/string.d.ts +17 -0
  293. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/string.js +2 -0
  294. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommand.d.ts +11 -0
  295. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommand.js +2 -0
  296. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts +11 -0
  297. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommandGroup.js +2 -0
  298. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/user.d.ts +5 -0
  299. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/user.js +2 -0
  300. package/lib/types/payloads/_interactions/_applicationCommands/chatInput.d.ts +65 -0
  301. package/lib/types/payloads/_interactions/_applicationCommands/chatInput.js +29 -0
  302. package/lib/types/payloads/_interactions/_applicationCommands/contextMenu.d.ts +65 -0
  303. package/lib/types/payloads/_interactions/_applicationCommands/contextMenu.js +2 -0
  304. package/lib/types/payloads/_interactions/_applicationCommands/internals.d.ts +8 -0
  305. package/lib/types/payloads/_interactions/_applicationCommands/internals.js +2 -0
  306. package/lib/types/payloads/_interactions/_applicationCommands/permissions.d.ts +54 -0
  307. package/lib/types/payloads/_interactions/_applicationCommands/permissions.js +20 -0
  308. package/lib/types/payloads/_interactions/applicationCommands.d.ts +188 -0
  309. package/lib/types/payloads/_interactions/applicationCommands.js +88 -0
  310. package/lib/types/payloads/_interactions/autocomplete.d.ts +10 -0
  311. package/lib/types/payloads/_interactions/autocomplete.js +2 -0
  312. package/lib/types/payloads/_interactions/base.d.ts +197 -0
  313. package/lib/types/payloads/_interactions/base.js +2 -0
  314. package/lib/types/payloads/_interactions/messageComponents.d.ts +41 -0
  315. package/lib/types/payloads/_interactions/messageComponents.js +2 -0
  316. package/lib/types/payloads/_interactions/modalSubmit.d.ts +35 -0
  317. package/lib/types/payloads/_interactions/modalSubmit.js +2 -0
  318. package/lib/types/payloads/_interactions/ping.d.ts +3 -0
  319. package/lib/types/payloads/_interactions/ping.js +2 -0
  320. package/lib/types/payloads/_interactions/responses.d.ts +184 -0
  321. package/lib/types/payloads/_interactions/responses.js +58 -0
  322. package/lib/types/payloads/application.d.ts +292 -0
  323. package/lib/types/payloads/application.js +117 -0
  324. package/lib/types/payloads/auditLog.d.ts +644 -0
  325. package/lib/types/payloads/auditLog.js +80 -0
  326. package/lib/types/payloads/autoModeration.d.ts +219 -0
  327. package/lib/types/payloads/autoModeration.js +87 -0
  328. package/lib/types/payloads/channel.d.ts +1748 -0
  329. package/lib/types/payloads/channel.js +376 -0
  330. package/lib/types/payloads/emoji.d.ts +48 -0
  331. package/lib/types/payloads/emoji.js +5 -0
  332. package/lib/types/payloads/gateway.d.ts +373 -0
  333. package/lib/types/payloads/gateway.js +82 -0
  334. package/lib/types/payloads/guild.d.ts +1060 -0
  335. package/lib/types/payloads/guild.js +324 -0
  336. package/lib/types/payloads/guildScheduledEvent.d.ts +138 -0
  337. package/lib/types/payloads/guildScheduledEvent.js +32 -0
  338. package/lib/types/payloads/index.d.ts +64 -0
  339. package/lib/types/payloads/index.js +37 -0
  340. package/lib/types/payloads/interactions.d.ts +24 -0
  341. package/lib/types/payloads/interactions.js +23 -0
  342. package/lib/types/payloads/invite.d.ts +121 -0
  343. package/lib/types/payloads/invite.js +23 -0
  344. package/lib/types/payloads/monetization.d.ts +178 -0
  345. package/lib/types/payloads/monetization.js +88 -0
  346. package/lib/types/payloads/oauth2.d.ts +131 -0
  347. package/lib/types/payloads/oauth2.js +135 -0
  348. package/lib/types/payloads/permissions.d.ts +97 -0
  349. package/lib/types/payloads/permissions.js +16 -0
  350. package/lib/types/payloads/poll.d.ts +104 -0
  351. package/lib/types/payloads/poll.js +16 -0
  352. package/lib/types/payloads/stageInstance.d.ts +77 -0
  353. package/lib/types/payloads/stageInstance.js +19 -0
  354. package/lib/types/payloads/sticker.d.ts +123 -0
  355. package/lib/types/payloads/sticker.js +30 -0
  356. package/lib/types/payloads/teams.d.ts +78 -0
  357. package/lib/types/payloads/teams.js +23 -0
  358. package/lib/types/payloads/template.d.ts +62 -0
  359. package/lib/types/payloads/template.js +5 -0
  360. package/lib/types/payloads/user.d.ts +337 -0
  361. package/lib/types/payloads/user.js +167 -0
  362. package/lib/types/payloads/voice.d.ts +89 -0
  363. package/lib/types/payloads/voice.js +5 -0
  364. package/lib/types/payloads/webhook.d.ts +76 -0
  365. package/lib/types/payloads/webhook.js +21 -0
  366. package/lib/types/rest/application.d.ts +57 -0
  367. package/lib/types/rest/application.js +2 -0
  368. package/lib/types/rest/auditLog.d.ts +30 -0
  369. package/lib/types/rest/auditLog.js +2 -0
  370. package/lib/types/rest/autoModeration.d.ts +66 -0
  371. package/lib/types/rest/autoModeration.js +2 -0
  372. package/lib/types/rest/channel.d.ts +699 -0
  373. package/lib/types/rest/channel.js +11 -0
  374. package/lib/types/rest/emoji.d.ts +54 -0
  375. package/lib/types/rest/emoji.js +2 -0
  376. package/lib/types/rest/gateway.d.ts +9 -0
  377. package/lib/types/rest/gateway.js +2 -0
  378. package/lib/types/rest/guild.d.ts +865 -0
  379. package/lib/types/rest/guild.js +2 -0
  380. package/lib/types/rest/guildScheduledEvent.d.ts +126 -0
  381. package/lib/types/rest/guildScheduledEvent.js +2 -0
  382. package/lib/types/rest/index.d.ts +296 -0
  383. package/lib/types/rest/index.js +292 -0
  384. package/lib/types/rest/interactions.d.ts +216 -0
  385. package/lib/types/rest/interactions.js +2 -0
  386. package/lib/types/rest/invite.d.ts +24 -0
  387. package/lib/types/rest/invite.js +2 -0
  388. package/lib/types/rest/monetization.d.ts +103 -0
  389. package/lib/types/rest/monetization.js +11 -0
  390. package/lib/types/rest/oauth2.d.ts +172 -0
  391. package/lib/types/rest/oauth2.js +2 -0
  392. package/lib/types/rest/poll.d.ts +44 -0
  393. package/lib/types/rest/poll.js +2 -0
  394. package/lib/types/rest/stageInstance.d.ts +58 -0
  395. package/lib/types/rest/stageInstance.js +2 -0
  396. package/lib/types/rest/sticker.d.ts +77 -0
  397. package/lib/types/rest/sticker.js +2 -0
  398. package/lib/types/rest/template.d.ts +62 -0
  399. package/lib/types/rest/template.js +2 -0
  400. package/lib/types/rest/user.d.ts +120 -0
  401. package/lib/types/rest/user.js +2 -0
  402. package/lib/types/rest/voice.d.ts +17 -0
  403. package/lib/types/rest/voice.js +2 -0
  404. package/lib/types/rest/webhook.d.ts +250 -0
  405. package/lib/types/rest/webhook.js +2 -0
  406. package/lib/types/utils/index.d.ts +808 -0
  407. package/lib/types/utils/index.js +810 -0
  408. package/lib/websocket/SharedTypes.d.ts +12 -5
  409. package/lib/websocket/SharedTypes.js +1 -1
  410. package/lib/websocket/constants/index.d.ts +3 -3
  411. package/lib/websocket/constants/index.js +11 -1
  412. package/lib/websocket/discord/basesocket.d.ts +7 -7
  413. package/lib/websocket/discord/basesocket.js +34 -22
  414. package/lib/websocket/discord/events/memberUpdate.d.ts +1 -6
  415. package/lib/websocket/discord/events/memberUpdate.js +2 -1
  416. package/lib/websocket/discord/events/presenceUpdate.d.ts +5 -18
  417. package/lib/websocket/discord/events/presenceUpdate.js +5 -6
  418. package/lib/websocket/discord/shard.d.ts +9 -8
  419. package/lib/websocket/discord/shard.js +83 -57
  420. package/lib/websocket/discord/sharder.d.ts +6 -5
  421. package/lib/websocket/discord/sharder.js +70 -11
  422. package/lib/websocket/discord/shared.d.ts +34 -6
  423. package/lib/websocket/discord/socket/custom.d.ts +52 -0
  424. package/lib/websocket/discord/socket/custom.js +300 -0
  425. package/lib/websocket/discord/worker.d.ts +6 -10
  426. package/lib/websocket/discord/workermanager.d.ts +10 -16
  427. package/lib/websocket/discord/workermanager.js +63 -50
  428. package/lib/websocket/structures/index.d.ts +0 -1
  429. package/lib/websocket/structures/index.js +1 -1
  430. package/lib/websocket/structures/timeout.d.ts +0 -1
  431. package/package.json +70 -74
  432. package/lib/cache/adapters/redis.d.ts +0 -37
  433. package/lib/cache/adapters/redis.js +0 -218
  434. package/lib/client/oninteractioncreate.d.ts +0 -4
  435. package/lib/client/oninteractioncreate.js +0 -198
  436. package/lib/client/onmessagecreate.d.ts +0 -13
  437. package/lib/client/onmessagecreate.js +0 -410
  438. package/lib/structures/extra/functions.d.ts +0 -12
  439. package/lib/structures/extra/functions.js +0 -70
@@ -117,44 +117,67 @@ class ComponentHandler extends common_1.BaseHandler {
117
117
  onMessageDelete(id) {
118
118
  this.deleteValue(id, 'messageDelete');
119
119
  }
120
- async load(componentsDir, instances) {
121
- const paths = instances?.map(x => {
122
- const i = new x();
123
- return { file: x, path: i.__filePath ?? '*' };
124
- }) ?? (await this.loadFilesK(await this.getFiles(componentsDir)));
125
- for (const value of paths) {
120
+ stablishDefaults(component) {
121
+ component.props ??= this.client.options.commands?.defaults?.props ?? {};
122
+ const is = component instanceof modalcommand_1.ModalCommand ? 'modals' : 'components';
123
+ component.onInternalError ??= this.client.options?.[is]?.defaults?.onInternalError;
124
+ component.onMiddlewaresError ??= this.client.options?.[is]?.defaults?.onMiddlewaresError;
125
+ component.onRunError ??= this.client.options?.[is]?.defaults?.onRunError;
126
+ component.onAfterRun ??= this.client.options?.[is]?.defaults?.onAfterRun;
127
+ }
128
+ set(instances) {
129
+ for (const i of instances) {
126
130
  let component;
127
131
  try {
128
- component = this.callback(value.file);
132
+ component = this.callback(i);
129
133
  if (!component)
130
134
  continue;
131
135
  }
132
136
  catch (e) {
133
- if (e instanceof Error && e.message.includes('is not a constructor')) {
134
- this.logger.warn(`${value.path
135
- .split(process.cwd())
136
- .slice(1)
137
- .join(process.cwd())} doesn't export the class by \`export default <ComponentCommand>\``);
138
- }
139
- else
140
- this.logger.warn(e, value);
137
+ this.logger.warn(e, i);
141
138
  continue;
142
139
  }
143
- if (!(component instanceof modalcommand_1.ModalCommand || component instanceof componentcommand_1.ComponentCommand))
144
- continue;
145
- component.props ??= this.client.options.commands?.defaults?.props ?? {};
146
- const is = component instanceof modalcommand_1.ModalCommand ? 'modals' : 'components';
147
- component.onInternalError ??= this.client.options?.[is]?.defaults?.onInternalError;
148
- component.onMiddlewaresError ??= this.client.options?.[is]?.defaults?.onMiddlewaresError;
149
- component.onRunError ??= this.client.options?.[is]?.defaults?.onRunError;
150
- component.onAfterRun ??= this.client.options?.[is]?.defaults?.onAfterRun;
151
- component.__filePath = value.path;
140
+ this.stablishDefaults(component);
152
141
  this.commands.push(component);
153
142
  }
154
143
  }
144
+ async load(componentsDir) {
145
+ const paths = await this.loadFilesK(await this.getFiles(componentsDir));
146
+ for (const { components, file } of paths.map(x => ({ components: this.onFile(x.file), file: x }))) {
147
+ if (!components)
148
+ continue;
149
+ for (const value of components) {
150
+ let component;
151
+ try {
152
+ component = this.callback(value);
153
+ if (!component)
154
+ continue;
155
+ }
156
+ catch (e) {
157
+ if (e instanceof Error && e.message.includes('is not a constructor')) {
158
+ this.logger.warn(`${file.path
159
+ .split(process.cwd())
160
+ .slice(1)
161
+ .join(process.cwd())} doesn't export the class by \`export default <ComponentCommand>\``);
162
+ }
163
+ else
164
+ this.logger.warn(e, value);
165
+ continue;
166
+ }
167
+ if (!(component instanceof modalcommand_1.ModalCommand || component instanceof componentcommand_1.ComponentCommand))
168
+ continue;
169
+ this.stablishDefaults(component);
170
+ component.__filePath = file.path;
171
+ this.commands.push(component);
172
+ }
173
+ }
174
+ }
155
175
  async reload(path) {
156
176
  if (!this.client.components)
157
177
  return;
178
+ if ((0, common_1.isCloudfareWorker)()) {
179
+ throw new Error('Reload in cloudfare worker is not supported');
180
+ }
158
181
  const component = this.client.components.commands.find(x => x.__filePath?.endsWith(`${path}.js`) ||
159
182
  x.__filePath?.endsWith(`${path}.ts`) ||
160
183
  x.__filePath?.endsWith(path) ||
@@ -184,6 +207,41 @@ class ComponentHandler extends common_1.BaseHandler {
184
207
  }
185
208
  }
186
209
  }
210
+ async execute(i, context) {
211
+ try {
212
+ const resultRunGlobalMiddlewares = await commands_1.BaseCommand.__runMiddlewares(context, (context.client.options?.globalMiddlewares ?? []), true);
213
+ if (resultRunGlobalMiddlewares.pass) {
214
+ return;
215
+ }
216
+ if ('error' in resultRunGlobalMiddlewares) {
217
+ return i.onMiddlewaresError?.(context, resultRunGlobalMiddlewares.error ?? 'Unknown error');
218
+ }
219
+ const resultRunMiddlewares = await commands_1.BaseCommand.__runMiddlewares(context, i.middlewares, false);
220
+ if (resultRunMiddlewares.pass) {
221
+ return;
222
+ }
223
+ if ('error' in resultRunMiddlewares) {
224
+ return i.onMiddlewaresError?.(context, resultRunMiddlewares.error ?? 'Unknown error');
225
+ }
226
+ try {
227
+ await i.run(context);
228
+ await i.onAfterRun?.(context, undefined);
229
+ }
230
+ catch (error) {
231
+ await i.onRunError?.(context, error);
232
+ await i.onAfterRun?.(context, error);
233
+ }
234
+ }
235
+ catch (error) {
236
+ try {
237
+ await i.onInternalError?.(this.client, error);
238
+ }
239
+ catch (e) {
240
+ // supress error
241
+ this.logger.error(e);
242
+ }
243
+ }
244
+ }
187
245
  async executeComponent(context) {
188
246
  for (const i of this.commands) {
189
247
  try {
@@ -191,39 +249,7 @@ class ComponentHandler extends common_1.BaseHandler {
191
249
  i.cType === context.interaction.componentType &&
192
250
  (await i.filter(context))) {
193
251
  context.command = i;
194
- try {
195
- const resultRunGlobalMiddlewares = await commands_1.BaseCommand.__runMiddlewares(context, (context.client.options?.globalMiddlewares ?? []), true);
196
- if (resultRunGlobalMiddlewares.pass) {
197
- return;
198
- }
199
- if ('error' in resultRunGlobalMiddlewares) {
200
- return i.onMiddlewaresError?.(context, resultRunGlobalMiddlewares.error ?? 'Unknown error');
201
- }
202
- const resultRunMiddlewares = await commands_1.BaseCommand.__runMiddlewares(context, i.middlewares, false);
203
- if (resultRunMiddlewares.pass) {
204
- return;
205
- }
206
- if ('error' in resultRunMiddlewares) {
207
- return i.onMiddlewaresError?.(context, resultRunMiddlewares.error ?? 'Unknown error');
208
- }
209
- try {
210
- await i.run(context);
211
- await i.onAfterRun?.(context, undefined);
212
- }
213
- catch (error) {
214
- await i.onRunError?.(context, error);
215
- await i.onAfterRun?.(context, error);
216
- }
217
- }
218
- catch (error) {
219
- try {
220
- await i.onInternalError?.(this.client, error);
221
- }
222
- catch {
223
- // supress error
224
- }
225
- }
226
- break;
252
+ await this.execute(i, context);
227
253
  }
228
254
  }
229
255
  catch (e) {
@@ -236,39 +262,7 @@ class ComponentHandler extends common_1.BaseHandler {
236
262
  try {
237
263
  if (i.type === componentcommand_1.InteractionCommandType.MODAL && (await i.filter(context))) {
238
264
  context.command = i;
239
- try {
240
- const resultRunGlobalMiddlewares = await commands_1.BaseCommand.__runMiddlewares(context, (context.client.options?.globalMiddlewares ?? []), true);
241
- if (resultRunGlobalMiddlewares.pass) {
242
- return;
243
- }
244
- if ('error' in resultRunGlobalMiddlewares) {
245
- return i.onMiddlewaresError?.(context, resultRunGlobalMiddlewares.error ?? 'Unknown error');
246
- }
247
- const resultRunMiddlewares = await commands_1.BaseCommand.__runMiddlewares(context, i.middlewares, false);
248
- if (resultRunMiddlewares.pass) {
249
- return;
250
- }
251
- if ('error' in resultRunMiddlewares) {
252
- return i.onMiddlewaresError?.(context, resultRunMiddlewares.error ?? 'Unknown error');
253
- }
254
- try {
255
- await i.run(context);
256
- await i.onAfterRun?.(context, undefined);
257
- }
258
- catch (error) {
259
- await i.onRunError?.(context, error);
260
- await i.onAfterRun?.(context, error);
261
- }
262
- }
263
- catch (error) {
264
- try {
265
- await i.onInternalError?.(this.client, error);
266
- }
267
- catch {
268
- // supress error
269
- }
270
- }
271
- break;
265
+ await this.execute(i, context);
272
266
  }
273
267
  }
274
268
  catch (e) {
@@ -276,9 +270,11 @@ class ComponentHandler extends common_1.BaseHandler {
276
270
  }
277
271
  }
278
272
  }
279
- setHandlers({ callback }) {
280
- this.callback = callback;
273
+ onFile(file) {
274
+ return file.default ? [file.default] : undefined;
275
+ }
276
+ callback(file) {
277
+ return new file();
281
278
  }
282
- callback = (file) => new file();
283
279
  }
284
280
  exports.ComponentHandler = ComponentHandler;
@@ -1,13 +1,13 @@
1
- import { type APIMessageActionRowComponent } from 'discord-api-types/v10';
1
+ import { type APIMessageActionRowComponent } from '../types';
2
2
  import { BaseComponent } from './BaseComponent';
3
- import { ButtonComponent, LinkButtonComponent } from './ButtonComponent';
3
+ import { ButtonComponent, LinkButtonComponent, SKUButtonComponent } from './ButtonComponent';
4
4
  import { ChannelSelectMenuComponent } from './ChannelSelectMenuComponent';
5
5
  import { MentionableSelectMenuComponent } from './MentionableSelectMenuComponent';
6
6
  import { RoleSelectMenuComponent } from './RoleSelectMenuComponent';
7
7
  import { StringSelectMenuComponent } from './StringSelectMenuComponent';
8
8
  import type { TextInputComponent } from './TextInputComponent';
9
9
  import { UserSelectMenuComponent } from './UserSelectMenuComponent';
10
- export type MessageComponents = ButtonComponent | LinkButtonComponent | RoleSelectMenuComponent | UserSelectMenuComponent | StringSelectMenuComponent | ChannelSelectMenuComponent | MentionableSelectMenuComponent | TextInputComponent;
10
+ export type MessageComponents = ButtonComponent | LinkButtonComponent | SKUButtonComponent | RoleSelectMenuComponent | UserSelectMenuComponent | StringSelectMenuComponent | ChannelSelectMenuComponent | MentionableSelectMenuComponent | TextInputComponent;
11
11
  export type ActionRowMessageComponents = Exclude<MessageComponents, TextInputComponent>;
12
12
  export * from './componentcommand';
13
13
  export * from './componentcontext';
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.componentFactory = void 0;
18
- const v10_1 = require("discord-api-types/v10");
17
+ exports.componentFactory = componentFactory;
18
+ const types_1 = require("../types");
19
19
  const BaseComponent_1 = require("./BaseComponent");
20
20
  const ButtonComponent_1 = require("./ButtonComponent");
21
21
  const ChannelSelectMenuComponent_1 = require("./ChannelSelectMenuComponent");
@@ -35,23 +35,25 @@ __exportStar(require("./modalcontext"), exports);
35
35
  */
36
36
  function componentFactory(component) {
37
37
  switch (component.type) {
38
- case v10_1.ComponentType.Button:
39
- if (component.style === v10_1.ButtonStyle.Link) {
38
+ case types_1.ComponentType.Button:
39
+ if (component.style === types_1.ButtonStyle.Link) {
40
40
  return new ButtonComponent_1.LinkButtonComponent(component);
41
41
  }
42
+ if (component.style === types_1.ButtonStyle.Premium) {
43
+ return new ButtonComponent_1.SKUButtonComponent(component);
44
+ }
42
45
  return new ButtonComponent_1.ButtonComponent(component);
43
- case v10_1.ComponentType.ChannelSelect:
46
+ case types_1.ComponentType.ChannelSelect:
44
47
  return new ChannelSelectMenuComponent_1.ChannelSelectMenuComponent(component);
45
- case v10_1.ComponentType.RoleSelect:
48
+ case types_1.ComponentType.RoleSelect:
46
49
  return new RoleSelectMenuComponent_1.RoleSelectMenuComponent(component);
47
- case v10_1.ComponentType.StringSelect:
50
+ case types_1.ComponentType.StringSelect:
48
51
  return new StringSelectMenuComponent_1.StringSelectMenuComponent(component);
49
- case v10_1.ComponentType.UserSelect:
52
+ case types_1.ComponentType.UserSelect:
50
53
  return new UserSelectMenuComponent_1.UserSelectMenuComponent(component);
51
- case v10_1.ComponentType.MentionableSelect:
54
+ case types_1.ComponentType.MentionableSelect:
52
55
  return new MentionableSelectMenuComponent_1.MentionableSelectMenuComponent(component);
53
56
  default:
54
57
  return new BaseComponent_1.BaseComponent(component);
55
58
  }
56
59
  }
57
- exports.componentFactory = componentFactory;
@@ -1,7 +1,8 @@
1
- import type { AllChannels, Guild, GuildMember, Message, ModalCommand, ModalSubmitInteraction, ReturnCache, WebhookMessage } from '..';
1
+ import type { AllChannels, ModalCommand, ModalSubmitInteraction, ReturnCache } from '..';
2
2
  import type { CommandMetadata, ExtendContext, GlobalMetadata, RegisteredMiddlewares, UsingClient } from '../commands';
3
3
  import { BaseContext } from '../commands/basecontext';
4
4
  import type { InteractionCreateBodyRequest, InteractionMessageUpdateBodyRequest, ModalCreateBodyRequest, UnionToTuple, When } from '../common';
5
+ import type { GuildMemberStructure, GuildStructure, MessageStructure, WebhookMessageStructure } from '../client/transformers';
5
6
  export interface ModalContext extends BaseContext, ExtendContext {
6
7
  }
7
8
  /**
@@ -23,24 +24,24 @@ export declare class ModalContext<M extends keyof RegisteredMiddlewares = never>
23
24
  get customId(): string;
24
25
  get components(): {
25
26
  components: {
26
- type: import("discord-api-types/v10").ComponentType;
27
+ type: import("../types").ComponentType;
27
28
  customId: string;
28
29
  value: string;
29
30
  }[];
30
- type: import("discord-api-types/v10").ComponentType.ActionRow;
31
+ type: import("../types").ComponentType.ActionRow;
31
32
  }[];
32
33
  /**
33
34
  * Gets the language object for the interaction's locale.
34
35
  */
35
36
  get t(): import("..").__InternalParseLocale<import("..").DefaultLocale> & {
36
- get(locale?: string | undefined): import("..").DefaultLocale;
37
+ get(locale?: string): import("..").DefaultLocale;
37
38
  };
38
39
  /**
39
40
  * Writes a response to the interaction.
40
41
  * @param body - The body of the response.
41
42
  * @param fetchReply - Whether to fetch the reply or not.
42
43
  */
43
- write<FR extends boolean = false>(body: InteractionCreateBodyRequest, fetchReply?: FR): Promise<When<FR, WebhookMessage, void>>;
44
+ write<FR extends boolean = false>(body: InteractionCreateBodyRequest, fetchReply?: FR): Promise<When<FR, import("..").WebhookMessage, void>>;
44
45
  /**
45
46
  * Defers the reply to the interaction.
46
47
  * @param ephemeral - Whether the reply should be ephemeral or not.
@@ -50,13 +51,13 @@ export declare class ModalContext<M extends keyof RegisteredMiddlewares = never>
50
51
  * Edits the response of the interaction.
51
52
  * @param body - The updated body of the response.
52
53
  */
53
- editResponse(body: InteractionMessageUpdateBodyRequest): Promise<WebhookMessage>;
54
+ editResponse(body: InteractionMessageUpdateBodyRequest): Promise<import("..").WebhookMessage>;
54
55
  /**
55
56
  * Edits the response or replies to the interaction.
56
57
  * @param body - The body of the response or updated body of the interaction.
57
58
  * @param fetchReply - Whether to fetch the reply or not.
58
59
  */
59
- editOrReply<FR extends boolean = false>(body: InteractionCreateBodyRequest | InteractionMessageUpdateBodyRequest, fetchReply?: FR): Promise<When<FR, WebhookMessage | Message, void | WebhookMessage | Message>>;
60
+ editOrReply<FR extends boolean = false>(body: InteractionCreateBodyRequest | InteractionMessageUpdateBodyRequest, fetchReply?: FR): Promise<When<FR, WebhookMessageStructure | MessageStructure, void | WebhookMessageStructure | MessageStructure>>;
60
61
  /**
61
62
  * Deletes the response of the interaction.
62
63
  * @returns A promise that resolves when the response is deleted.
@@ -75,15 +76,15 @@ export declare class ModalContext<M extends keyof RegisteredMiddlewares = never>
75
76
  * @param mode - The mode to fetch the member.
76
77
  * @returns A promise that resolves to the bot member.
77
78
  */
78
- me(mode?: 'rest' | 'flow'): Promise<GuildMember>;
79
- me(mode?: 'cache'): ReturnCache<GuildMember | undefined>;
79
+ me(mode?: 'rest' | 'flow'): Promise<GuildMemberStructure>;
80
+ me(mode?: 'cache'): ReturnCache<GuildMemberStructure | undefined>;
80
81
  /**
81
82
  * Gets the guild of the interaction.
82
83
  * @param mode - The mode to fetch the guild.
83
84
  * @returns A promise that resolves to the guild.
84
85
  */
85
- guild(mode?: 'rest' | 'flow'): Promise<Guild<'cached' | 'api'> | undefined>;
86
- guild(mode?: 'cache'): ReturnCache<Guild<'cached'> | undefined>;
86
+ guild(mode?: 'rest' | 'flow'): Promise<GuildStructure<'cached' | 'api'> | undefined>;
87
+ guild(mode?: 'cache'): ReturnCache<GuildStructure<'cached'> | undefined>;
87
88
  /**
88
89
  * Gets the ID of the guild of the interaction.
89
90
  */
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModalContext = void 0;
4
- const v10_1 = require("discord-api-types/v10");
4
+ const types_1 = require("../types");
5
5
  const basecontext_1 = require("../commands/basecontext");
6
6
  /**
7
7
  * Represents a context for interacting with components in a Discord bot.
@@ -48,7 +48,7 @@ class ModalContext extends basecontext_1.BaseContext {
48
48
  * @param ephemeral - Whether the reply should be ephemeral or not.
49
49
  */
50
50
  deferReply(ephemeral = false) {
51
- return this.interaction.deferReply(ephemeral ? v10_1.MessageFlags.Ephemeral : undefined);
51
+ return this.interaction.deferReply(ephemeral ? types_1.MessageFlags.Ephemeral : undefined);
52
52
  }
53
53
  /**
54
54
  * Edits the response of the interaction.
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Mixes a class with other classes.
3
+ * @param args The classes to mix.
4
+ * @returns The mixed class.
5
+ */
6
+ export declare function Mixin<T, C extends TypeClass[]>(...args: C): C[number] & T;
7
+ export type TypeClass<InstanceType = {}, StaticType = {}> = (abstract new (...args: any[]) => InstanceType) & StaticType;
8
+ export declare const mix: (...ingredients: TypeClass[]) => (decoratedClass: any) => any;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mix = void 0;
4
+ exports.Mixin = Mixin;
5
+ /**
6
+ * Gets the descriptors of a class.
7
+ * @param c The class to get the descriptors of.
8
+ * @returns The descriptors of the class.
9
+ */
10
+ function getDescriptors(c) {
11
+ let proto = c.prototype;
12
+ const result = [];
13
+ while (proto) {
14
+ const descriptors = Object.getOwnPropertyDescriptors(proto);
15
+ // @ts-expect-error this is not a function in all cases
16
+ if (descriptors.valueOf.configurable)
17
+ break;
18
+ result.push(descriptors);
19
+ proto = proto.__proto__;
20
+ }
21
+ return result;
22
+ }
23
+ /**
24
+ * Mixes a class with other classes.
25
+ * @param args The classes to mix.
26
+ * @returns The mixed class.
27
+ */
28
+ function Mixin(...args) {
29
+ const ignoreOverwriteToString = Object.keys(Object.getOwnPropertyDescriptors(args[0].prototype)).includes('toString');
30
+ function MixedClass(...constructorArgs) {
31
+ for (const i of args) {
32
+ const descriptors = getDescriptors(i);
33
+ for (const j of descriptors) {
34
+ // @ts-expect-error
35
+ Object.assign(this, new j.constructor.value(...constructorArgs));
36
+ for (const descriptorK in j) {
37
+ if (descriptorK === 'constructor')
38
+ continue;
39
+ if (descriptorK in MixedClass.prototype && descriptorK !== 'toString')
40
+ continue;
41
+ const descriptor = j[descriptorK];
42
+ if (descriptor.value) {
43
+ if (descriptorK === 'toString' && ignoreOverwriteToString) {
44
+ MixedClass.prototype[descriptorK] = args[0].prototype.toString;
45
+ continue;
46
+ }
47
+ MixedClass.prototype[descriptorK] = descriptor.value;
48
+ continue;
49
+ }
50
+ if (descriptor.get || descriptor.set) {
51
+ Object.defineProperty(MixedClass.prototype, descriptorK, {
52
+ get: descriptor.get,
53
+ set: descriptor.set,
54
+ });
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ return MixedClass;
61
+ }
62
+ const mix = (...ingredients) => (decoratedClass) => {
63
+ ingredients.unshift(decoratedClass);
64
+ const mixedClass = Mixin(...ingredients);
65
+ Object.defineProperty(mixedClass, 'name', {
66
+ value: decoratedClass.name,
67
+ writable: false,
68
+ });
69
+ return mixedClass;
70
+ };
71
+ exports.mix = mix;
@@ -1,29 +1,51 @@
1
- import type { GatewayDispatchPayload } from 'discord-api-types/v10';
1
+ import type { GatewayDispatchPayload } from '../types';
2
2
  import type { Client, WorkerClient } from '../client';
3
- import { BaseHandler, type MakeRequired, type SnakeCase } from '../common';
3
+ import { BaseHandler, type CamelCase, type MakeRequired, type SnakeCase } from '../common';
4
4
  import type { ClientEvents } from '../events/hooks';
5
- import type { ClientEvent, CustomEvents, CustomEventsKeys } from './event';
5
+ import type { ClientEvent, CustomEvents, CustomEventsKeys, ClientNameEvents, EventContext } from './event';
6
+ import type { FileLoaded } from '../commands/handler';
7
+ import type { UsingClient } from '../commands';
6
8
  export type EventValue = MakeRequired<ClientEvent, '__filePath'> & {
7
9
  fired?: boolean;
8
10
  };
9
11
  export type GatewayEvents = Uppercase<SnakeCase<keyof ClientEvents>>;
12
+ export type ResolveEventParams<T extends ClientNameEvents | CustomEventsKeys | GatewayEvents> = T extends CustomEventsKeys ? [...Parameters<CustomEvents[T]>, UsingClient] : T extends GatewayEvents ? EventContext<{
13
+ data: {
14
+ name: CamelCase<T>;
15
+ };
16
+ }> : T extends ClientNameEvents ? EventContext<{
17
+ data: {
18
+ name: T;
19
+ };
20
+ }> : never;
21
+ export type ResolveEventRunParams<T extends ClientNameEvents | CustomEventsKeys | GatewayEvents> = T extends CustomEventsKeys ? Parameters<CustomEvents[T]> : T extends GatewayEvents ? EventContext<{
22
+ data: {
23
+ name: CamelCase<T>;
24
+ };
25
+ }> : T extends ClientNameEvents ? EventContext<{
26
+ data: {
27
+ name: T;
28
+ };
29
+ }> : never;
30
+ export type EventValues = {
31
+ [K in CustomEventsKeys | GatewayEvents]: Omit<EventValue, 'run'> & {
32
+ run(...args: ResolveEventRunParams<K>): any;
33
+ };
34
+ };
10
35
  export declare class EventHandler extends BaseHandler {
11
36
  protected client: Client | WorkerClient;
12
37
  constructor(client: Client | WorkerClient);
13
38
  onFail: (event: GatewayEvents | CustomEventsKeys, err: unknown) => void;
14
39
  protected filter: (path: string) => boolean;
15
- values: Partial<Record<GatewayEvents | CustomEventsKeys, EventValue>>;
16
- load(eventsDir: string, instances?: {
17
- file: ClientEvent;
18
- path: string;
19
- }[]): Promise<void>;
40
+ values: Partial<EventValues>;
41
+ discordEvents: ClientNameEvents[];
42
+ set(events: ClientEvent[]): void;
43
+ load(eventsDir: string): Promise<void>;
20
44
  execute(name: GatewayEvents, ...args: [GatewayDispatchPayload, Client<true> | WorkerClient<true>, number]): Promise<void>;
21
- runEvent(name: GatewayEvents, client: Client | WorkerClient, packet: any, shardId: number): Promise<void>;
22
- runCustom<T extends CustomEventsKeys>(name: T, ...args: Parameters<CustomEvents[T]>): Promise<void>;
45
+ runEvent(name: GatewayEvents, client: Client | WorkerClient, packet: any, shardId: number, runCache?: boolean): Promise<void>;
46
+ runCustom<T extends CustomEventsKeys>(name: T, ...args: ResolveEventRunParams<T>): Promise<void>;
23
47
  reload(name: GatewayEvents | CustomEventsKeys): Promise<any>;
24
48
  reloadAll(stopIfFail?: boolean): Promise<void>;
25
- setHandlers({ callback }: {
26
- callback: EventHandler['callback'];
27
- }): void;
49
+ onFile(file: FileLoaded<ClientEvent>): ClientEvent[] | undefined;
28
50
  callback: (file: ClientEvent) => ClientEvent | false;
29
51
  }